Twinkly
Ermöglicht die Kommunikation mit den Smart LED Lichterketten Twinkly.
Inhaltverzeichnis
- Funktionsumfang
- Voraussetzungen
- Installation
- Einrichten der Instanzen in IP-Symcon
- Statusvariablen und Profile
- WebFront
- PHP-Befehlsreferenz
- Versionshistorie
1. Funktionsumfang
- Suchen und Erstellen von Twinkly Geräten (Discovery Modul)
- Schalten des LED-Betriebsmodus (+ extended mode)
- Einstellen der Farbe, Helligkeit, Sättigung und Effekt
- Auslesen aller Geräte- und Netwerkinformationen
- Auslesen der Firmware Version
- Änderung des Gerätenamens
2. Voraussetzungen
- IP-Symcon ab Version 6.0
3. Installation
- Über den Modul Store das Modul Twinkly installieren.
- Alternativ Über das Modul-Control folgende URL hinzufügen.
https://github.com/Wilkware/IPSymconTwinkly
odergit://github.com/Wilkware/IPSymconTwinkly.git
4. Einrichten der Instanzen in IP-Symcon
Twinkly Discovery
Die Gerätesuche ist über die Glocke oben rechts in der Konsole aufrufbar. Dort über "SYSTEM AUSWÄHLEN" kann das
'Twinkly Discovery'-Modul ausgewählt und installiert werden.
Twinkly Device
Unter "Instanz hinzufügen" ist das 'Twinkly Device'-Modul (Alias: Smart LED Lichterkette) unter dem Hersteller 'Ledworks' aufgeführt.
Konfigurationsseite:
Einstellungsbereich:
Gerät ...
Name | Beschreibung |
---|---|
IP-Adresse | Netzwerkadresse der Lichterkette |
Zeitschaltung ...
Name | Beschreibung |
---|---|
Aus/Ein | Zeitschaltung/Timer aktivieren bzw. deaktivieren. |
Einschalten | Tägliche Einschaltzeit. |
Ausschalten | Tägliche Ausschaltzeit. |
JETZT | Trägt die aktuelle Uhrzeit als Start- oder Endezeit ein |
Erweiterte Einstellungen ...
Name | Beschreibung |
---|---|
AKtivieren des erweiterten Modus | Drüber können zusätzliche (ungetestete) LED Betriebsmodi freigeschalten werden (Musicreactive, Playlist & Realtime)! |
Aktionsbereich:
Aktion | Beschreibung |
---|---|
HELLIGKEIT | Über die Schaltflächen kann die aktuelle Helligkeit syncronisiert werden (z.B. wenn von App geändert wurde). |
SÄTTIGUNG | Über die Schaltflächen kann die aktuelle Sättigung syncronisiert werden (z.B. wenn von App geändert wurde). |
FARBE | Über die Schaltflächen kann die aktuelle Frabe syncronisiert werden (z.B. wenn von App geändert wurde). |
EFFEKT | Über die Schaltflächen kann der aktuelle Effekt syncronisiert werden. |
GERÄTEINFOS | Über die Schaltflächen können die verschiedensten gerätespezifischen Einstellungen abgerufen werden. |
FIRMWARE | Über die Schaltflächen kann die Version des Gerätes ausgelesen und angezeigt werden. |
NETZWERKSTATUS | Über die Schaltflächen können die hinterlegten Netzwerkeinstellungen angezeigt werden. |
Neuer Gerätenamen | Zeigt den aktuellen (nach dem Öffnen des Formulares) Namen an bzw. kann in einen neuen Namen geändert werden. |
ÄNDERN | Setzt den Gerätenamen (Alias) neu. |
5. Statusvariablen und Profile
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
Name | Typ | Beschreibung |
---|---|---|
Schalter | Integer | Schalter (An/Aus) |
Modus | Integer | LED-Betriebsmodus |
Farbe | Integer | Farbwert |
Effekt | Integer | Effektauswahl (1..5) |
Brightness | Integer | Helligkeitswert (0..100%) |
Sättigung | Integer | Sättigungswert (0..100%) |
Folgendes Profil wird angelegt:
Name | Typ | Beschreibung |
---|---|---|
Twinkly.Switch | Integer | LED-Betriebsmodus (0=Aus, 1=An) |
Twinkly.Mode | Integer | LED-Betriebsmodus (0=Color, 1=Effekt, 2=Film, 3=Demo) |
Twinkly.ModeEx | Integer | Extended LED-Betriebsmodus (0=Color, 1=Effekt, 2=Film, 3=Demo, 4=Music Reactive, 5=Playlist, 6=Echtzeit) |
Twinkly.Effect | Integer | Vordefinierte Effekte (1..5) |
6. WebFront
Die pro Twinkly Gerät erzeugten Variablen können direkt ins Webfront verlingt werden.
7. PHP-Befehlsreferenz
void TWICKLY_Color(int $InstanzID);
Liest den aktuell am Gerät eingestelten Farbwert aus und synchronisert ihn mit der dazugehörigen Statusvariable.
Die Funktion liefert als Rückgabewert einen String (Farbe: 0xRRGGBB (<Integer-wert>)).
Beispiel: TWICKLY_Color(12345);
Ausgabe "Helligkeit: 100%".
void TWICKLY_Effect(int $InstanzID);
Liest den aktuell am Gerät hinterlegten Effekt aus und synchronisert ihn mit der dazugehörigen Statusvariable.
Die Funktion liefert als Rückgabewert einen String (Effekt: x (<uuid>)).
Beispiel: TWICKLY_Brightness(12345);
Ausgabe "Helligkeit: 100%".
void TWICKLY_Brightness(int $InstanzID);
Liest den aktuell am Gerät hinterlegten Helligkeitswert aus und synchronisert ihn mit der dazugehörigen Statusvariable.
Die Funktion liefert als Rückgabewert einen String (Helligkeit: xy%).
Beispiel: TWICKLY_Brightness(12345);
Ausgabe "Helligkeit: 100%".
void TWICKLY_Saturation(int $InstanzID);
Liest de aktuell am Gerät hinterlegten Sättigungswert aus und synchronisert ihn mit der dazugehörigen Statusvariable.
Die Funktion liefert als Rückgabewert einen String (Sättigung: xy%).
Beispiel: TWICKLY_Saturation(12345);
Ausgabe "Helligkeit: 100%".
void TWICKLY_Gestalt(int $InstanzID);
Liest alle Geräteinformationen aus.
Die Funktion liefert als Rückgabewert einen (sprintf) formatierten String.
Beispiel: TWICKLY_Gestalt(12345);
Product name: Twinkly
Hardware Version: 100
Bytes per LED: 3
Hardware ID: ab01cd
Flash Size: 64
LED Type: 14
Product Code: TWS250STP-B
Firmware Family: F
Device Name: Weihnachtsbaum
Uptime: 239317051
MAC: 12:34:56:ba:dc:fe
UUID: 12345678-bacd-1234-abcd-1234567890ab
Max supported LED: 1020
Number of LED: 250
LED Profile: RGB
Frame Rate: 23,810000
Movie Capacity: 992
Copyright: LEDWORKS 2018
void TWICKLY_Version(int $InstanzID);
Liest die installierte Firmwareversion des Gerätes aus.
Die Funktion liefert als Rückgabewert einen String (Firmware: x.yy.zz).
Beispiel: TWICKLY_Version(12345);
Ausgabe "Firmware: 2.4.16".
void TWICKLY_Network(int $InstanzID);
Liest die eingestellten Netzwerkinformationen aus. Die Funktion liefert als Rückgabewert einen (sprintf) formatierten String.
Beispiel: TWICKLY_Network(12345);
Network mode: 1 (Station)
Station:
SSID: ssid
IP: 192.168.1.9
Gateway: 192.168.1.1
Mask: 255.255.255.0
RSSI: -54 db
Access Point:
SSID: Twinkly_DE99EF
IP: 192.168.4.1
Channel: 1
Encryption: NONE
SSID Hidden: false
Max connections: 4
void TWICKLY_DeviceName(int $InstanzID, string $NewName);
Setzt den Gerätenamen (Alias) neu.
Die Funktion liefert als Rückgabewert einen String (Erfolgsmeldung).
Beispiel: TWICKLY_DeviceName(12345, 'Lichterkette');
Ausgabe "Der Name wurde erfolgreich geändert!".
8. Versionshistorie
v3.0.20221201
- NEU: Trennung von Ein/Aus-Schaltung und Änderung des Betriebsmodus
- NEU: Betriebsmodus "Farbe" und "Effekt" konfigurierbar hinzugefügt
- NEU: Steuerung der Sättigung hinzugefügt
- NEU: Synchronisation der Statusvariablen erweitert (z.B. wenn von App geändert wurde)
- NEU: Konfigurationsformular überarbeitet und vereinheitlicht
- NEU: Twinkly-API erweitert
- NEU: Nutzung erweiterte Betriebsmodi (experimentell) ermöglicht
- FIX: Interne Bibliotheken überarbeitet und vereinheitlicht
- FIX: Doppelte gefundene Geräte gefixt
- FIX: Dokumentation überarbeitet
v2.1.20210801
- NEU: Konfigurationsformular überarbeitet und vereinheitlicht
- NEU: Zeitschaltung (Timer) hinzugefügt
- NEU: Abruf der Netzwerkinformation hinzugefügt
- NEU: Änderung des Gerätenamens (Alias) hinzugefügt
- NEU: Twinkly-API erweitert
- FIX: Übersetzungen nachgezogen
- FIX: Interne Bibliotheken überarbeitet und vereinheitlicht
- FIX: Debug Meldungen überarbeitet
- FIX: Dokumentation überarbeitet
v2.0.20201016
- NEU: Steuerung bzw. Einstellung der Helligkeit
- NEU: Vereinfachte Modusschaltung als normaler Lichtschalter
- NEU: Fehlerbehandlung wenn keine Verbindung zum Gerät hergestellt werden kann
- FIX: Bugfix Discovery Modul
- FIX: Debugausgabe überarbeitet
- FIX: API erweitert und überarbeitet
v1.0.20200501
- NEU: Initialversion
v1.1.20200510
- FIX: Bugfix Discovery Modul
v1.0.20200501
- NEU: Initialversion
Entwickler
Seit nunmehr über 10 Jahren fasziniert mich das Thema Haussteuerung. In den letzten Jahren betätige ich mich auch intensiv in der IP-Symcon Community und steuere dort verschiedenste Skript und Module bei. Ihr findet mich dort unter dem Namen @pitti 😉
Spenden
Die Software ist für die nicht kommerzielle Nutzung kostenlos, über eine Spende bei Gefallen des Moduls würde ich mich freuen.
Lizenz
Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International