PV-Anlage - SMA Wechselrichter und Batterie an homee simulieren [hih]

@medicus07 für was sind denn die restlichen IDs im hEM?
720 = text
721 = text
722 = Netzbezug?? w
723 = Einspeisung w
724 = Verbrauch w
725 = Batterieladung w (Entladung)
726 = Batterieladung w (Ladung)
727 = % Ladezustand Batterie
728 = Produktion PV w
729 = kwh
730 = kwh
731 = kwh
732 = kwh
733 = kwh
734 = kwh

also die mit kWh? hast du die in Gebrauch? Im gerät in homee werden die auch nicht dargestellt.

Moin,
die anderen Werte des hEM habe ich schlicht weg nicht integriert… entsprechen einfach den summierten Verlaufsdaten in kWh… Könnte man aber auslesen.

so hab mich mal dran gesetzt und heute den hem weiter gemacht.
Allerdings eine Frage die kwh attribute (nutz du zwar nicht), aber sind ja trotzdem drin.

Wieso tauchen die im Gerät nicht auf oder wo werden die ersichtlich?

verhiss die Frage hab^^ habe 3 mal über die attribute gelesen und erst jetzt sind mir die states aufgefallen :man_shrugging:

1 „Gefällt mir“

Kleines Update:

Ich habe noch die Tageswerte in kWh als weitere Attribute aktiviert. Somit bekommt man noch die Tagesproduktion, Tageseinspeisung, Tagesverbrauch und den Tagesnetzbezug im Bereich der Messwerte sowie im hEM in den Verläufen angezeigt.

Habe meinen Flow etwas umgestrickt und speichere die Werte vor den Berechnungen global damit funktioniert das Ganze noch mal besser.
Über Modbus bekomme ich den Hausverbrauch nicht geliefert, diesen berechne ich aus den globalen Variablen

var Einspeisung = global.get("Einspeisung");
var Produktion = global.get("Produktion");
var Netzbezug = global.get("Netzbezug");
var Batteriebewegung = global.get("Batteriebewegung");
var Hausverbrauch;
var msgHausverbrauch;
Hausverbrauch = Produktion + Netzbezug + Batteriebewegung - Einspeisung;
msgHausverbrauch = { payload: Hausverbrauch };
return msgHausverbrauch;

Da auch der Tagesverbrauch nicht geliefert wird, habe ich mir eine Formel überlegt. Ich frage den Momentanwert des Verbrauchs alle 15 Sekunden ab und dividiere ihn durch 240 (15x240=3.600s=1h). Diesen Werte speichere ich und addiere auf diesen dann den nächsten Wert auf, usw. Nachts um 0 Uhr wird dann dieser Summenwert wieder genullt und das Ganze geht von Vorne los

var Momentanverbrauch = global.get("Momentanverbrauch");
var Summe = global.get("Summe");
var Tagesverbrauch;
var msgTagesverbrauch;
Tagesverbrauch = (Momentanverbrauch/240) + Summe;
msgTagesverbrauch = { payload: Tagesverbrauch };
return msgTagesverbrauch;

global.set("Summe",msg.payload);
return msg;

Tolle Sache! Bei Wunsch stelle ich gerne noch mal den kompletten Flow ein.

3 „Gefällt mir“

Moin Michael,

ich habe mir eine EET SolMate B (mit Batteriespeicher) gekauft und auch einen (echten) homee ENERGIEMANAGER im Einsatz, der bisher den über meine Hausleitung bezogenen Netzstrom über eine AOTEC Zange (nur eine Phase) misst (welche direkt am homee ENERGIEMANAGER angelernt ist).

Leider ist die EET SolMate B (noch) nicht in den homee ENERGIEMANAGER integriert, ich habe aber über Node-Red zugriff auf die Parameter Solarproduktion, Einspeisung und Batteriespeicher.

Leider ist es mir bisher nicht gelungen, diese Daten mit dem homee ENERGIEMANAGER zu verbinden, dieser erkennt meine in Node-Red gebauten Energiemess Steckdosen, EnergieMeter oder hEMs nicht oder diese zeigen keine Werte an. Einen weiteren (virtuellen) homee ENERGIEMANAGER kann ich im homee nicht anlegen („Es kann nur einen geben…“)

Wie hast Du das hinbekommen, das Deine Werte im E-Manager Widget angezeigt werden? Oder hast Du den „echten“ homee ENERGIEMANAGER gelöscht und verwendest nur den Virtuellen?

Danke für einen Tipp.

Mit besten Grüßen

Doc Leisure

Hi,

beim hEM und dem Widget gilt das Motto: Es kann nur einen geben… deshalb werden in deinem Widget höchstwahrscheinlich auch nur die Verbrauchswerte gemessen durch das Aeotec Zangenamperemeter angezeigt, oder? Alle anderen hEM sind dann nicht mehr relevant bzw. werden ignoriert.

Ich habe keine physischen hEM mehr.
Ich sammle alle Werte in NodeRed (Modbus auslesen, Berechnung) und gebe diese dann alles 15 Sekunden an den vhih Energiemanager weiter. Hier könnte man sehr einfach ja auch die Werte aus homee (Aeotec, Meßsteckdosen) über globale abgreifen und ebenso verwenden.

Eigentlich gut machbar… unterstütze gerne bei den nötigen Funktionen in NR.

Moin Michael,

OK, verstanden. Ich werde jetzt mal mein homee ENERGIEMANGER abbauen und die Aeotec Zange an den homee anlernen.

Einen (virtuellen) EnergieMeter für meine EET SolMate B ich habe mir schon gebaut, aber wie komme ich an die Werte der Z-Wave Aeotec Zange?

Gibt es da schon einen Flow?

Gruß

Doc Leisure

In NR über den homee api node… reicht wenn der einmal angelegt ist und dann arbeitet man einfach über Link nodes (so frage ich auch Stati von z.B. FT55 Tastern ab).

Hab mal schnell was gebastelt

[{"id":"29be2902.2878d6","type":"homeeApi","z":"fd6d95c1.d70ae8","homee":"8eed0d79.8e1f5","x":1840,"y":480,"wires":[["3ae89102.5a2a0e"]]},{"id":"939c6c61.0cf84","type":"link in","z":"fd6d95c1.d70ae8","name":"","links":["9218684e.c1e718","ea6b465b.828ca8","297ab627.f8580a","87f1b111.1fe758","f9071c32.c6ade","acee9415.91828"],"x":1715,"y":480,"wires":[["29be2902.2878d6"]]},{"id":"3ae89102.5a2a0e","type":"link out","z":"fd6d95c1.d70ae8","name":"","links":["7327739e.82f32c","c616bebe.ef78c","fdd71e7a.0f9b9","87608c08.2da4e","a8363c5d.3571d8","ff3a3854.290f5","933144d8.11f8c","6adf2d5d.9fd01c","23f8a9bc.8914c6","b2023bc3.38e4a"],"x":1975,"y":480,"wires":[]},{"id":"b2023bc3.38e4a","type":"link in","z":"fd6d95c1.d70ae8","name":"","links":["3ae89102.5a2a0e"],"x":1715,"y":580,"wires":[["76bca1f8.f73a28"]]},{"id":"76bca1f8.f73a28","type":"function","z":"fd6d95c1.d70ae8","name":"Aeotec Zange","func":"var AIDA = 1782; // AttributID Aeotec\nif (msg.payload.attribute && msg.payload.attribute.id === AIDA){\nreturn {payload: msg.payload.attribute.current_value}}\n","outputs":1,"noerr":0,"x":1860,"y":580,"wires":[["32b9bd08.de3cea"]]},{"id":"32b9bd08.de3cea","type":"debug","z":"fd6d95c1.d70ae8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":2040,"y":580,"wires":[]},{"id":"8eed0d79.8e1f5","type":"homee","z":"","name":"homee-master","host":"192.168.1.140"}]

Du musst nur deine homee Daten im api node ergänzen und brauchst die AttributeID der Aeotec Zange.

1 „Gefällt mir“

Hallo Michael,

sorry für noch ne blöde Frage. Ich weiß, dass die AttributID einmalig sein muss und bei hih Geräten vergebe ich diese selbst.
Woher bekomme ich die AttributID von physisch im homee vorhanden Geräten…? Seht die irgendwo im homee?

Danke!

Gruß

Doc Leisure

Ein Weg ist z.B. über einen Inject node den String GET:nodes an den api node zu senden und dann im debug node die ID auszulesen…

Siehe auch:

1 „Gefällt mir“

Hi,

wie hast du die Modbus Schnittstelle Hard- als auch Softwareseitig gelöst? Via USB Dongle an den Pi? Welche Nodes verwendest du im NR?

Ich suche noch eine Möglichkeit unsere Nilan Anlage ins homee zu bringen. Für die PV Anlage habe ich eine JSON Schnittstelle per Wlan, das war noch einfach aber dieses Modbus :exploding_head:

Hi,

ich verwende den node-red-contrib-modbustcp… am Pi brauchst du nichts.
Man benötigt aus der Doku des Geräts die entsprechenden Registereinträge. Diese übergebe ich per inject node…

[{"id":"cbec805e.bf178","type":"inject","z":"fd6d95c1.d70ae8","name":"Abfrage SI","topic":"","payload":"[{\"name\":\"Batterieladung\",\"topic\":\"Batterieladung\",\"dataType\":\"FC3\",\"address\":30845,\"quantity\":2,\"interval\":15000,\"ieeeType\":\"off\",\"ieeeBE\":true},{\"name\":\"Batteriebewegung\",\"topic\":\"Batteriebewegung\",\"dataType\":\"FC3\",\"address\":30775,\"quantity\":2,\"interval\":15000,\"ieeeType\":\"off\",\"ieeeBE\":true},{\"name\":\"Netzbezug\",\"topic\":\"Netzbezug\",\"dataType\":\"FC3\",\"address\":30865,\"quantity\":2,\"interval\":15000,\"ieeeType\":\"off\",\"ieeeBE\":true},{\"name\":\"Einspeisung\",\"topic\":\"Einspeisung\",\"dataType\":\"FC3\",\"address\":30867,\"quantity\":2,\"interval\":15000,\"ieeeType\":\"off\",\"ieeeBE\":true},{\"name\":\"Tagesbezug\",\"topic\":\"Tagesbezug\",\"dataType\":\"FC3\",\"address\":30577,\"quantity\":2,\"interval\":15000,\"ieeeType\":\"off\",\"ieeeBE\":true}]","payloadType":"json","repeat":"1800","crontab":"","once":true,"onceDelay":0.1,"x":130,"y":4480,"wires":[["94c29a05.895178"]]},{"id":"94c29a05.895178","type":"modbustcp-read","z":"fd6d95c1.d70ae8","name":"SI","topic":"","dataType":"HoldingRegister","adr":"30845","quantity":"2","rate":"0","rateUnit":"s","server":"8eb3ef23.af869","ieeeType":"off","ieeeBE":"true","x":290,"y":4480,"wires":[["b1c3d4e9.a54768"]]},{"id":"b1c3d4e9.a54768","type":"switch","z":"fd6d95c1.d70ae8","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"Tagesbezug","vt":"str"},{"t":"eq","v":"Batterieladung","vt":"str"},{"t":"eq","v":"Batteriebewegung","vt":"str"},{"t":"eq","v":"Netzbezug","vt":"str"},{"t":"eq","v":"Einspeisung","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":430,"y":4500,"wires":[["dc18770a.2e4b5"],["74129c2c.a3f334"],["95a33646.6f5588"],["84ece0d0.ea8e8"],["bb218aeb.7204f8"]]},{"id":"8eb3ef23.af869","type":"modbustcp-server","z":"","name":"Batterie Ladung","host":"192.168.1.186","port":"502","unit_id":"3","reconnecttimeout":"1"}]
2 „Gefällt mir“

Danke dir. Ich muss über eine RS485 Schnittstelle rein, so ein Mist.

Modbus und Modbus-IP haben fahren zwar dasselbe serielle Protokoll, aber der Transportweg ist eben ein anderer. Du könntest noch versuchen einen RS485-IP-Umsetzer zu verwenden. Der wird vom PI bzw. vom PC via virtuellem COM-Port angesprochen und baut intern die Verbindung über Netzwerk auf:

https://www.advantech.com/products/gf-5tqv/adam-4571/mod_8f976edc-f103-4ff9-9cc6-a4b3e5c0f2c9

Das gleiche gibt es auch mit RS485 nach USB:

https://www.advantech.com/products/gf-5u7m/adam-4561/mod_92dc04b1-c0fe-4f2b-baf6-5c27e79900c6

Die Dinger sind allerdings nicht ganz preiswert, aber wir setzen sie im professionellen Umfeld für die Anbindung von RS485-Anlagen an Gefahrenmanagementsysteme ein. Da geht es mehr um die Langlebigkeit und Zuverlässigkeit.

1 „Gefällt mir“

Ich habe für rs485 dieses Ding am Pi laufen.

Ich binde damit meine Kaco Wechselrichter (über openHAB) ein.

2 „Gefällt mir“

Danke dir, tatsächlich ist die Idee gut über einen RS485 auf LAN zu gehen, weil ich direkt daneben den Netzwerkswitch habe. So könnte ich direkt rein.

Sind die billigen Teile auch ok?

Vor dem Kauf solltest Du auf der Herstellerseite mal schauen, ob Du für das Linux auf dem Pi einen Treiber findest. Sonst kannst Du den virtuellen COM-Port dort nicht ansprechen. Die Übersetzung auf der Amazonseite war eher verwirrend als erhellend.

Danke für den Hinweis, werde dann doch den USB weg gehen, wie von @danil vorgeschlagen.

Eine Frage noch dazu @danil , dein USB hat 2 Eingänge A und B. Braucht man den 3. Anschluss (hier Shield habe auch als Ground gesehen :exploding_head:) gar nicht?

A und B sind beim RS 485 die Sende- und die Empfangsleitung des seriellen Busses. Shield ist Schirmung und sollte aufgelegt werden, damit die A und B Leitungen ein einheitliches Potential zwischen Sender und Empfänger haben. Außerdem werden Störeinstrahlungen abgeleitet.