Philips Hue Farbe per Script ändern (Direkt eingebunden)

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
PapaKev
Beiträge: 5
Registriert: 15.11.2016, 15:51

Philips Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von PapaKev » 02.08.2018, 23:42

Hi

Ich habe die Bridge direkt in der Homematic eingebunden. Nun versuche ich die Farbe per Script zu ändern.
Soweit ich weiß, erkennt man den Datenpunkt doch an dem XMLAPI-Auszug:

Code: Alles auswählen

<device name="VIR-LG-RGBW-DIM HU-Hue color l" ise_id="4759">
<channel name="VIR-LG-RGBW-DIM HU-Hue color l:0" ise_id="4760" visible="true" operate="true"/>
<channel name="VIR-LG-RGBW-DIM HU-Hue color l:1" ise_id="4761" visible="true" operate="true">
<datapoint name="VirtualDevices.HU-Hue color l:1.LEVEL" type="LEVEL" ise_id="4762" value="0.000000" valuetype="4" valueunit="100%" timestamp="1533234883" operations="3"/>
<datapoint name="VirtualDevices.HU-Hue color l:1.RGBW" type="RGBW" ise_id="4763" value="rgb(255,255,255,255)" valuetype="20" valueunit="" timestamp="1533234883" operations="3"/>
<datapoint name="VirtualDevices.HU-Hue color l:1.WHITE" type="WHITE" ise_id="4764" value="2000.000000" valuetype="4" valueunit="100%" timestamp="1533234883" operations="3"/>
</channel>
</device>
Also habe ich es mit diesem Befehl versucht:

Code: Alles auswählen

dom.GetObject("VirtualDevices.HU-Hue color l:1.RGBW").RGBW("rgb(255,0,0,255)");
Bekomme aber immer eine Fehlermeldung.

Code: Alles auswählen

Error 1 at row 1 col 100 near ^("rgb(255,0,0,255)");
Parse following code failed:
dom.GetObject("VirtualDevices.HU-Hue color l:1.RGBW").RGBW("rgb(255,0,0,255)");
Der Datenpunkt ist laut ID richtig. Wenn ich in Tinymatic die Farbe ändere, wird auch dieser Datenpunkt mit dem Wert rgb(255,0,0,255) beschrieben.

Kann jemand helfen ?

Gruß Kevin
Zuletzt geändert von PapaKev am 03.08.2018, 11:28, insgesamt 1-mal geändert.

d3h56r
Beiträge: 192
Registriert: 29.10.2017, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 4 Mal

Re: Philipps Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von d3h56r » 03.08.2018, 07:23

PapaKev hat geschrieben:
02.08.2018, 23:42
Also habe ich es mit diesem Befehl versucht:

Code: Alles auswählen

dom.GetObject("VirtualDevices.HU-Hue color l:1.RGBW").RGBW("rgb(255,0,0,255)");
Du könntest es mal mit

Code: Alles auswählen

dom.GetObject("VirtualDevices.HU-Hue color l:1.RGBW").State("rgb(255,0,0,255)");
versuchen. Hilft das?
186 Kanäle in 59 Geräten:
1x HM-LC-Sw1-FM, 10x HM-CC-RT-DN, 1x HM-OU-LED16, 2x HM-LC-Sw1-Pl-DN-R1, 18x HM-Sec-SCo, 1x HM-Sec-TiS, 1x HM-LC-Sw1-Pl-CT-R1, 2x HM-LC-Sw2-FM, 5x HM-LC-Bl1PBU-FM, 3x HM-LC-Sw1PBU-FM, 12x HM-RC-2-PBU-FM, 1x HM-ES-PMSw1-Pl, 1x HM-WDS100-C6-O, 1x HmIP-RCV-50

PapaKev
Beiträge: 5
Registriert: 15.11.2016, 15:51

Re: Philips Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von PapaKev » 03.08.2018, 12:32

Danke für Deine Antwort,

aber auch das habe ich schon versucht. Obwohl es laut XMLAPI kein Typ State gibt, habe ich das auch schon versucht. Auch habe ich die Anführungszeichen bei rgb(255,0,0,255) weggelassen.
Alles ohne Erfolg. :?

--- Update ---
Anscheinend war ich aufm falschen Dampfer. Hab es jetzt nochmal mit

Code: Alles auswählen

dom.GetObject("VirtualDevices.HU-Hue color l:1.RGBW").State("rgb(255,255,255,255)")

probiert. Und es funktioniert. Danke für die Hilfe

kalterwind
Beiträge: 4
Registriert: 05.03.2018, 19:15

Re: Philips Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von kalterwind » 02.01.2019, 12:03

Ich bekomme es leider weiterhin nicht hin:

Funktioniert:

Code: Alles auswählen

dom.GetObject("VIR-LG-RGB-DIM HU-Iris:1").State(1.00);
Folgendes leider nicht:

Code: Alles auswählen

dom.GetObject("VIR-LG-RGB-DIM HU-Iris:1.RGBW").State("rgb(255,255,255,255)");
Wobei ich vorzugsweise mit den IDs arbeite:

Code: Alles auswählen

dom.GetObject(itemID + ".RGBW").State("rgb(255,255,255,255)");
Zuletzt geändert von alchy am 10.01.2021, 20:39, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

WeissNicht
Beiträge: 6
Registriert: 04.06.2020, 21:19
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 1 Mal

Re: Philips Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von WeissNicht » 10.01.2021, 18:52

Hallo Experten,
ich habe keider das gleiche Problem.

Code: Alles auswählen

dom.GetObject("VIR-LG-RGBW-DIM Mauer:1").State(0.2);
Schaltet die Lampe mit 20% ein.

Code: Alles auswählen

dom.GetObject("VIR-LG-RGBW-DIM Mauer:1.RGBW").State("rgb(255,255,255,255)");

dom.GetObject("VIR-LG-RGBW-DIM Mauer:1").State(0.2);
Schaltet die Lampe nicht ein und die Farbanwahl funktioniert nicht.

Ich verwende einen Raspberry.

Wo liegt der Fehler?

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Philips Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von alchy » 10.01.2021, 20:46

WeissNicht hat geschrieben:
10.01.2021, 18:52
Wo liegt der Fehler?

Ich behaupte mal, der Name der im Script verwendeten Objekte stimmt nicht.
Sollte dann auch eine Fehlermeldung produzieren im Fehlerprotokoll.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

WeissNicht
Beiträge: 6
Registriert: 04.06.2020, 21:19
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 1 Mal

Re: Philips Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von WeissNicht » 11.01.2021, 17:33

Ja daran habe ich auch gedacht, aber ich habe ihn nicht gefunden :(

Code: Alles auswählen

Jan 11 17:13:37 homematic local0.err ReGaHss: ERROR: ScriptRuntimeError: dom.GetObject("VIR-LG-RGBW-DIM Mauer:1.RGBW").State("rgb(255,255,255,255)");  dom.GetObject("VIR-LG-RGBW-DIM Mauer:1").State(0.2);  WriteLine ("Done"); [ExecError():iseESPexec.cpp:12880]
Jan 11 17:13:45 homematic local0.err ReGaHss: ERROR: ScriptRuntimeError: dom.GetObject("VIR-LG-RGBW-DIM Mauer:1.RGBW").State("rgb(255,255,255,255)");   [ExecError():iseESPexec.cpp:12880]
Die Fehlermeldung im Log File.

Was mich wundert ist, dass der eine Teil (Helligkeit Ein/aus) funktioniert

Code: Alles auswählen

dom.GetObject("VIR-LG-RGBW-DIM Mauer:1.RGBW").State("rgb(255,255,255,255)");

dom.GetObject("VIR-LG-RGBW-DIM Mauer:1").State(0.5);
Lasse ich die Farbanwahl weg, dann kann ich die Helligkeit einstellen, also sollte das Objekt das richtige sein?

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Philips Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von alchy » 11.01.2021, 18:49

Vermutlich ist VIR-LG-RGBW-DIM Mauer:1 der korrekte Name des Kanal 1 des Gerätes :?:
Da die Methode .State() leider auch auf einen Kanal angewendet werden kann, funktioniert das fälschlicherweise.

Ich würde mal raten das VIR-LG-RGBW-DIM Mauer:1.RGBW eben nicht der korrekte Datenpunktname ist.
Man könnte sich mit der weiterführenden Methode .DPByHssDP("RGBW")... auf den Kanal helfen oder gleich den Datenpunktnamen verwenden, oder, ...
Siehe auch:
>> HM Script Abfrage von Datenpunkten (RF,IP...) <<

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

WeissNicht
Beiträge: 6
Registriert: 04.06.2020, 21:19
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 1 Mal

Re: Philips Hue Farbe per Script ändern (Direkt eingebunden)

Beitrag von WeissNicht » 11.01.2021, 20:12

@Alchy

Vielen Dank, das war die Lösung.

Die Abfrage

Code: Alles auswählen

var ipname =(dom.GetObject(ID_CHANNELS)).Get("VIR-LG-RGBW-Liege:1").DPByHssDP("RGBW").Value();
WriteLine(ipname);
Lieferte

Code: Alles auswählen

rgb(255,255,255,255)

Lösung für eine andere Lampe...

Code: Alles auswählen

dom.GetObject("VIR-LG-RGBW-Liege:1").DPByHssDP("RGBW").State("rgb(55,25,255,255)");

Antworten

Zurück zu „HomeMatic allgemein“