Shelly 2.5 -> Node-red -> Homee

Hallo, nachdem ich hier im Forum von Node-red und dem Modul gehört habe konnte ich nicht widerstehen und habe mich daran versucht. Als erstes eine Anwesenheitserkennung → funktioniert einwandfrei. Dann die Einbindung meiner Eufy (Da bin ich noch dabei. wird immer so laut beim testen der Alarme :grinning: ). Jetzt habe ich mir eine neuen Raspi 4 zugelegt und mit einem ioBroker Image versorgt (wobei ich echt noch keinen blassen Schimmer habe was hier anders ist als beim normalen Raspi. Aber ich lerne ja noch dazu) Bei der Bestellung habe ich mir auch zwei Shelly 2.5 mitbestellt. Bin ich irgendwie billig dran gekommen. Zumindest glaubt meine Frau das :wink:. Der Shelly als Schalter ins W-Lan, dann ein virtuelles Gerät über das Homee Modul angelegt und das Ding schaltet fröhlich vor sich hin. Allerdings möchte ich ja auch die Verbrauchswerte im Homee sehen. Dazu habe ich zwei Attribute im virtuellen Device angelegt. Kummulierter Verbrauch und Derzeitiger Energieverbrauch. Und jetzt kommt mein Problem wie bekomme ich die Werte aus dem Shelly in das virtuelle Gerät und wie schaffe ich es dass die Anzeige halbwegs aktuell bleibt. Sorry für den Roman aber ich bin relativ zufrieden mit mir da ich von sowas keine Ahnung habe und neu mit Node-red teste und mit Smart-Home.

Vielleicht hat ja jemand so etwas schon mal gemacht und kann mir einen Tipp geben. Danke schon mal im voraus.

Gruß

Ich habe deinen Thread mal in einen anderen Bereich verschoben, da es sich hier nicht um eine homee Support Thema handelt.

Wie schaltest du denn den Shelly aktuell?
Vhih => MQTT oder ein Shelly Adapter

Wo kommt der Wert für die Verbrauchsmessung her ?

Kannst auch gerne mal deinen Flow als Code hier einfügen. Dazu deinen Flow exportieren und hier </> Button drücken und einfügen.

HI, ein Shelly Adapter. Über MQTT habe ich schon gelesen, habe aber das große Gesamtbild irgendwie noch nicht in meinem Kopf. Welches Teil ist für was, wie verbinde ich alle Teile miteinander usw.

Derzeit nehme ich:
node-red-contrib-shelly
Version 1.12.0

Wenn man so viele unterschiedliche Komponenten verknüpft, sollte ich vorher verstehen ob das notwendig ist und was ich dafür benötige. Es bringt zwar sicher Flexibilität aber eben auch Komplexität und dadurch Fehlerquellen. Vor allem bin ich immer der Verfechter von keep it simple. Ich hätte auch wahrscheinlich mit node-red nicht begonnen wenn ich mit der Abwesenheitsmethode vom Homee zufrieden gewesen wäre. Jetzt hat es den Vorteil, dass ich Unterputz Schalter günstig bekommen und nicht immer Fibaro oder so kaufen muss.

Ich habe meine Shellys über den iobroker Adapter in Nodered. Von da dann per vhih in homee.
Läuft super :+1:t2:

Habe keine Shelly und daher kann ich auch nicht sagen was jetzt der Adapter hergibt.
Wenn der Adapter aber den Stromverbrauch und so liefert dann ist das alles sehr simpel auch in den vhih zu bekommen.

Ja das kann er. Im Iobroker den Shelly Adapter installieren, der liefert alles. Dann in NodeRed die Datenpunkte mit dem „Iobroker in“ Node abfragen und an den vhih schicken und Befehle vom Homee schicke ich an den Shelly NodeRed Node. Habe selber 10 Shellys so eingebunden.

2 „Gefällt mir“

Dann sei doch so freundlich und stelle dem Threadersteller mal ein Beispiel Flow und Code zur Verfügung.
VG

Ich bin dabei mich durch zu kämpfen. Ich habe mir das Video von Dir (nehm ich mal an da auch MIcha) in Youtube angeschaut. Das mit dem B-Control und gehe jetzt danach vor. Ich habe den Shelly auf dem ioBroker jetzt installiert anstatt das Modul in node-red und habe jetzt nur noch keine ioBroker Nodes in node-red. Da bin hänge ich zur Zeit, damit ich dann den Wert aus dem Shelly holen kann, umformen und dann den wieder an das virtuelle Gerät geben kann.

1 „Gefällt mir“

Ich habe Dir mal einen kurzen Flow von mir exportiert:

Den Inhalt der Datei einfach in NR importieren.

Die vorderen Nodes sind ioBroker-in ;-), die „verlinkst“ Du mit den Datenpunkten aus dem Shelly Objekten. Evtl. musst Du NR dazu einmal neu starten, damit die Datenpunkte auszahlbar sind.

Dann brauchst Du noch das homee node von @stfnhmplr, um die Daten dann per vhih in homee zu bekommen.

Shelly Flow.pdf (29,7 KB)

2 „Gefällt mir“

Die iobroker Nodes bekommst du nur wenn Node Red auch über Biobroker installiert wurde.
Hast du NR über die Konsole installiert dann kommst du an die nodes nicht ran.
VG

Ich stelle meinen Flow auch noch ein. Wird aber heute nichts mehr…schaue das ich es morgen hinbekomme.

Vielen Dank für die viele Hilfe. Ich merke, dass ich vieles falsch gemacht habe. Ich hatte zwar gestern noch die ioBroker nodes on NR hinbekommen, aber dann fehlten die Palette bis ich gefunden habe wo man die einschaltet … Naja man lernt nie aus. Jetzt setze ich das Ganze neu auf und nutze all die Erkenntnisse von gestern das richtig (zumindest nach meinem jetzigen Kenntnisstand) zu machen. Dann gehe ich daran die Flows zu bauen für Shelly und meine alten Flows mit der Fritz Anbindung zu transformieren.

Ein kleiner Tipp: benutze nicht die Palette, sondern installiere die nodes über die Adapter Einstellungen. Dann werden die Nodes auch mit gebackuped. Ansonsten musst du beim zurückspielen des Backup alle Nodes wieder manuell über die Palette installieren.

Ich habe in den Adapter nicht das gefunden was ich zu Fritz drin hatte. Wie bekomme ich dann raus was ich installieren soll?

Am Handy sieht das nicht chick aus aber auf Bearbeiten der Instanz gehen. Dort nicht den Haken für die Palette nutzen und dann den Namen des Nodes in das Feld NPM Modul installieren einfügen.

2 „Gefällt mir“

Ich würde mich jetzt verbeugen wenn du das sehen könntest :smiley:. Muchas gracias.

1 „Gefällt mir“

@memooo kannte ich so auch noch nicht. Danke!
Laufen die Updates der Nodes dann auch hierüber bzw. werden hier bei Verfügbarkeit angezeigt?

1 „Gefällt mir“

Ich meine die werden automatisch bei einem Neustart geupdated… Hab es in der Adapterbeschreibung und auf GitHub nicht auf Anhieb gefunden.

Hier mal mein Flow für einen Shelly PlugS


[{„id“:„b06432a.87c45d“,„type“:„ioBroker in“,„z“:„493f33e6.704414“,„name“:„PlugS“,„topic“:„shelly.0.SHPLG-S#DE143F#1.Relay0.Energy“,„payloadType“:„value“,„onlyack“:"",„func“:„all“,„gap“:"",„fireOnStart“:„true“,„x“:1130,„y“:600,„wires“:[[„6e64eba7.b64ed4“]]},{„id“:„6e64eba7.b64ed4“,„type“:„function“,„z“:„493f33e6.704414“,„name“:„Filter Energy“,„func“:"/var energy = (msg.payload/100000)\n\nnode.send({payload:{„attribute“:{„id“:704,„value“:parseFloat(energy)}}})\n/\n\nnode.send({payload:{„attribute“:{„id“:82,„value“:(Math.round(msg.payload))/1000}}})",„outputs“:1,„noerr“:0,„initialize“:"",„finalize“:"",„libs“:[],„x“:1330,„y“:600,„wires“:[[„d7b2c7e1.17d398“]]},{„id“:„d7b2c7e1.17d398“,„type“:„homeeDevice“,„z“:„493f33e6.704414“,„virtual-homee“:"",„name“:„PlugS“,„nodeId“:„80“,„showNodeId“:true,„profile“:„13“,„icon“:„default“,„attributes“:[{„type“:1,„state“:1,„instance“:0,„minimum“:0,„maximum“:1,„current_value“:0,„target_value“:0,„last_value“:0,„data“:"",„name“:"",„unit“:"",„step_value“:1,„editable“:1,„last_changed“:1633967954,„changed_by“:1,„changed_by_id“:0,„based_on“:1,„options“:[],„id“:„80“,„node_id“:„80“},{„type“:3,„state“:1,„instance“:0,„minimum“:0,„maximum“:5000,„current_value“:0,„target_value“:0,„last_value“:0,„data“:"",„name“:"",„unit“:„W“,„step_value“:1,„editable“:0,„last_changed“:1633968747,„changed_by“:1,„changed_by_id“:0,„based_on“:1,„options“:[],„id“:„81“,„node_id“:„80“},{„type“:4,„state“:1,„instance“:0,„minimum“:0,„maximum“:10000,„current_value“:0,„target_value“:0,„last_value“:0,„data“:"",„name“:"",„unit“:„kWh“,„step_value“:0.01,„editable“:0,„last_changed“:1633968754,„changed_by“:1,„changed_by_id“:0,„based_on“:1,„options“:[],„id“:„82“,„node_id“:„80“}],„statusTemplate“:"",„x“:1540,„y“:660,„wires“:[[„e4b22388.61fa2“]]},{„id“:„9e344037.57ad6“,„type“:„function“,„z“:„493f33e6.704414“,„name“:„Filter Energy“,„func“:"/var energy = (msg.payload/100000)\n\nnode.send({payload:{„attribute“:{„id“:704,„value“:parseFloat(energy)}}})\n/\n\nnode.send({payload:{„attribute“:{„id“:81,„value“:(Math.round(msg.payload))}}})",„outputs“:1,„noerr“:0,„initialize“:"",„finalize“:"",„libs“:[],„x“:1330,„y“:660,„wires“:[[„d7b2c7e1.17d398“]]},{„id“:„89cb596c.46e7e“,„type“:„change“,„z“:„493f33e6.704414“,„name“:"",„rules“:[{„t“:„change“,„p“:„payload“,„pt“:„msg“,„from“:„true“,„fromt“:„str“,„to“:"{„attribute“:{„id“:80,„value“:1}}",„tot“:„json“},{„t“:„change“,„p“:„payload“,„pt“:„msg“,„from“:„false“,„fromt“:„str“,„to“:"{„attribute“:{„id“:80,„value“:0}}",„tot“:„json“}],„action“:"",„property“:"",„from“:"",„to“:"",„reg“:false,„x“:1370,„y“:720,„wires“:[[„d7b2c7e1.17d398“]]},{„id“:„e4b22388.61fa2“,„type“:„function“,„z“:„493f33e6.704414“,„name“:"",„func“:„if (msg.payload.attributeId === 80 && msg.payload.targetValue === 1){node.send({payload:{\n relay : 0,\n on : true\n}})}\nif (msg.payload.attributeId === 80 && msg.payload.targetValue === 0){node.send({payload:{\n relay : 0,\n on : false\n}})}\n“,„outputs“:1,„noerr“:0,„initialize“:"",„finalize“:"",„libs“:[],„x“:1720,„y“:660,„wires“:[[„b9f4954c.a9a038“]]},{„id“:„2672c9df.e412f6“,„type“:„ioBroker in“,„z“:„493f33e6.704414“,„name“:„PlugS“,„topic“:„shelly.0.SHPLG-S#DE143F#1.Relay0.Power“,„payloadType“:„value“,„onlyack“:"",„func“:„all“,„gap“:"",„fireOnStart“:„true“,„x“:1130,„y“:660,„wires“:[[„9e344037.57ad6“]]},{„id“:„baf8b357.2b33f8“,„type“:„ioBroker in“,„z“:„493f33e6.704414“,„name“:„PlugS“,„topic“:„shelly.0.SHPLG-S#DE143F#1.Relay0.Switch“,„payloadType“:„value“,„onlyack“:"",„func“:„all“,„gap“:"",„fireOnStart“:„true“,„x“:1130,„y“:720,„wires“:[[„89cb596c.46e7e“]]},{„id“:„b9f4954c.a9a038“,„type“:„shelly-switch“,„z“:„493f33e6.704414“,„hostname“:„192.168.1.108“,„description“:„Büro Lampe“,„pollinginterval“:5000,„x“:1730,„y“:720,„wires“:[[]]}]

1 „Gefällt mir“

Bitte formatiere den Code richtig.
Dazu auf den </> Button drücken und dann den Code einfügen.
So ist das alles schwer zu kopieren und der Thread lässt sich schwer lesen.

VG

1 „Gefällt mir“