Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

hobby_966
Beiträge: 3
Registriert: 16.06.2018, 09:11

Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen

Beitrag von hobby_966 » 05.02.2019, 09:45

Hallo mschneider
Vielen Dank für die Arbeit. Habe das veränderte Script gleich getestet und es funktioniert.
Gruss Olaf

Lori
Beiträge: 1
Registriert: 12.06.2019, 14:31

Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen

Beitrag von Lori » 20.06.2019, 10:50

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

mschneider
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

Beitrag von mschneider » 10.07.2019, 00:13

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

raincat
Beiträge: 2
Registriert: 12.09.2014, 08:54

Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen

Beitrag von raincat » 06.10.2019, 14:32

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

cerberus
Beiträge: 42
Registriert: 09.11.2009, 17:02
Hat sich bedankt: 1 Mal

Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen

Beitrag von cerberus » 13.10.2019, 20:29

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

cerberus
Beiträge: 42
Registriert: 09.11.2009, 17:02
Hat sich bedankt: 1 Mal

Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen

Beitrag von cerberus » 13.10.2019, 22:07

Harpau hat geschrieben:
16.01.2019, 00:25
Hallo 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

cerberus
Beiträge: 42
Registriert: 09.11.2009, 17:02
Hat sich bedankt: 1 Mal

Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen

Beitrag von cerberus » 18.10.2019, 19:34

mschneider hat geschrieben:
03.02.2019, 19:43
Hallo hobby_966

Für EM1 Daten diese Zeile im Skript:

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);
austauschen mit dieser hier:

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);
Für EM2 Daten diese Zeile im Skript:

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);
austauschen mit dieser hier:

Code: 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);
Gruss, Martin
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.

Grüße
cerberus

chrihoffi
Beiträge: 12
Registriert: 27.05.2018, 18:09

Re: Mit CCU3 Homematic Skript SMA Energy Meter oder Sunny Home Manager 2 auslesen

Beitrag von chrihoffi » 06.12.2019, 19:36

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
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.

mschneider
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

Beitrag von mschneider » 26.12.2019, 22:18

cerberus hat geschrieben:
18.10.2019, 19:34
mschneider hat geschrieben:
03.02.2019, 19:43
Hallo hobby_966

Für EM1 Daten diese Zeile im Skript:

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);
austauschen mit dieser hier:

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);
Für EM2 Daten diese Zeile im Skript:

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);
austauschen mit dieser hier:

Code: 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);
Gruss, Martin
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.

Grüße
cerberus
Hallo 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.

mschneider
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

Beitrag von mschneider » 26.12.2019, 22:26

chrihoffi hat geschrieben:
06.12.2019, 19:36
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
Hallo 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!");
vG, Martin

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“