NEWS
Shelly in MQTT Adapter
-
Hallo Leute,
ich brauch mal wieder eure Hilfe.
Ich hab ein neues Shelly Uni Plus und erst bei der Integration in ioBroker festgestellt, dass das mit dem Shelly Adapter nicht so einfach ist. Geht zwar, aber ich frage mich, ob es nicht besser ist, den MQTT Adapter zu verwenden.
Den hab ich installiert und eingerichtet. Da der Uni Plus mit seinen Temperaturen nur bei Änderung meldet, teste ich es erstmal mit dem Shelly 3 EM Pro, da der ständig neue Daten liefert und ich die Auswirkungen gleich sehe…. Er verbindet sich mit dem MQTT Broker, jedoch sind die Daten in einem String, der so aussieht:
{"id":0,"a_current":0.419,"a_voltage":226.0,"a_act_power":18.7,"a_aprt_power":94.8,"a_pf":0.20,"a_freq":50.0,"b_current":0.332,"b_voltage":227.3,"b_act_power":-1.1,"b_aprt_power":75.6,"b_pf":0.02,"b_freq":50.0,"c_current":0.335,"c_voltage":227.0,"c_act_power":4.3,"c_aprt_power":76.2,"c_pf":0.06,"c_freq":50.0,"n_current":null,"total_current":1.086,"total_act_power":21.903,"total_aprt_power":246.602, "user_calibrated_phase":[]}
Mit dem kann ich erstmal nicht weiter arbeiten. Die Frage ist, wie krieg ich den Broker dazu, jeden Wert einzeln als verwendbare Zahl in die Liste aufzunehmen. Ziel ist es die Werte in die history zu bringen (konkret den Wert für total_act_power).
Weiß jemand wie das geht?Danke
-
@fenderbender sagte in Shelly in MQTT Adapter:
Ich hab ein neues Shelly Uni Plus und erst bei der Integration in ioBroker festgestellt, dass das mit dem Shelly Adapter nicht so einfach ist. Geht zwar, aber ich frage mich, ob es nicht besser ist, den MQTT Adapter zu verwenden.
weil ??? also das ist nicht einfach
aber den MQTT adapter zu verwenden den JSON auseinander zu fummeln (wie das geht weisst du auch nicht) ist aber einfacher...
komm ich bitte dich..
-
@fenderbender Die Frage ist, ob Du es brauchst. In der Regel kannst Du Dir zu jedem Wert entweder einen Alias erstellen und so aus dem Objekt einzelne Werte machen, oder Du machst es über Deine Logikmaschine.
Wenn du meinen NodeRed Flow nutzen willst zerlegt der Dir alles unter einem Objekt unter 0_userdata.0.ABER es ist oft von Vorteil Objekte zu haben und nur Werte, die man weiterverarbeiten will aus dem Objekt herauszulösen. Deswegen bin ich kein Freund davon, alles in getrennte Datenpunkte zu schreiben.
Wenn Du nur einzelne Werte brauchst, wie total_act_power, dann erstelle Dir einen Datenpunkt unter alias.0 und extrahiere Dir diesen Wert.
Im Einzelnen habe ich das hier beschrieben: https://forum.iobroker.net/post/980575Bei Dir würde die Konvertierungsfunktion
halt dann heißen:
JSON.parse(val).total_act_power
-
@arteck
Komm ich bitte dich. Eine Frage im Einsteigerforum kann ein renommierter Topexperte doch auch anders beantworten oder?
Hätte dich eine Antwort wie "man muss den String per Skript auseinander pflücken" nicht auch genauso glücklich gemacht wie diese schöne überhebliche Antwort um den Noob zu zeigen, wie dämlich er ist?MQTT Adapter statt Shellyadapter wird im www erwähnt, weil der Shellyadapter den Shelly Uni Plus nicht einfach so mal unterstützt. Man muss den Uni zu einen PM1 umdeklarieren, aber der Impulseingang wird auch dann nicht angezeigt.
@mickym Verwechselst du mich da nicht? Blockly puzzeln hab ich nicht erwähnt und Temperaturoffset? kann ich mich auch nicht erinnern. Aber danke für den Hinweis, wie es gehen könnte.
-
@fenderbender oh ja, ich habe dich wirklich verwechselt. Sorry dafür, aber meine Erklärungen oder ggf. mit Flow kann Dir trotzdem helfen.
Zum Erstellen eines Datenpunktes unter alias.0 ggf. in den Expertenmodus wechseln.
-
@fenderbender said in Shelly in MQTT Adapter:
@arteck
Komm ich bitte dich. Eine Frage im Einsteigerforum kann ein renommierter Topexperte doch auch anders beantworten oder?
Hätte dich eine Antwort wie "man muss den String per Skript auseinander pflücken" nicht auch genauso glücklich gemacht wie diese schöne überhebliche Antwort um den Noob zu zeigen, wie dämlich er ist?MQTT Adapter statt Shellyadapter wird im www erwähnt, weil der Shellyadapter den Shelly Uni Plus nicht einfach so mal unterstützt. Man muss den Uni zu einen PM1 umdeklarieren, aber der Impulseingang wird auch dann nicht angezeigt.
@mickym Verwechselst du mich da nicht? Blockly puzzeln hab ich nicht erwähnt und Temperaturoffset? kann ich mich auch nicht erinnern. Aber danke für den Hinweis, wie es gehen könnte.
Im Kern geb ich dir recht - Arteck ist da wohl was in die falsche Kehle geraten. Ist nicht deine Schuld. Die Hilfeanforderung ist durchaus berechtigt, da der Uni Plus derzeit noch nicht unterstützt wird.
Da aber auch hier im Forum einige immer wieder ätzen und meinen den Shelly Adapter braucht man doch nicht, dass geht alles ganz einfach mit dem mqtt Adapter bin auch ich mal gespannt wie viele Erklärungen und Hilfen es dazu nun gibt. Offenbar ist es zumindest für einen weniger erfahrenen User nicht trivial einfach den mqtt Adapetr zu verwenden und sie benötigten daten selbst zu zerlegen.