NEWS
UNSOLVED aus JSON Datenpunkte erzeugen. Whirpool anbindung
-
Hallo zusammen,
ich habe mir diese Platine gelötet und auch schon erfolgreich eingebaut.
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA
Ich bekommen auch im mqtt Adapter die Datenpunkte angezeigt ( der Sonoff macht das nicht ? warum? )
JSON Command:
{"CONTENT":"STATES","LCK":1,"PWR":1,"UNT":1,"AIR":0,"GRN":0,"RED":0,"FLT":1,"TGT":37,"TMP":25,"CH1":32,"CH2":50,"CH3":53,"HJT":1}nach der Anleitung könnte ich damit auch Daten senden per mqtt
aber mir fehlen die Kenntnisse zu Json und den aufbau bzw was ich senden muss.. bzw wie ich dann den DP bestötig bekomme
Mein Ziel wäre es wie bei Tasmota Daten Punkte zu haben die ich in der Vis ansprechen kann..
Pumpe
Blubber
Tartget_temp
Temp
Filter
Standbyusw.
geht sowas ?
Hab ich ein paar Infos für mich ? oder gibt es einen Adapter?
Danke .
PS: Ich habe noch zwei Platinen wenn Interesse besteht
-
@christian-sandkaulen die Werte bekommst Du ganz einfach in Blockly ausgelesen und kannst dann eigene Datenpunkte damit aktualisieren:
Statt debug würdest Du dann natürlich Deine Datenpunkte aktualisieren.
-
danke dann kann ich die Daten jetzt auslesen! Das funktioniert schon mal
Wie schreibe ich das über das mqtt Command?
und wie vereine ich das in einem DP Geht das überhaupt?
danke
-
@christian-sandkaulen ok Du brauchst also die "andere Richtung"? Du hast die Werte also einzeln vorliegen und willst daraus das JSON erstellen. Verstehe ich das richtig?
-
ich würde gerne beiden machen... so wie ich das auch mit einem Tasmota DP haben.
Beispiel.
Switch am D3 am ESP8266 per sonoff adapter im IoBroker
Ich betätige am ESP8266 den button => DP im ioBroker wird geändert
Ich bestätige den "Schalter" in der Weboberfläche => DP im ioBroker wird geändert
Ich ändere den DP im IoBroker = ESP8266 ändern sicht (schaltet relay)geht sowas in beide Richtungen ?
chhristian
-
Kopier das mal in den Datenpunkt command rein! Wenn es funktioniert sag ich dir wie du den Rest umsetzt.
{"CMD":0,"VALUE":15,"XTIME":0,"INTERVAL":0}
-
@fabian1 said in aus JSON Datenpunkte erzeugen. Whirpool anbindung:
{"CMD":0,"VALUE":15,"XTIME":0,"INTERVAL":0}
leider passiert nix nach 10min kommt der mqtt Json wieder so
{"CONTENT":"STATES","LCK":0,"PWR":1,"UNT":1,"AIR":0,"GRN":0,"RED":0,"FLT":1,"TGT":20,"TMP":25,"CH1":32,"CH2":50,"CH3":48,"HJT":1}
du wolltest die temp auf 15 stellen oder?
-
@christian-sandkaulen Ja genau und das sollte so eigentlich gehen! Gibt es bei dem Whirlpool eine Temperaturspanne? Vielleicht ist 15 zu niedrig, probier das gleiche nochmal mit 30 für Value.
-
das war es eh hat auf 35°C reagiert
{"CONTENT":"STATES","LCK":0,"PWR":1,"UNT":1,"AIR":0,"GRN":0,"RED":0,"FLT":1,"TGT":35,"TMP":25,"CH1":32,"CH2":50,"CH3":53,"HJT":1}
-
@christian-sandkaulen ok, dann geht das wirklich recht einfach. Datenpunkte für die einzelnen Werte anlegen (die können dann z.B. in der VIS geändert werden). Trigger auf Änderung dieser Datenpunkte (also wenn sich irgendeiner davon ändert), dann JSON zusammenbauen, an command schicken.
Und 2.Trigger auf message und dann die Datenpunkte mit den Werten füllen wie oben in meinem Beispiel
-
-
@christian-sandkaulen ja, Du könntest immer bei Senden eines commands eine Variable (z.B. BLOCK=true) setzen (und über timeout wieder zurücksetzen) und im anderen Trigger fragen, ob BLOCK gesetzt ist und dann nix machen.
-
@christian-sandkaulen Ich würde die beiden Datenpunkte lieber komplett getrennt voneinander behandeln. Also einmal Status und Steuerung. Wie du dir den Status in der VIS anzeigen lassen kannst weißt du ja jetzt schon. Jetzt würd ich mir noch 2 Datenpunkte anlegen für die Steuerung. Der Erste, eine Liste in der du alle möglichen commands reinschreibst mit ihren Integer werten und dann noch den Datenpunkt für den eigentlichen Wert. Dann kannst du dir für die Steuerung in der VIS eine Listbox machen in der du das Kommando auswählst, dann den Wert eingeben und fertig. Beim Status kriegst du dann ja sowieso den gesetzten Wert zurück und vermeidest so das Schleifen Problem.
-
@fabian1
Danke, Datenpunkte als liste kenne ich noch gar nicht müsste ich mich erstmal einlesen -
-
@christian-sandkaulen
Das ist wirklich praktisch!
-
@christian-sandkaulen
javascript.0 2021-07-20 12:03:27.333 info (1841) script.js.Automation.Garten.Pool_steuerung: {"CMD":4,"VALUE":0,"XTIME":0,"INTERVAL":0} javascript.0 2021-07-20 12:03:27.333 warn (1841) at processImmediate (internal/timers.js:461:21) javascript.0 2021-07-20 12:03:27.333 warn (1841) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5701:41) javascript.0 2021-07-20 12:03:27.332 warn (1841) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:502:29) javascript.0 2021-07-20 12:03:27.332 warn (1841) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1075:38) javascript.0 2021-07-20 12:03:27.332 warn (1841) at Object.<anonymous> (script.js.Automation.Garten.Pool_steuerung:17:3) javascript.0 2021-07-20 12:03:27.331 warn (1841) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-07-20 12:03:27.329 warn (1841) State "mqtt.0.BW_2.0.0.command" not found
was funktioniert da nicht ? warum findet der mqtt.0.BW_2.0.0.command nicht?
-
Ich über mal:-) da könnten alle Command drin stehen ?
-
@christian-sandkaulen
Ja, du kannst dir da eintragen was du willst! Namen mit den dazugehörigen integern die du dann per Blockly nutzen kannst um das command zu verschicken.
-
@ahnungsbefreit sagte: bei Senden eines commands eine Variable (z.B. BLOCK=true) setzen (und über timeout wieder zurücksetzen)
Viel zu kompliziert: Den eigenen Datenpunkt mit "aktualisiere" (ack = true) schreiben und für das Kommando auf "unbestätigte Änderung" (ack = false) triggern. Das verhindert ebenfalls die Schleife.