Moin liebes Forum,
passend zur anbrechenden Winterzeit kam mal wieder die Twinkly Lichterkette aus dem Keller zum Vorschein.
Ich stellte mir also erneut die Frage, ob es mittlerweile ein Modul zur Steuerung der unzähligen Twinkly Produkte
https://twinkly.com/de gibt.
Bisher habe ich die Steuerung immer über HTTPMOD vorgenommen, was nur sehr eingeschränkt funktionierte.
Bei meiner Recherche bin ich auf die (unofficial) RESTful API Beschreibung von
https://xled-docs.readthedocs.io/en/latest/rest_api.html gestoßen.
Anhand der API habe ich nun ein erstes Modul mit dem Namen 31_Twinkly.pm entwickelt, welches ich aktuell mit folgenden Geräten betreibe:
- Strings GoldEdition (AWW auch genannt)
- Strings RGBW Edition
- Spritzer (RGB)
- Cluster (RGB)
- Festoon (RGB)
Das Modul steht zum Test in meinem git zu Verfügung / alternativ am Ende des Beitrages:
https://github.com/t1me2die/31_Twinkly.pm/blob/main/31_Twinkly.pmDokumentation im FHEMWiki:
https://wiki.fhem.de/wiki/TwinklyZu aller erst, dass Modul ist in der Entwicklungsphase und nicht alle Funktionen sind zu 100% getestet, daher gilt "Verwendung auf eigene Gefahr!".
Nachdem ihr das Modul in das FHEM Verzeichnis gepackt habt und einen:
reload 31_Twinkly.pm
vorgenommen habt, könnt ihr mit dem
Define fortsetzen:
define <name> Twinkly <IP-Adresse / Hostname>
Beispiel:
define Weihnachtskaktus Twinkly 192.168.178.100
oder
define Weihnachtskaktus Twinkly Weihnachtskaktus.fritz.box
Stellt bitte sicher, dass euer Twinkly Device im Netzwerk erreichbar ist.
Anschließend gebt dem Modul bitte 1-2Minuten um die notwendigen Informationen auszulesen.
Zuerst wird ein TOKEN vom Twinkly Device angefordert, womit man sich authentifizieren muss (Expire after ~4h).
Es werden interne Geräteinformationen in den Readings abgelegt.
Es wird versucht das Model automatisch zu ermitteln.
Es wird versucht ein Icon und das passende webCmd für eine einfache Steuerung zu setzen.
Folgende
GET Befehle stehen zur Auswahl:
- Gestalt - main device informations
- Mode - get actual mode of device
- Movies - get all uploaded / saved movies from the device
- Name - get internal informations of the device
- Network - get network informations of the device
- Token - check if the token is valid or need to updated
Folgende
SET Befehle stehen zur Auswahl:
- brightness - set brightness to device
- effect_id - set a standard effect to device
- hue - set hue color to device
- mode - set different mode to device
- movie - switch between uploaded /saved movies - use "get Device Movies" first!
- on - switch device on in the movie mode
- off - switch device off
- saturation - set saturation to device
Folgendes
ATTR kann optional gesetzt werden:
- model - will be set automatically depends on the product_code
- interval - define the refresh interval (min: 15sec -> default: each 60sec)
Eine erste "Device specific Help" habe ich angelegt - zum Großteil zuerst auf englisch.
Falls ihr eine Gruppierung von mehreren Geräten in der Twinkly App vorgenommen habt, so müsst ihr das Main-Steuerungsgerät herausfinden.
In meinem Fall habe ich zwei AWW (400 und 250er Strings) via Join verbunden. In meinem Fall war es das erste Gerät in der Gruppierungsliste (dies war auch das Gerät, welches ich zuerst ausgewählt hatte!).
Das zweite Gerät kann man via einzeln auch steuern, jedoch kommt die Gruppierung dann ein wenig durcheinander, weswegen ich vorschlagen würde, dass ihr nur das Main-Gerät definiert. Die Funktionen sind hier identisch wie bei einem einzelnen Gerät.
Für Feedback, Code-Verbesserung und weitere Vorschläge bin ich gerne offen

Ansonsten hoffe ich, dass es vielleicht dem Ein oder Anderen hilft die Weihnachtszeit etwas stressfreier zu gestalten
@Energieverbrauch: Ich habe soeben den Verbrauch vom Spritzer und Cluster (400 RGB) gemessen und bin ein wenig überrascht.- Spritzer -> 18-19Watt unabhängig von der eingestellten Helligkeit, d.h. es ist egal ob man auf 1% Helligkeit oder auf 100% Helligkeit das Gerät im Modus "movie" laufen lässt. Im Modus "color" (eine einzelne Farbe), sinkt der Verbrauch geringfügig.
- Cluster -> 37-38Watt, unabhängig der Helligkeit. Im Modus "color" liegt der Verbrauch bei 100% Helligkeit -> 33Watt, 50% Helligkeit -> 36Watt, 25% Helligkeit -> 37Watt, 1% Helligkeit -> 38Watt
Gruß
Mathias
@Edit:
Changelog:
* v0.1.0 fixed ct colorpicker and published to fhem forum.
* v0.1.1 message in INTERNAL if no movie(s) found on device
* v0.1.2 warning messages if no movies found and cmd 'on' sent
* v0.1.3 ability to use ct colorpicker by RGBW devices (set <name> ct 2000-6500)
* v0.1.4 added error messages for set commands
* v0.1.5 1. call json2reading if $data is not "Invalid Token"
2. If Token is resettet -> Invalid Token -> call stateRequest to get new Token
* v0.1.6 List of "getMovies" saved with {helper} in devices to save time by the loop