NEWS
Shellys ("Alt und Plus") über MQTT Adapter
-
@hotspot_2 gut nun nimmst Du eine Change NOde und gehst auf Typ JSONATA
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym Done. Mqtt-out Node auf RPC?
Ja das auch - aber erst müssen wir das Objekt noch konstruieren. s. Change Node.
Du klickst auf die 3 Punkte um den JSONATA Editor zu öffnen:
dort ersetzt Du hinter die Eigenschaft die gesetzt werden muss, true bzw. false durch payload
Um zu Prüfen, dass auch je nachdem ob Du true oder false setzt kannst Du noch eine debug Node hinter die Change NOde hängen um zu überprüfen, ob du das korrekte Objekt schreibst:
-
@mickym Funktioniert! Licht geht an und aus wenn ich das Objekt ändere. Habe ja das mqtt-out node vorher schon gemacht.
-
@hotspot_2 Na gut - dann haben wir unser Ziel erreicht - und Du kannst nun den Rest selbst machen.
-
@mickym Ja, das haben wir.
Ich bastele mir jetzt einige Nodes und dann kann ich den shelly Adapter ablösen.
Vielen, vielen Dank für deine Hilfe hierbei! Ich denke dem ein oder anderen kann das hier auch richtig gut helfen.
Ich würde mich nochmal melden wenn ich irgendwo auf Probleme stosse bei den anderen Shelly Komponenten.
Wünsche Dir eine gute Nacht!
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym Ja, das haben wir.
Ich bastele mir jetzt einige Nodes und dann kann ich den shelly Adapter ablösen.
Vielen, vielen Dank für deine Hilfe hierbei! Ich denke dem ein oder anderen kann das hier auch richtig gut helfen.
Ich würde mich nochmal melden wenn ich irgendwo auf Probleme stosse bei den anderen Shelly Komponenten.
Wünsche Dir eine gute Nacht!
Gut - Du siehst wie schön man mit NodeRed Objekte bearbeiten kann. Aber wenn Du das lieber mit Blockly machen willst, dann kannst Du das ja gerne tun. Ich finde es nur viel umständlicher.
-
@mickym Da ist auf jeden Fall was dran, die Neugier ist auf jeden Fall da und geweckt.
Mir fehlen halt noch ein paar Dinge (Trigger, if..then..else usw.,). Aber wenn man das alles machen kann wie mit Blockly (und noch mehr) dann ist das auf jeden Fall sehr interesant für mich.
Muss mich da mal bisschen einlesen und einarbeiten. Aber die Grundsteine sind gelegt ;-).
-
@hotspot_2 Wir können uns ja auch mal ein bestehendes Blockly vornehmen und schauen, wie man das in NodeRed umsetzen würde.
-
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym Das wäre super.
Das was wir bisher gemacht haben - hätte man auch noch ganz ohne Logikmaschine (also ohne Node Red und Blockly) mit einem Alias machen können. Nur wird das bei mehrfachen Paramtern schnell unübersichtlich.
Also schlaf gut.
-
@mickym Ich bin jetzt am einrichten der Nodes und klappt soweit.
Ich stelle aber fest dass das anlegen der Objekte durch NodeRed nicht einwandfrei funktioniert. Die Objekte werden oft als undefinded angelegt und dann muss ich sie entweder löschen oder von Hand auf boolean setzen.
Kann man das irgendwie optimieren?
-
@hotspot_2 Nein - entweder du legst es von vorne an - Du kannst natürlich eine Datentyp schon in der iobroker-out mitgeben - in diesem Fall sollte der richtige Datentyp gleich angelegt sein:
Evtl. dauert es aber auch. Ansonsten muss ein issue auf github eröffnet werden.
Normalerweise hat mir @apollon77 erklärt, dass der Datentyp durch die payload automatisch erstellt wird. Aber wie gestern scheint sich das Erstellen von Objekten sehr verschlechtert zu haben, als ob sich da im Hintergrund was ändert.
-
@mickym Das mitgeben des Payload Datentyps in der iobroker-out löst das Problem. Dann funktioniert es bestens.
18 Plus1 habe ich schon drin, funktioniert alles bestens.
-
@mickym Hallo, ich würde nun gerne einen Shelly Motion (Gen1) anzapfen und das Motion Event und den Batteriestatus abfragen. Per MQTT sind sie schon eingebunden und das JSON habe ich mal hier eingefügt.
{"motion":false,"timestamp":0,"active":true,"vibration":false,"lux":0,"bat":96}
Wie kann ich das JSON nun so zerlegen und iobroker-out einmal motion, bat, vibration rausschreiben in ein Objekt? Das haben wir gestern glaub noch nicht gemacht. Nur in ein JSON schreiben.
-
@hotspot_2 Nun das habe ich Dir gezeigt. Ist doch das Gleiche wie Du den output rausgeholt hast. Setze die Payload einfach auf den Pfad der Eigenschaft die Du brauchst.
also eine Change Node mit setze payload auf payload.motion und einmal eine change Node mit payload auf payload.bat -
Schau Dir einfach nochmal diesen Post an: https://forum.iobroker.net/post/969387
-
@mickym Passt! Ich war mir nicht mehr ganz sicher da da was von payload.output stand. Aber wenn ich da payloud.motion eingebe, habe ich was ich brauche. Läuft ;-).
Danke!
-
@hotspot_2 Nochmal vorher war output die Eigenschaft, die Du extrahieren willst. Wie gesagt Du setzt die payload auf die eingehende Nachricht und dort auf die Eigenschaft. die dich interessiert. Nutze von Anfang an die JSONATA Seite.
Schau mal hier kannst Du testen:
https://try.jsonata.org/JQEvV10VdLinks trägst Du Dein Eingangsobjekt ein, rechts oben - Dein Kommando - rechts unten das Ergebnis
Wie gesagt Du solltest Dich mit rein paar Basics von Objekten vertraut machen. Nicht umsonst habe ich Dir gepostet, wie Du aus dem Debug Output Pfad und Werte kopierst:
-
@mickym sagte in Shellys ("Alt und Plus") über MQTT Adapter:
Normalerweise hat mir @apollon77 erklärt, dass der Datentyp durch die payload automatisch erstellt wird. Aber wie gestern scheint sich das Erstellen von Objekten sehr verschlechtert zu haben, als ob sich da im Hintergrund was ändert.
Was hat sich wo geändert?
-
@apollon77 Na ich weiß es nicht. - Mir ist es nun gerade hier im Thread passiert ist, dass der Datenpunkt nicht angelegt wurde oder plötzlich im Node-Red Adapter aufgetaucht ist. Bislang hatte ich da nie Probleme, aber es ist nicht nur mir passiert. Irgendwie hat das gestern oder vorgestern solche Fehler gegeben, dass die Datenpunkte nicht angelegt wurden oder falsch angelegt wurden - und vorher gabs das Problem eigentlich nicht oder ist nicht aufgetreten. Keine Ahnung. Ich hab auch nicht das Gefühl, dass das immer sondern manchmal auftritt - deshalb habe ich auch noch kein Issue aufgemacht.
Im Moment klappt es - wenn der Pfad in mqtt Schreibweise mitgegeben wird - also mit Schrägstrichen, dann wird es unter NodeRed angelegt. Allerdings ist grundsätzlich auch die Pfadangaben mit Schrägstrichschreibweise ja auch supported, sonst hätten wir ja nicht die Option bei den iobroker-IN Nodes.
![0_1680128060162_55536927-9c61-4091-bdb3-7832cdd2f4f3-image.png](Lade 100% hoch)
https://forum.iobroker.net/post/969674
https://forum.iobroker.net/post/969319
https://forum.iobroker.net/post/969318https://forum.iobroker.net/post/969313
Das passiert nicht immer - sondern nur manchmal.
Fazit: Das mit dem Anlegen der Datenpunkte passiert nicht immer zuverlässig - eine Gesetzmässigkeit konnte ich noch nicht erkennen. Hatte ich aber vorher nicht.
Für die iobroker Out Nodes erzeugt die mqtt Schreibweise des topics nachvollziehbar, dass es dann in der Adapterinstanz angelegt wird, obwohl die Schreibweise bei der iobroker-IN Node supported wird. Dazu kann ich ein Issue aufmachen.
Erzeugt den Datenpunkt unter dem Adapter ein chaos.
Jetzt gerade wieder versucht
Datenpunkt wird einfach nicht angelegt.
Irgendwie ist mir diese Unzuverlässigkeit der Objektanlage früher nicht aufgefallen.
Ich kann wieder Issues aufmachen - aber es ist halt nicht immer so, dass die Datenpunkte nicht angelegt werden. Keine Ahnung warum es nicht immer klappt.
Soll ich 2 getrennte Issues aufmachen - oder wurde irgendwas im Hintergrund geändert, dass hier solche Unregelmäßigkeiten auftreten? - Das war die Ursprungsfrage. Wenn man den Datentyp angibt, scheint es jedoch zuverlässig zu funktionieren.
OK - ich denke ich habe ein paar Gesetzmäßigkeiten erkannt. Wenn das topic nicht in der iobroker-Out Node definiert wird, dann ist es zuverlässig.
Also wenn das topic variabel ist, dann funktioniert das Anlegen des Datenpunktes ohne Probleme.
OK. Ich mache gerade die Issues auf. Ich arbeite immer noch mit 4.0.0
-
@apollon77 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym sagte in Shellys ("Alt und Plus") über MQTT Adapter:
Normalerweise hat mir @apollon77 erklärt, dass der Datentyp durch die payload automatisch erstellt wird. Aber wie gestern scheint sich das Erstellen von Objekten sehr verschlechtert zu haben, als ob sich da im Hintergrund was ändert.
Was hat sich wo geändert?
https://github.com/ioBroker/ioBroker.node-red/issues/369
https://github.com/ioBroker/ioBroker.node-red/issues/370
Irgendwie hat das mit dem Erstellen der Folder Nodes zuverlässig geklappt - da ich den Adapter in der Version 4.0.0 nun schon über ein halbes Jahr benutze - läuft doch da was im Hintergrund (javascript controller??)