NEWS
Jarvis: Shelly mittels RPC-Datenpunkt schalten
-
Hallo, ich brauche Hilfe für die Jarvis-Visualisierung.
Meine Shellys sind über den MQTT-Adapter verbunden.
z.B. mqtt.0.shellyplusplugs-[MAC-Adresse]
Wenn ich unter Ojekte im Unterverzeichnis *.RPC eines Shellys diesen JSON eingebe, kann ich direkt in den Objekten problemlos an und ausschalten:{ "id": 1, "src":"PlusPlugS-04", "method":"Switch.Set", "params": { "id":0, "on":true } }
Jetzt wollte ich damit ein "Gerät" in Jarvis einrichten, um den Shelly in Jarvis an- und auszuschalten. Aber wo gebe ich den JSON ein?
So funktioniert es leider nicht:
-
@ralf-8
Hallo
Verbinde dein shelly doch mit ShellyAdapter V7.0.0
Dann ist da alles viel einfacher -
@ralf-8 Versuch mal bitte in Datenpunkt-Egenschaften
{ "value": "val=> {let v = JSON.parse(val); return v.params.on;}", "on": "{\"id\": 1,\"src\":\"PlusPlugS-04\",\"method\":\"Switch.Set\",\"params\": {\"id\":0,\"on\":true}}", "off": "{\"id\": 1,\"src\":\"PlusPlugS-04\",\"method\":\"Switch.Set\",\"params\": {\"id\":0,\"on\":false}}" }
in v3.2.0 gibt es beim Schalten Warnungen im Browser-Log.
https://github.com/Zefau/ioBroker.jarvis/issues/2659
Damit funktioniert es ohne Warnung (v3.2.0)
{ "value": "val=> {const v = JSON.parse(val || '{}'); if( v.params!=undefined && v.params.on!=undefined){ console.log(v); return v.params.on;}}", "on": "{\"id\": 1,\"src\":\"PlusPlugS-04\",\"method\":\"Switch.Set\",\"params\": {\"id\":0,\"on\":true}}", "off": "{\"id\": 1,\"src\":\"PlusPlugS-04\",\"method\":\"Switch.Set\",\"params\": {\"id\":0,\"on\":false}}" }
-
Vielen Dank, so funktioniert es.
Die Zeile "value" verstehe ich allerdings nicht. Damit kam auch eine Meldung: "callback nur in Pro-Version". Ich habe die Zeile einfach mal weggelassen.Ein Problem bleibt: als Status (state) wird ein ganzer JSON angezeigt.
Unter Datenpunkt(Anzeige) habe ich aktuell dasselbe wie in Datenpunkt(Trigger):mqtt.0.shellyplusplugs-xyz.rpc
eingetragen. Das Ergebnis ist dann der ganze JSON und leider nicht einfach false/true. Noch besser wäre es wenn auch on/off zurückgegeben würde.
Gibt es dafür auch eine Lösung?
-
{ "value": "val=> {const v = JSON.parse(val || '{}'); if( v.params!=undefined && v.params.on!=undefined){ return v.params.on;}}", "on": "{\"id\": 1,\"src\":\"PlusPlugS-04\",\"method\":\"Switch.Set\",\"params\": {\"id\":0,\"on\":true}}", "off": "{\"id\": 1,\"src\":\"PlusPlugS-04\",\"method\":\"Switch.Set\",\"params\": {\"id\":0,\"on\":false}}" }
Welche Version von jarvis?
-
@mcu
Leider funktioniert die Anzeige immer noch nicht.
Das Schalten Output:True/False funktioniert meistens.Die installierte Jarvis-Version ist 3.1.8. Eine andere Auswahl habe ich unter den Adaptern auch gar nicht. Wenn ich damit klar komme, kann ich gerne die Pro-Version unterstützen.
Leider funktioniert die Anzeige immer noch nicht. Vielleicht verstehe ich auch nicht, in welche Felder die JSON´s eingetragen werden sollen?
Hier nochmal Screenshots der aktuellen Einstellungen und wie das auf dem Layout ausieht.
Der angezeigte Wert wird doch aber wahrscheinlich durch den Eintrag unter Datenpunkt (Anzeige) mqtt.0.shellyplusplugs-xyz.rpc bestimmt?
Und mit dieser Einstellung wird leider ein JSON angezeigt und nicht einfach On / Off
-
@ralf-8 Dafür ist die PRO notwendig.