NEWS
Variablen-Austausch mit CCU
-
Hallo ioBroker Gemeinde,
seit eingier Zeit habe ich ioBroker am laufen und freue mich sehr dass es so etwas gibt. Eingebunden ist bei mir hauptsächlich Philips HUE.
Jetzt kommt aber eine entscheidende Frage für mich:
-
1. Aus der CCU steuere ich Philips Hue über die "Simple-API" also über einen URL-Aufruf. Ist das die richtige Vorgehensweise?
-
2. Wie kann ich denn auf der CCU ein Objekt oder eine Variable aus dem ioBroker "einsehen" bzw. schreiben und lesen?
Wie kann ich z.B. in der CCU auf einen HUE State zurückgreifen?
Freue mich über Eure Antworten!
Viele Grüße
Thomas
-
-
Hallo smarttom,
willkommen im Forum.
@smarttom:1. Aus der CCU steuere ich Philips Hue über die "Simple-API" also über einen URL-Aufruf. Ist das die richtige Vorgehensweise? `
Ja, so kannst du von aussen auf ioBroker Datenpunkte zugreifen, sie lesen und schreiben. Doku https://github.com/ioBroker/ioBroker.simple-api.
@smarttom:Wie kann ich denn auf der CCU ein Objekt oder eine Variable aus dem ioBroker "einsehen" bzw. schreiben und lesen?
Wie kann ich z.B. in der CCU auf einen HUE State zurückgreifen? ` Da ist ja eigentlich die gleiche Frage, zumindest die gleiche Antwort.
Du kannst die https://github.com/ioBroker/ioBroker.simple-api#getplainvalue - Funktion von simpleAPI verwenden. Dazu musst du aus der CCU einen HTTP-Befehl (simple API Kommando) an ioBroker senden und erhälst den Wert der abgefragten Variable zurück. Wie du aus der CCU einen HTTP-Befehl absetzt, findest du im Homematic-Forum. Hilfreich ist da das CUxD-Addon.
Es ist allerdings auf lange Sicht der bessere Weg, die Logik in ioBroker zu portieren. D.h. du fragst nicht von der CCU die Stati von ioBroker-Datenpunkten ab, bewertest sie in der CCU, berechnest und vergleichst, um dann per simpleAPI wieder einen Datenpunkt in ioBroker zu setzen/schalten. Besser ist es andersherum: Du empfängst in ioBroker über den HM-RPC-Adapter (und HM-REGA-Adapter) Homematic-Stati (zB Wandtaster oder Bewegungsmelder), lässt von Javascript Adapter auswerten und schaltest dann in ioBroker (statt Javascript Adapter geht zB auf der Szenen-Adapter oder OCC, oder oder). Dann kannst du auch in VIS gleich die Visualisierung bauen.
Meine CCU1 läuft seit der Portierung absolut stabil, da keine Skripte und kaum noch Programme in der WebUI laufen.
Gruß
Pix
-
Hallo zusammen,
ich habe das gleiche oder zumindest ein sehr ähnliches Problem. Ich möchte meine elektrisches Hofeinfahrttor fahren, wenn ich mit dem Auto in die Straße einbiege.
Dazu versuche eine Variable in der CCU zu setzen und habe ich mich hier durch einige Beiträge gewühlt, da mir die Kenntnisse in Java fehlen komme ich nicht weiter. Das Problem ist, dass sich die Variable in der CCU nicht ändert.
Das Skript sieht folgendermaßen aus, habe ich mir zusammengesammelt.
on('geofency.0.Wilde_Heide_10.entry', function(obj) {
log('Neuer Geofency-Wert ' + obj.state.val);
if (obj.state.val == "1") {
setState('hm-rega.0.3951', true);
} else {
setState('hm-rega.0.3951', false);
}
});
oder habe ich was in der CCU falsch eingestellt?
Die Visualisierung und die log Datei zeigen "0" für verlassen und "1" für eintreten an, das klappt ganz wunderbar, aber der Rest halt nicht…
Gruß
Biboxx
-
HM-Rega-Werte werden nur alle 30 Sekunden an ioBroker gesendet.
Kann sein, dass sich der Wert dann noch nicht geändert hatte.
Gruß
Rainer
-
Hallo Rainer,
habe ich mal eben ausprobiert und auf 1 sec gesetzt, geht leider auch nicht.
Dann habe ich die Variable durch einen einfachen Lichtschalter (LEQ0216092.1) ersetzt… geht auch nicht.
Ich mache etwas grundlegendes falsch, sehe es aber nicht.
der code:
on('geofency.0.Wilde_Heide_10.entry', function(obj) {
log('Neuer Geofency-Wert ' + obj.state.val);
setState('hm-rpc.0.LEQ0216092.1', obj.state.val);
});
Gruß
Olaf
-
'hm-rpc.0.LEQ0216092.1' ist der Kanal. Außerdem benötigt der Schalter einen Wert vom Typ "boolean".
setState('hm-rpc.0.LEQ0216092.1.STATE', toBoolean(obj.state.val));