IPS-Modul für den Conrad MS35 RGB-Controller.
- 1. Funktionsumfang
- 2. Voraussetzungen
- 3. Software-Installation
- 4. Hardware-Installation & Einrichtung
- 5. Einrichten der Instanzen in IPS
- 6. Statusvariablen und Profile
- 7. WebFront
- 8. PHP-Befehlsreferenz
- 9. Parameter / Modul-Infos
- 10. Tips & Tricks
- 11. Anhang
- 12. Lizenz
Direkte native Unterstützung des Conrad MS-35 RGB-Controller (EAN: 4016138567267 Bestellnr.: 181818 ).
-
Setzen einer Farbe.
-
Starten eines der neun internen Programme:
- 3x verschiedene Farbwechsel (Programm 1-3)
- Gewitter (Programm 4)
- Kaminfeuer (Programm 5)
- Sonnenauf- & untergang (Programm 6)
- Farbblitze (Programm 7)
- 2x Benutzerspezifisch (Programm 8 & 9)
-
Setzen der Helligkeit (gilt nur für Programme).
-
Setzen der Ablauf-Geschwindigkeit (gilt nur für Programme; nicht möglich bei Gewitter und Kaminfeuer).
-
Pause & Fortsetzen des aktiven Programms.
-
Ein- und Ausschalten (Aus = dunkel-gesteuert; Ein = Initialisierung der Parameter wie nach Spannungswiederkehr.
-
Programmieren der benutzerspezifischen Programme.
-
Symcon Version 5.1
-
MS-35 RGB-Controller
-
RS232-Schnittstelle auf TTL-Basis (oder jede andere Form der seriellen Datenanbindung mit 5V; z.B. XBee mit TTL-Adapterplatine)
IPS 5.1:
Bei privater Nutzung:
Über den 'Module-Store' in IPS.
Bei kommerzieller Nutzung (z.B. als Errichter oder Integrator) wenden Sie sich bitte an den Autor.
Den Controller gemäß Handbuch beschalten.
Die serielle Verbindung z.B. mit dem Programmierkabel (oder andere jede Art einer seriellen Anbindung) herstellen.
Unter Instanz hinzufügen ist der 'MS35 RGB-Controller' unter dem Hersteller 'Conrad' aufgeführt.
Es wird automatisch ein SerialPort angelegt.
Die Einstellungen des SerialPort sind auf 38000 Baud zu konfigurieren. Die restlichen Parameter bleiben auf den Standardwerten 8 Datenbits, 1 Stopbit, keine Parität.
Wird eine andere Hardware zur Datenübertragung genutzt, ist diese ebenfalls auf diese Parameter zu konfigurieren und die SerialPort-Instanz zu löschen.
Die Instanz der MS35 benötigt keine eigene Konfiguration.
Dafür wurde das Testcenter umgesetzt, mit dem die Funktion sofort überprüft werden kann.
Die Statusvariablen werden für jeden Controller automatisch angelegt. Löschen kann zu Fehlfunktionen führen; da Sie z.B. für das ausführen eines Farb-Programms benötigt werden. Umbenennen ist natürlich kein Problem.
Statusvariablen:
Name | Typ | Ident | Beschreibung |
---|---|---|---|
STATE | boolean | STATE | True wenn das Gerät eingeschaltet ist |
Color | integer | Color | Aktueller Farbwert, nur gültig wenn kein Programm läuft |
Program | integer | Program | Aktuell aktives Programm. Wertebereich: 1-9 |
Play | integer | Play | Status der Programmausführung 1 = Play; 2 = Pause; 3 = Stop |
Brightness | integer | Brightness | Helligkeit 1 = normal; 2 = mittel; 3 = dunkel |
Speed | integer | Speed | Geschwindigkeit der Programmausführung Werte: 1,2,4,8,16,32,64,128 fache Verlangsamung. |
Die benötigten Profile werden ebenfalls automatisch angelegt.
Profile:
Name | Typ | verwendet von Statusvariablen |
---|---|---|
MS35.PrgStatus | integer | Play |
MS35.Program | integer | Program |
MS35.Brightness | integer | Brightness |
MS35.Speed | integer | Speed |
Der Controller kann direkt über das WebFront bedient werden, ohne das weitere erstellen von Scripten.
Es ist für alle Statusvariablen eine Standardaktion hinterlegt, welche sich direkt auf den Controller auswirkt. Dies kann auf Wunsch auch unter dem Reiter 'Statusvariablen' der MS35-Instanz, deaktiviert werden.
Konnte ein Befehl nicht ausgeführt werden, so wird eine Warnung erzeugt!
bool MS35_SetRGB(integer $InstanzeID, integer $Red, integer $Green, integer $Blue);
Setzt die Farbwerte für Rot (Red), Grün (Green) und Blau (Blue). Ein laufendes Programm wird dadurch unterbrochen (Stop).
Erlaubte Werte für die Farben sind 0 bis 255.
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
bool MS35_Switch(integer $InstanzeID, bool $State);`
Schaltet den Controller aus oder ein.
Dabei wird das Gerät nicht komplett abgeschaltet, da es sonst nicht mehr erreichbar wäre.
Aus ist hier das setzten der Farbe auf 0 (Alle Kanäle auf 0%).
Aus- / Einschalten setzt außerdem alle Werte für Brightness und Speed auf die Werte wie nach Spannungswiederkehr.
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
bool MS35_Play(integer $InstanzeID);
Das aktuell ausgewählte Programm wird fortgesetzt.
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
bool MS35_Pause(integer $InstanzeID);
Das aktuell wiedergegebene Programm wird angehalten.
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
bool MS35_Stop(integer $InstanzeID);
Das aktuell wiedergegebene Programm wird beendet.
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
bool MS35_RunProgram(integer $InstanzeID, integer $Program);
Das Programm mit dem Index $Program
wird wiedergegeben.
$Program
muss zwischen 1 bis 9 liegen.
Eine Übersicht ist im ersten Kapitel.
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
string MS35_SetSpeed(integer $InstanzeID, integer $Speed);
Legt die Geschwindigkeit für die Ausführung eines Programmes fest.
Kann vor oder nach RunProgramm aufgerufen werden.
Kann aber nicht zusammen mit den Programmen 4 & 5 verwendet werden.
Der Befehl wird dann ignoriert bzw. beim laden von Diesen Programmen auf 0 gesetzt.
$Speed
muss dabei zwischen 0 und 8 liegen.
Wobei 0 normale Geschwindigkeit ist, und jede Stufe von 1-8 eine Halbierung der Geschwindigkeit ist (1/2, 1/4, 1/8, 1/16, usw.)
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
string MS35_SetBrightness(integer $InstanzeID, integer $Brightness);
Legt die Helligkeit für die Ausführung eines Programmes fest.
Kann vor oder nach RunProgramm aufgerufen werden.
$Brightness
muss dabei zwischen 1 und 3 liegen.
Wobei 1 der vollen, 2 der mittlere und 3 der niedrige Helligkeit entspricht.
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
string MS35_SetProgram(integer $InstanzeID, integer $Program, string $Data);
Schreibt eines der benutzerspezifischen Programme 8 oder 9 in den Controller.
$Programm
darf nur 8 oder 9 enthalten.
$Data
ist ein JSON-Codierter String welcher das Programm nach folgendem Schema enthalten muss:
(Beispiele im Kapitel 10)
[{"R":255,"G":255,"B":255,"H":5,"F":5},{"R":0,"G":0,"B":255,"H":5,"F":5}]
- R,G,B sind die Farbwerte der Kanäle von 0-255.
- H ist die Haltezeit der Farbe von 0-255 x 0,13 Sek (Hold)
- F ist die Zeit für das Überblenden von 0-255 x 0,13 Sek (Fade)
Es dürfen maximal 51 dieser Sequenzen übergeben werden.
Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis TRUE, andernfalls FALSE.
Eigenschaften für Get/SetProperty-Befehle: – keine –
- Sollte das Gerät mal nicht korrekt antworten, so wird bei der nächsten Ausführung eines Befehls versucht der Controller neu zu initialisieren. Welches einen Verlust der schon eingestellten Helligkeit und Geschwindigkeit bedeutet.
- Das Modul fügt automatisch Zwangspausen in ms Bereich ein, wenn zu viele Befehle auf einmal übertragen werden müssen (z.B. SetProgram). Würde dies nicht passieren, kommt der Controller häufig aus dem Sync zur Schnittstelle und muss neu initialisiert werden. Bevor er auf Befehle wieder reagiert.
- SetProgram kann maximal 51 Sequenzen aufnehmen und im Controller abspeichern. Diese Übertragung dauert Zeit. Im Zweifelsfall ist die maximal Ausführungszeit des Scripts anzupassen.
Folgender PHP-Code liefert ein Beispiel wie man den JSON-String mit dem korrekten Aufbau, erzeugen kann:
$Sequenz['R'] = 0x00;
$Sequenz['G'] = 0xFF;
$Sequenz['B'] = 0xFF;
$Sequenz['H'] = 0x05;
$Sequenz['F'] = 0x05;
$Data[] = $Sequenz;
$Sequenz['R'] = 0xFF;
$Sequenz['G'] = 0x00;
$Sequenz['B'] = 0xFF;
$Sequenz['H'] = 0x05;
$Sequenz['F'] = 0x05;
$Data[] = $Sequenz;
MS35_SetProgram(12345 , 8, json_encode($Data));
Modul | Typ | Prefix | GUID |
---|---|---|---|
MS35 | Device | MS35 | {78EC291F-DD08-474C-950B-4EC547F31D26} |
Version 2.20 :
- Schreibfehler korrigiert.
Version 2.10 :
- Release für IPS 5.1 und den Module-Store.
Version 2.04 :
- Fix: Für IPS 5.0
Version 2.03 :
- Neu: Weitere Übersetzungen für IPS 4.3.
Version 2.02 :
- Fix: Kleine Bugfixes
Version 2.01 :
- Modul für IPS 4.1 angepasst. Keine Unterstützung für IPS 4.0 !
Version 2.0 :
- Erstes (noch nicht endgültig getestetes) öffentliches Release für IPS 4.0
Die Library ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert: