Govee in Loxone integrieren
Einklappen
X
-
Hallo zusammen! Ich muss hier mal kurz mit meiner Nachfrage in den Thread stolpern: da die LEDs von Govee wohl per UDP Befehl ein/ausgeschaltet werden können, sind sie für mich sehr interessant. Kann ich das direkt über meinen Miniserver GEn 1 machen oder brauche ich dazu einen Raspi mit Loxberry?Kommentar
-
Yakuza
Dafür wird kein Raspberry Pi oder ähnliches benötigt.
Du steuerst das Band direkt mit virtuellen Ausgängen und entsprechenden Netzwerkbefehlen (siehe weiter vorne hier im Beitrag).
Du musst allerdings beim Kauf aufpassen, nicht jeder Stripe ist kompatibel. Es muss ein Stripe sein, dessen Anschlussbox per WLAN verbunden werden kann, die reinen Bluetooth Stripes kannst du nicht mit Loxone ansteuern.Kommentar
-
Wenn du einen pi laufen hast, dann kannst du Dinger auch sehr komfortabel über Node-Red steuern. Genauso wie Loxone auch.Node-RED mit influxDB und Grafana - z.B. Statistiken auslagern:
https://www.loxforum.com/forum/germa...d-grafana-visu
Mit Loxone einen Windows-PC steuern:
https://www.loxforum.com/forum/faqs-...indows-steuernKommentar
-
Super, danke euch! Nein, aktuell habe ich noch keinen Pi laufen. Ich dachte eigentlich das wäre nötig, um einiges an neuer Beleuchtung (2x smarte Glühbirne, 1x LED Stehlampe und 2x Tischlampe) in die Visu zu bekommen. Aber wenn ich das Govee System so einfach integrieren kann ist das noch besser. Dann werde ich mich wohl dafür entscheiden und dabei bleiben.Kommentar
-
-
Hallo zusammen,
hat es schon jemand geschafft Szenen einzubinden? Möglich sein sollte es wohl über einen undokumentierten local API Befehl: "ptReal", siehe hier.
Dabei sendet man scheinbar einen Lampen-spezifischen Code der einer BT-payload entspricht an die LAN Schnittstelle. Ich habe versucht dieser Anleitung zu folgen, und schaffe es auch die Scene-IDs zu erhalten, e.g. via Anleitung hier (adaptiert für eine Govee Lyra Stehlampe; sowie akt. App-Version: Profil → Einstellungen → Über Uns → App-Version):- curl "https://app2.govee.com/appsku/v1/lig...ries?sku=H6076" -H 'AppVersion: 6.3.11' -s | jq '[.data.categories[].scenes[] | {name: .sceneName, code: .lightEffects[0].sceneCode}]'
- z.B. => Aurora: 11216 > 2BD0; Rainbow: 22 > 16; Fire: 2151 > 867
- echo '{"msg":{"cmd":"ptReal","data":{"command":["MwUEzycAAAAAAAAAAAAAAAAAANo="]}}}' | nc -u -w1 <<IP vom Govee Licht>> 4003
Danke!Kommentar
-
..das Beispiel oben konnte ich nun nachvollziehen: Scene ID aus dem curl: 10191- Schritt 1: Decimal2Hex Konvertierung > 27CF → 27cf → Swap and Split (und "0x" voranstellen um Hex anzuzeigen. Lediglich eine Schreibweise): 0xcf 0x27
- Schritt 2: mit "00" auffüllen bis 19 bytes (je 2 Zeichen) resultieren: 33 05 04 cf 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- Schritt 3: Checksum berechnen: hier im obigen Feld eingeben, dann "AnalyzeHexData" klicken, dann unter "CheckSum8 Xor" ablesen: DA → da
- Schritt 4: String zusammensetzen: 33 05 04 cf 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00 da
- Schritt 5: Hex2Base64: → MwUEzycAAAAAAAAAAAAAAAAAANo=
Die Schritte oben liefern für z.B. die ID 35 (in decimal) folgendes: 33 05 04 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11, und nach Hex2Base64 den im folgenden übermittelten String:
echo -n '{"msg":{"cmd":"ptReal","data":{"command":["MwUEIwAAAAAAAAAAAAAAAAAAABE="]}}}' | nc -u -w1 <<IP der Govee Lampe>> 4003
Hat jemand eine Idee wie das auch mit den längeren IDs funktioniert?Zuletzt geändert von MarkusCosi; 04.11.2024, 15:15.Kommentar
-
naja ich würde halt erwarten, daß das höherwertige Byte der ID (also alles über 255 , also alles über hex 0xff) nach dem niederwertigen byte stehen soll.
Also angenommen es gäbe eine ID mit 12347 (Dezimal) was in Hex 0x303B entspricht, dann sollte das wohl folgendes ergeben: (das niederwertige byte 0x3b zuerst und dann das höherwertige byte 0x30 danach)
33 05 04 3b 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39
dann noch in BASE64 wandeln, fertig.
Zuletzt geändert von Labmaster; 04.11.2024, 17:12.Kommentar
-
Hallo Labmaster,
das hatte ich schon probiert. Mir fiel nun auf, dass die App korrekt die eingestellten Scenen anzeigt, diese an der Lampe aber leider nicht physisch "aktiv" sind.
d.h. folgendes funktioniert in der Hinsicht, als dass die Szenen in der App angezeigt werden:- Aurora:
- ID: 11216 > 2BD0 → 33 05 04 d0 2b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c9 → MwUE0CsAAAAAAAAAAAAAAAAAAMk=
- echo -n '{"msg":{"cmd":"ptReal","data":{"command":["MwUE0CsAAAAAAAAAAAAAAAAAAMk="]}}}' | nc -u -w1 <<IP der Lampe>> 4003
- Lake:
- ID: 2453 > 995 → 33 05 04 95 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ae → MwUElQkAAAAAAAAAAAAAAAAAAK4=
- echo -n '{"msg":{"cmd":"ptReal","data":{"command":["MwUElQkAAAAAAAAAAAAAAAAAAK4="]}}}' | nc -u -w1 <<IP der Lampe>> 4003
- Cherry blossom:
- ID: 2155 > 86B → 33 05 04 6B 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 51 → MwUEawgAAAAAAAAAAAAAAAAAAFE=
- echo -n '{"msg":{"cmd":"ptReal","data":{"command":["MwUEawgAAAAAAAAAAAAAAAAAAFE="]}}}' | nc -u -w1 <<IP der Lampe>> 4003
--
Ein ähnliches Problem habe ich hier gefunden. Gelöst wurde es dort mit "magischen" Vorbefehlen.. Diese habe ich auch in Base64 probiert (zuvor zero-Padding + Checksum), d.h.- a3 00 01 03 02 01 20 00 00 00 01 00 01 ff 4c 03 ca 08 05 f5 > owABAwIBIAAAAAEAAf9MA8oIBfU=
- a3 01 00 cb 05 03 ff bf 07 ff 7f 00 ff 60 07 00 00 ff 00 cf > owEAywUD/78H/38A/2AHAAD/AM8=
- a3 ff 00 ed 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0 > o/8A7QEAAAAAAAAAAAAAAAAAALA=
- echo -n '{"msg":{"cmd":"ptReal","data":{"command":["owABAwIBIAAAAAEAAf9MA8oIBfU=", "owEAywUD/78H/38A/2AHAAD/AM8=", "o/8A7QEAAAAAAAAAAAAAAAAAALA="]}}}' | nc -u -w1 <<IP der Lampe>> 4003;
Weitere Infos zu den BLE Befehlen habe ich hier gefunden. Die Lösung wäre wohl BLE sniffing zu betreiben, aber leider kenne ich mich da nicht aus... Wenn jemand mit dem Ansazt mehr Glück hat, so würde ich mich über Infos freuen!Zuletzt geändert von MarkusCosi; 05.11.2024, 15:51.Kommentar
- Aurora:
-
sooo...
Es funktioniert wie folgt: nur für Scene-IDs mit Decimal-Codes <255 (also hex 0xff) funktioniert das berechnen zu einem einzigen String / Befehl. Für alle längeren Scene-IDs kann man scheinbar Glück haben, aber im Normalfall geht es wohl so einfach eben nicht für jene Scenen mit SceneCode >255, siehe hier.
Für alle anderen muss man also BLE-Sniffing betreiben. Zum Glück gibt es schon eine Liste mit einigen Govee-Lampen, siehe hier!
Dabei fiel mir auf, dass die dortigen Befehle für die <255-Codes zu den berechneten passen. Zusätzlich findet man dort aber eben auch die Multi-Befehl-Sequenzen für die SceneCode-IDs > 255. z.B. findet man die oben erwähnten Codes für "Twilight" (siehe hier), vgl. die obigen berechneten Base64 Befehle und den entsprechenden Eintrag in der zitierten Liste (hier) unter lightEffect_Outdoor_String_Light → Twilight (146).
Nun dachte ich, ich hätte die Lyra Lampe. Jedoch entspricht unsere H6076 der Govee RGBICW Smart Corner Floor Lamp.
Die Lyra-Multi-Befehle für Aurora und Lake klappten dennoch auch recht gut (die escape-Character "" und die single quotes sind aus den cmd Strings der Liste zu entfernen):- Aurora: echo -n '{"msg":{"cmd":"ptReal","data":{"command":["owABBAIBOwAAAAwAAf//AQAAAJI=","owEC+wAM/8kAjv8Ajv8A+v8AAGQ=","owL//wD//wD//wD//wCp/4sA/4M=","o/+LAP/v/wAAAAAAAAAAAAAAADg=","MwUENggAAAAAAAAAAAAAAAAAAAw= "]}}}' | nc -u -w1 <<IP der Lampe>> 4003
- Lake: echo -n '{"msg":{"cmd":"ptReal","data":{"command":["owABCgIFIDAAAAECAoAaA9EUFPY=","owF/GQHSFBQA9R4BB/9UBQD9AKk=","owIAgAAgMQAAAQICfxkB1hQUf/8=","owMZA9gUFAD2HgFJ/pQSAfYAAE0=","owSAACBDAAABAgJ/GgPYFBR+GZw=","owUB1xQUAPYeAS//ehEB9QAAgFY=","owYAIDYAAAECAn8ZAdIUFIAZA50=","owfR FBQA9h4BFP6jEAH1AACAALE=","owggNwAAAQICfxkB0hQUfhk D0b0=","o/8UFAD2HgEH/14HAP0AAIAAAGk=","MwUEOQgAAAAAAAAAAAAAAAAAAAM="]}}}' | nc -u -w1 <<IP der Lampe>> 4003
Dementsprechend habe ich die anderen Lampen aus der Liste ausprobiert. "Table Lamp" (in der Liste die ID 106) und "Y-Lamp" (103) klappten beide garnicht, "Light bar" (104) und "Outdoor String Light" (101) klappten eingeschränkt (Farbe Lila fehlte...)
Was dann prima funktionierte war die baulich ähnliche "RGBIC_Strip" aus der Liste (vgl. Lampe H6076 hier vs. Strip hier), d.h. für Aurora folgender Befehl gemäß der Liste und dem Eintrag für Aurora B (Aurora A war nicht passend):- echo -n '{"msg":{"cmd":"ptReal","data":{"command":["owABCQIEI0AAAAECAf8ZA8IKA+I=","owEC5jIED/8ICwf/B/j//wbpAGs=","owIC+AEAgAAjQgAAAQAB/xgDu+Q=","owMKA4LnMgT/03LLhf8NS/9S/wE=","owSZEgHNAAPkACNEAAABAAH/GIc=","owUDuwoDAuUyBAsH/w//CP8G6d0=","owYH+P8QAcwBAIAAJkYAAAEAAZk=","owf/GAO7CgMC5TIFB/j/Cwf//y4=","o/8G6Q//CNz/ERIB3QEAgAAAADY=","MwUE8QgAAAAAAAAAAAAAAAAAAMs="]}}}' | nc -u -w1 <<IP der Lampe>> 4003
D.h. zusammenfassend: in der Liste (hier) eine ähnliche Lampe zur eigenen finden, dann gewünschte Scene suchen, dann ptReal-Befehl zusammensetzen mit Hilfe der "cmd:"-Befehle aus der Liste (escape Character und single quotes entfernen!). [Edit] Mit einem Radiobutton-Baustein (N-Ausgang) + Status-Baustein lässt sich somit eine Szenen-Kontrolle in Loxone für Govee-Lampen umsetzen. Dazu einen virt. Ausgangs Befehl mit payload {"msg":{"cmd":"ptReal","data":{"command":[<v>]}}} anlegen (analog zu obigen Brightness / On/Off-Befehlen) und den Befehl für das <v> mit den entsprechenden Multi-Befehlen vom Status-Baustein (Txt-Ausgang) wie oben füttern...
Zuletzt geändert von MarkusCosi; 07.11.2024, 21:44.Kommentar
-
Kommentar
-
laut Hersteller sollte die Lampe unterstützt sein, siehe hier: https://app-h5.govee.com/user-manual/wlan-guide
Hast du die LAN-API in den Einstellungen der Lampe aktiviert? Wie sieht der Befehl bei dir aus? -
MarkusCosi hab Festgestellt dass meine Streifen einfach zu alt sind und dieses Feature nicht besitzen, die Hardware version ist schon 3 Jahre alt .-.
-
-
👍 2Kommentar
-
Würdest du die Govee einbindung in Loxone empfehlen? Oder hast du mit einem anderen Hersteller bessere erfahrungen? -
ich finde die Integration per UDP Schnittstelle direkt in der Loxone Config und alles lokal ohne Cloud o.Ä. eigentlich prima. Auch die Qualität und das Preis-Leistungs-Verhältnis bei den Lampen finde ich bisher top (habe H7065, H6076, H70C4)👍 1
-
Kommentar