Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Moderator: Co-Administratoren
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo mschneider
Vielen Dank für die Arbeit. Habe das veränderte Script gleich getestet und es funktioniert.
Gruss Olaf
Vielen Dank für die Arbeit. Habe das veränderte Script gleich getestet und es funktioniert.
Gruss Olaf
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo,
Deine Lösung ist wirklich super und ich würde diese auch gern in die Tat umsetzen,
Ich habe eine PV Anlage und ein Energie Meter
Im Netzwerk kann ich das Meter mit der zugehörigen App ( Handy ) auch auslesen.
Meine Haus läuft mit Homematic und wird mit einer CCU 2 betrieben.
Ich habe alles wie du es beschrieben hast versucht jedoch ohne Erfolg.
Der Script Test zeigt mir nur drei mal 0 an.
Somit gehe ich davon aus das die CCU2 die Daten vom Energie Meter nicht empfangen kann.
Auch habe ich mit dem Wireshark Programm versucht den Multicast auszulesen, jedoch wird dort auch nichts vom Energie Meter angezeigt.
In der CCu2 habe ich in der Firewall auch die IP vom Energie Meter eingetragen das diese die Daten weiter leiten kann.
Evtl. kannst du mir ja helfen. Es wäre wirklich super.
Ich möchte gern eine Homematic Steckdose schalten wenn genügend PV zur Verfügung steht
Mit freundlichen Grüßen
Andre
Deine Lösung ist wirklich super und ich würde diese auch gern in die Tat umsetzen,
Ich habe eine PV Anlage und ein Energie Meter
Im Netzwerk kann ich das Meter mit der zugehörigen App ( Handy ) auch auslesen.
Meine Haus läuft mit Homematic und wird mit einer CCU 2 betrieben.
Ich habe alles wie du es beschrieben hast versucht jedoch ohne Erfolg.
Der Script Test zeigt mir nur drei mal 0 an.
Somit gehe ich davon aus das die CCU2 die Daten vom Energie Meter nicht empfangen kann.
Auch habe ich mit dem Wireshark Programm versucht den Multicast auszulesen, jedoch wird dort auch nichts vom Energie Meter angezeigt.
In der CCu2 habe ich in der Firewall auch die IP vom Energie Meter eingetragen das diese die Daten weiter leiten kann.
Evtl. kannst du mir ja helfen. Es wäre wirklich super.
Ich möchte gern eine Homematic Steckdose schalten wenn genügend PV zur Verfügung steht
Mit freundlichen Grüßen
Andre
-
- Beiträge: 21
- Registriert: 07.01.2017, 18:57
- Danksagung erhalten: 13 Mal
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo Lori,
Ich vermute das bei dir die multicast messages vom EM im Router weggefiltert werden. Der EM sollte mit der CCU über einen switch verbunden sein. Der switch kann dann mit einem Router an das Internet angeschlossen werden. ALSO: EM an den switch anschliessen. CCU auch an den switch anschliessen. Den Switch auch an den Router anschliessen.
Was nicht funktioniert: CCU an Fritzbox. EM auch an Fritzbox.
Gruss, Martin
Ich vermute das bei dir die multicast messages vom EM im Router weggefiltert werden. Der EM sollte mit der CCU über einen switch verbunden sein. Der switch kann dann mit einem Router an das Internet angeschlossen werden. ALSO: EM an den switch anschliessen. CCU auch an den switch anschliessen. Den Switch auch an den Router anschliessen.
Was nicht funktioniert: CCU an Fritzbox. EM auch an Fritzbox.
Gruss, Martin
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo, das Script zum Auslesen des Sunny Home Managers funktioniert prima. Vielen Dank dafür!
Kennen Sie auch die Möglichkeit den aktuellen Verbrauch (Watt) in eine Variable zu schreiben?
Gruß
Rainer
Kennen Sie auch die Möglichkeit den aktuellen Verbrauch (Watt) in eine Variable zu schreiben?
Gruß
Rainer
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo, super das ich diesen Betrag gefunden habe. Hat jemand jetz eine zuverlässige Lösung gefunden und kann diese bitte hier beschreiben?
Danke und Grüße
Ringo
Danke und Grüße
Ringo
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Harpau hat geschrieben: ↑16.01.2019, 00:25Hallo Martin,
vielen Dank für die super Arbeit!
Zwei Anmerkungen aus meinen Experimenten:
Auch Powerline-Adapter filtern leider Multicasts aus (siehe auch die Beschreibung zu der App "EMView" im Apple App Store. Diese verwendet das selbe Prinzip).
Manchmal kommen vom SHM2 keine Werte zurück. Ich habe deshalb nach dem Befehl zum Auslesen eine Abfrage (if (lGetErr <> "")) eingefügt, damit die "alten" Werte (inkl. Zeitstempel) erhalten bleiben.
Viele Grüße
Harald
Hallo Harald, wo genau muss ich (if (lGetErr <> "")) einfügen?
Grüße
Ringo
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo, kann ich auch EM und HM2 gleichseitig abrufen oder geht nur das eine oder andere wegen dem Ziel Port? Ich habe nähmlich einen EM und einen HM2 in Einsatz, der HM2 misst den Netzbezug und die Einspeisung und der EM die Erzeugung.mschneider hat geschrieben: ↑03.02.2019, 19:43Hallo hobby_966
Für EM1 Daten diese Zeile im Skript:austauschen mit dieser hier:Code: Alles auswählen
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
Für EM2 Daten diese Zeile im Skript:Code: Alles auswählen
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,range=192.168.178.33/32,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
austauschen mit dieser hier:Code: Alles auswählen
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
Gruss, MartinCode: Alles auswählen
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,range=192.168.178.35/32,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
Grüße
cerberus
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo,
hier waren jetzt von Harald (Harpau) Vorschläge für das Auslesen mit CuxD und dem Befehl für das "Stehenlassen" bei Werten von "0".
Könnte ich das Script bekommen?
Welche Werte können noch ausgelesen werden. Leider komme ich da mit Wireshark nicht weiter. Das Programm findet keine Multi-/Broadcast vom SHM.
Ansonsten funktioniert das Script. Abgesehen von dem FritzBox-Filter, da muss ich mir noch eine Verkabelung einfallen lassen.
Danke im Voraus,
Christof
hier waren jetzt von Harald (Harpau) Vorschläge für das Auslesen mit CuxD und dem Befehl für das "Stehenlassen" bei Werten von "0".
Könnte ich das Script bekommen?
Welche Werte können noch ausgelesen werden. Leider komme ich da mit Wireshark nicht weiter. Das Programm findet keine Multi-/Broadcast vom SHM.
Ansonsten funktioniert das Script. Abgesehen von dem FritzBox-Filter, da muss ich mir noch eine Verkabelung einfallen lassen.
Danke im Voraus,
Christof
Raspberrymatic auf Raspberry 3B+ mit externer Antenne, über 100 Geräte HM und HM IP, Homematic-Geräte Internet nur über Whitelist, kein Zugriff von Außen.
-
- Beiträge: 21
- Registriert: 07.01.2017, 18:57
- Danksagung erhalten: 13 Mal
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo cerberus,cerberus hat geschrieben: ↑18.10.2019, 19:34Hallo, kann ich auch EM und HM2 gleichseitig abrufen oder geht nur das eine oder andere wegen dem Ziel Port? Ich habe nähmlich einen EM und einen HM2 in Einsatz, der HM2 misst den Netzbezug und die Einspeisung und der EM die Erzeugung.mschneider hat geschrieben: ↑03.02.2019, 19:43Hallo hobby_966
Für EM1 Daten diese Zeile im Skript:austauschen mit dieser hier:Code: Alles auswählen
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
Für EM2 Daten diese Zeile im Skript:Code: Alles auswählen
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,range=192.168.178.33/32,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
austauschen mit dieser hier:Code: Alles auswählen
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
Gruss, MartinCode: Alles auswählen
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,range=192.168.178.35/32,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
Grüße
cerberus
Du kannst auch beide Geräte auslesen. Dafür entweder 2 getrennte Scripte schreiben oder ein längeres script welches aus 2 aneinandergehängten Scripten besteht. Genau Gleichzeitig geht nicht, erst win gerät lesen, dann das andere. Da ist dann ggf. eine zeitliche Differenz von 0..2 Sekunden drin.
-
- Beiträge: 21
- Registriert: 07.01.2017, 18:57
- Danksagung erhalten: 13 Mal
Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen
Hallo Christofchrihoffi hat geschrieben: ↑06.12.2019, 19:36Hallo,
hier waren jetzt von Harald (Harpau) Vorschläge für das Auslesen mit CuxD und dem Befehl für das "Stehenlassen" bei Werten von "0".
Könnte ich das Script bekommen?
Welche Werte können noch ausgelesen werden. Leider komme ich da mit Wireshark nicht weiter. Das Programm findet keine Multi-/Broadcast vom SHM.
Ansonsten funktioniert das Script. Abgesehen von dem FritzBox-Filter, da muss ich mir noch eine Verkabelung einfallen lassen.
Danke im Voraus,
Christof
Ich verwende das Script schon seit c.a. 1 Jahr auf einer CCU3. Falls es probleme geben sollte mit 0 Werten (z.b. auf einer CCU2) mal die 1 beim sleep Befehl gegen eine 2 austauschen.
Falls das immer noch ab und zu 0 Werte zurückgibt, dann könntest du dieses Skript mal als Ansatz für dein Projekt nehmen:
Code: Alles auswählen
string lGetOut = "";
string lGetErr = "";
system.Exec("socat -x -u -T 2 -t 2 UDP4-RECV:9522,ip-add-membership=239.12.255.254:0.0.0.0 STDOUT & pid=$! ; sleep 1 && kill $pid",&lGetOut,&lGetErr);
string serial = lGetErr.StrValueByIndex(" ", 7+20) # lGetErr.StrValueByIndex(" ", 7+21) # lGetErr.StrValueByIndex(" ", 7+22) # lGetErr.StrValueByIndex(" ", 7+23);
system.Exec("printf '%d' 0x" # serial, &serial, &lGetErr);
string netzbezug = lGetErr.StrValueByIndex(" ", 39) # lGetErr.StrValueByIndex(" ", 40) # lGetErr.StrValueByIndex(" ", 41) # lGetErr.StrValueByIndex(" ", 42);
system.Exec("printf '%d' 0x" # netzbezug, &netzbezug, &lGetErr);
netzbezug = netzbezug.ToInteger() / 10;
string netzeinspeisung = lGetErr.StrValueByIndex(" ", 59) # lGetErr.StrValueByIndex(" ", 60) # lGetErr.StrValueByIndex(" ", 61) # lGetErr.StrValueByIndex(" ", 62);
system.Exec("printf '%d' 0x" # netzeinspeisung, &netzeinspeisung, &lGetErr);
netzeinspeisung = netzeinspeisung.ToInteger() / 10;
WriteLine(serial);
WriteLine(netzbezug);
WriteLine(netzeinspeisung);
if ( ( netzbezug + netzeinspeisung ) > 0 ) {
dom.GetObject("EM Netzbezug").State(netzbezug);
dom.GetObject("EM Netzeinspeisung").State(netzeinspeisung);
dom.GetObject("EM Zeitstempel").State(system.Date("%H:%M:%S"));
}
WriteLine("Hello world!");