Neu: 77_SMAEM - Modul für SMA Energie Meter. Alternative zum Sunny Home Manager.

Begonnen von Volker Kettenbach, 30 März 2016, 12:42:05

Vorheriges Thema - Nächstes Thema

Waldmensch

Der WR hängt zusammen mit dem Homemanager und einem Freifunk Router an einem TP-Link TL-SF1005D ( http://www.tp-link.de/products/details/TL-SF1005D.html ) dieser hängt per 30m Kabel an einer Fritzbox, auf die ich per WLAN zugreife.

Wenn der TL-SF1005D kein Multicast könnte, würde der Homemanager ja auch keine Daten haben, oder? Bliebe die Fritzbox, really?  :o

maximat0

Hallo Waldmensch,ich benutze eine Fritzbox 7360. Nach Schwierigkeiten mit dem EM habe ich das EM und den WR jeweils mit einem eigenen Kabel an die Fritzbox angschlossen. Der Raspi mit tcpdump verbindet sich mit der Fritz per Wlan. So läuft es super.
Volker: Vielen Dank für deine Arbeit und die Hinweise. Hast du ne Idee, wie ich die Multicastadresse der WR herausfinden kann?
Gruß Klaus

Waldmensch

Ich habe ne 6360 und der WR hängt über den Switch per Kabel dran. Da aber der Homemanager Daten vom WR über diesen Switch erhält, würde ich den mal ausschließen. Mein Laptop auf dem Wireshark läuft, hängt über WLAN an der Fritz, wie Dein Raspi.

Andere Broadcasts sehe ich ja

Volker Kettenbach

Zitat von: maximat0 am 28 April 2016, 16:40:53
Volker: Vielen Dank für deine Arbeit und die Hinweise. Hast du ne Idee, wie ich die Multicastadresse der WR herausfinden kann?

Einfach mal ein "tcpdump multicast" machen. Bei mehreren Interfaces im Host noch das korrekte if angeben, z.B.: "tcpdump -i eth0 multicast".
Das gibt Dir allen multicast traffic aus. Also auch alles von irgendwelchen Speedwire Geräten. Zudem auch Bonjour, Arp usw.


Volker Kettenbach

Zitat von: Waldmensch am 29 April 2016, 08:06:05
Ich habe ne 6360 und der WR hängt über den Switch per Kabel dran. Da aber der Homemanager Daten vom WR über diesen Switch erhält, würde ich den mal ausschließen. Mein Laptop auf dem Wireshark läuft, hängt über WLAN an der Fritz, wie Dein Raspi.

Andere Broadcasts sehe ich ja

Der Laptop empfängt auf 239.255.255.250 Upnp (https://de.wikipedia.org/wiki/Simple_Service_Discovery_Protocol) von 178.2. Schätze mal von der FB.
Also geht Multicast prinzipiell auf dem WLAN-Teil des LANs.
Gut möglich, dass die FB kein Multicast zwischen LAN und WLAN weiterleitet, weil Multicast im WLAN nicht ganz unkritisch ist (http://www.heise.de/ct/ausgabe/2014-14-Probleme-bei-Multicast-im-W-LAN-finden-und-beheben-2234411.html).
Auf jeden Fall wird irgendwas zwischen WR und Laptop dafür sorgen, dass Multicast geblockt wird.

Mit Broadcast hat das ganze nix zu tun: arp wird z.B. auf jeden Fall weiter geleitet, sonst würde das ja ganze Netz nicht mehr funktionieren.


Waldmensch

Es scheint in der Tat am WLAN zu liegen. Der FHEM Raspi hängt per Kabel und einen weiteren Switch an der Fritte.

root@lemaker ~ > tcpdump -i eth0 -s0 -vv host 239.12.255.254
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
08:45:18.153956 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
08:45:27.822350 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
08:45:37.237733 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
08:45:44.788083 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 32, options (RA))
    SMA0157016112.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
08:45:45.570076 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
08:45:55.678494 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
08:46:04.403849 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
08:46:13.657232 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254


Allerdings ist der Inhalt der Pakete immer gleich
08:51:08.537292 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
        0x0000:  4600 0020 0000 0000 0102 c2cd c0a8 b256
        0x0010:  ef0c fffe 9404 0000 1600 faf3 ef0c fffe
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:51:17.119646 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
        0x0000:  4600 0020 0000 0000 0102 c2cd c0a8 b256
        0x0010:  ef0c fffe 9404 0000 1600 faf3 ef0c fffe
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:51:30.066204 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
        0x0000:  4600 0020 0000 0000 0102 c2cd c0a8 b256
        0x0010:  ef0c fffe 9404 0000 1600 faf3 ef0c fffe
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:51:39.317547 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
        0x0000:  4600 0020 0000 0000 0102 c2cd c0a8 b256
        0x0010:  ef0c fffe 9404 0000 1600 faf3 ef0c fffe
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:52:01.687493 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
        0x0000:  4600 0020 0000 0000 0102 c2cd c0a8 b256
        0x0010:  ef0c fffe 9404 0000 1600 faf3 ef0c fffe
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:52:27.375513 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.254: igmp v2 report 239.12.255.254
        0x0000:  4600 0020 0000 0000 0102 c2cd c0a8 b256
        0x0010:  ef0c fffe 9404 0000 1600 faf3 ef0c fffe
        0x0020:  0000 0000 0000 0000 0000 0000 0000


hier mal untereinander
4600 0020 0000 0000 0102 c2cd c0a8 b256 ef0c fffe 9404 0000 1600 faf3 ef0c fffe 0000 0000 0000 0000 0000 0000 0000
4600 0020 0000 0000 0102 c2cd c0a8 b256 ef0c fffe 9404 0000 1600 faf3 ef0c fffe 0000 0000 0000 0000 0000 0000 0000
4600 0020 0000 0000 0102 c2cd c0a8 b256 ef0c fffe 9404 0000 1600 faf3 ef0c fffe 0000 0000 0000 0000 0000 0000 0000
4600 0020 0000 0000 0102 c2cd c0a8 b256 ef0c fffe 9404 0000 1600 faf3 ef0c fffe 0000 0000 0000 0000 0000 0000 0000
4600 0020 0000 0000 0102 c2cd c0a8 b256 ef0c fffe 9404 0000 1600 faf3 ef0c fffe 0000 0000 0000 0000 0000 0000 0000
4600 0020 0000 0000 0102 c2cd c0a8 b256 ef0c fffe 9404 0000 1600 faf3 ef0c fffe 0000 0000 0000 0000 0000 0000 0000


Auf der 255 spielt noch ein anderes Gerät mit. Das kann eigentlich nur der Homemanager sein, was anderes von SMA hängt nicht im Netz
root@lemaker ~ > tcpdump -i eth0 -x -vv host 239.12.255.255
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
08:58:27.126247 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.255: igmp v2 report 239.12.255.255
        0x0000:  4600 0020 0000 0000 0102 c2cc c0a8 b256
        0x0010:  ef0c ffff 9404 0000 1600 faf2 ef0c ffff
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:58:30.104956 IP (tos 0x0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 86)
    SMA0157016112.fritz.box.9522 > 239.12.255.255.9522: [udp sum ok] UDP, length 58
        0x0000:  4500 0056 0000 4000 0111 17bf c0a8 b223
        0x0010:  ef0c ffff 2532 2532 0042 da89 534d 4100
        0x0020:  0004 02a0 0000 0001 0026 0010 6065 09a0
        0x0030:  ffff ffff ffff 0000 aa00 30e0 5b09 0000
        0x0040:  0000 0000 5f94 0002 8061 0048 2100 ff4a
        0x0050:  4100 0000 0000
08:58:35.916607 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.255: igmp v2 report 239.12.255.255
        0x0000:  4600 0020 0000 0000 0102 c2cc c0a8 b256
        0x0010:  ef0c ffff 9404 0000 1600 faf2 ef0c ffff
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:58:45.517003 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.255: igmp v2 report 239.12.255.255
        0x0000:  4600 0020 0000 0000 0102 c2cc c0a8 b256
        0x0010:  ef0c ffff 9404 0000 1600 faf2 ef0c ffff
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:58:55.104742 IP (tos 0x0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 86)
    SMA0157016112.fritz.box.9522 > 239.12.255.255.9522: [udp sum ok] UDP, length 58
        0x0000:  4500 0056 0000 4000 0111 17bf c0a8 b223
        0x0010:  ef0c ffff 2532 2532 0042 6e17 534d 4100
        0x0020:  0004 02a0 0000 0001 0026 0010 6065 09a0
        0x0030:  ffff ffff ffff 0000 aa00 30e0 5b09 0000
        0x0040:  0000 0000 6294 0002 0064 0001 2600 ff01
        0x0050:  2600 0000 0000
08:59:00.105757 IP (tos 0x0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 86)
    SMA0157016112.fritz.box.9522 > 239.12.255.255.9522: [udp sum ok] UDP, length 58
        0x0000:  4500 0056 0000 4000 0111 17bf c0a8 b223
        0x0010:  ef0c ffff 2532 2532 0042 d689 534d 4100
        0x0020:  0004 02a0 0000 0001 0026 0010 6065 09a0
        0x0030:  ffff ffff ffff 0000 aa00 30e0 5b09 0000
        0x0040:  0000 0000 6394 0002 8061 0048 2100 ff4a
        0x0050:  4100 0000 0000
08:59:03.078723 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.255: igmp v2 report 239.12.255.255
        0x0000:  4600 0020 0000 0000 0102 c2cc c0a8 b256
        0x0010:  ef0c ffff 9404 0000 1600 faf2 ef0c ffff
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:59:12.124092 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.255: igmp v2 report 239.12.255.255
        0x0000:  4600 0020 0000 0000 0102 c2cc c0a8 b256
        0x0010:  ef0c ffff 9404 0000 1600 faf2 ef0c ffff
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:59:22.023520 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.255: igmp v2 report 239.12.255.255
        0x0000:  4600 0020 0000 0000 0102 c2cc c0a8 b256
        0x0010:  ef0c ffff 9404 0000 1600 faf2 ef0c ffff
        0x0020:  0000 0000 0000 0000 0000 0000 0000
08:59:30.105879 IP (tos 0x0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 86)
    SMA0157016112.fritz.box.9522 > 239.12.255.255.9522: [udp sum ok] UDP, length 58
        0x0000:  4500 0056 0000 4000 0111 17bf c0a8 b223
        0x0010:  ef0c ffff 2532 2532 0042 d289 534d 4100
        0x0020:  0004 02a0 0000 0001 0026 0010 6065 09a0
        0x0030:  ffff ffff ffff 0000 aa00 30e0 5b09 0000
        0x0040:  0000 0000 6794 0002 8061 0048 2100 ff4a
        0x0050:  4100 0000 0000
08:59:34.060991 IP (tos 0x0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    SMA-Wechselrichter.fritz.box > 239.12.255.255: igmp v2 report 239.12.255.255
        0x0000:  4600 0020 0000 0000 0102 c2cc c0a8 b256
        0x0010:  ef0c ffff 9404 0000 1600 faf2 ef0c ffff
        0x0020:  0000 0000 0000 0000 0000 0000 0000


Hier ändern sich die Pakete, also die Größeren von dem anderen Gerät
4500 0056 0000 4000 0111 17bf c0a8 b223 ef0c ffff 2532 2532 0042 6e17 534d 4100 0004 02a0 0000 0001 0026 0010 6065 09a0 ffff ffff ffff 0000 aa00 30e0 5b09 0000 0000 0000 6294 0002 0064 0001 2600 ff01 2600 0000 0000
4500 0056 0000 4000 0111 17bf c0a8 b223 ef0c ffff 2532 2532 0042 d689 534d 4100 0004 02a0 0000 0001 0026 0010 6065 09a0 ffff ffff ffff 0000 aa00 30e0 5b09 0000 0000 0000 6394 0002 8061 0048 2100 ff4a 4100 0000 0000
4500 0056 0000 4000 0111 17bf c0a8 b223 ef0c ffff 2532 2532 0042 d289 534d 4100 0004 02a0 0000 0001 0026 0010 6065 09a0 ffff ffff ffff 0000 aa00 30e0 5b09 0000 0000 0000 6794 0002 8061 0048 2100 ff4a 4100 0000 0000

Volker Kettenbach

Zitat von: Waldmensch am 29 April 2016, 08:47:48
Allerdings ist der Inhalt der Pakete immer gleich
Auf der 255 spielt noch ein anderes Gerät mit. Das kann eigentlich nur der Homemanager sein, was anderes von SMA hängt nicht im Netz
Hier ändern sich die Pakete, also die Größeren von dem anderen Gerät


@waldmensch: Dass die Pakete immer gleich sind, ist bei mir auch der Fall.
Möglicherweise ist dass das "Speedwire Device Discovery", dass in der Doku erwähnt ist.
Man kann wohl mit einem Paket auslösen, dass sich alle Gerät im lokalen Netz melden.
Es würde mich mal interessieren, was der Homemanager auf die .255 schreibt....

Mein Problem derzeit ist, dass ich die Zeit nicht aufbringen kann, daran kontinuierlich zu arbeiten.
Vielleicht kannst Du, Waldmensch, da mal helfen.
Du hast Dich ja mit dem STP ja schon recht ausführlich beschäftigt und ich glaube, die Decodierung des Protkolls, welches per Multicast kommt, wird genau so funktioneiren, wie Deine Unicast-Variante.
Was zu machen wäre:

1. Erstmal rausfinden, wie man den STP dazu bringt, die Daten auf eine Multicast-Adresse zu schreiben, wie es das SMA-EM tut
2. Diese Daten auslesen und decodieren.

Ich hänge mal ein PDF an, wo ein bisschen was zum Thema Speedwire drin steht.

Edit: noch ein PDF angehängt.

Es wäre auch mal interessant zu schauen, wie die Software Sunny Explorer (http://www.sma.de/produkte/monitoring-control/sunny-explorer.html#Uebersicht-3897) im Netz mit den SMA Komponenten "spricht". Da ich keinen Windows Computer besitzt, kann ich das aber leider nicht testen.

Volker Kettenbach

Es könnte auch sein, dass sich der STP über die immer gleich großen Pakete im Netz bekannt macht und die eigentliche Abfrage der Daten nicht wie beim SMA EM per Multicast, sondern per Unicast vom beziehenden Gerät (z.B. SHM) geholt wird. Das wäre dann wie beim Modul, das Waldmensch weiter entwickelt hat.

Volker Kettenbach

Mittels dieses Python-Programms:

https://github.com/kettenbach-it/FHEM-SMAEM/blob/master/discover.py

könnt Ihr Euch anzeigen lassen, welche Speedwire-Gerät in Euren lokalen Netz sind.

Waldmensch

Ich bin aus Urlaubsgründen bis Mitte des Monats raus ohne Zugriff auf die Heimtechnik.

Ich vermute aber wie Volker, das es nur über unicast geht. Unter dem Aspekt wäre interessant, ob das EM dies auch kann, um es eventuell doch beides in ein einziges Modul zu packen. Also EM und WR nach dem gleichen Schema abfragen.

Michael

Moin Volker

Zitat
Antw:Neu: 77_SMAEM - Modul für SMA Energie Meter. Alternative zum Sunny Home Manager.
« Antwort #83 am: Gestern um 17:49:39 »

Mittels dieses Python-Programms:
https://github.com/kettenbach-it/FHEM-SMAEM/blob/master/discover.py
könnt Ihr Euch anzeigen lassen, welche Speedwire-Gerät in Euren lokalen Netz sind.

Wenn du mir das erklärst wie das geht, werde ich es Versuchen.  ::) :-[
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Volker Kettenbach

Zitat von: Waldmensch am 01 Mai 2016, 19:37:49
Ich bin aus Urlaubsgründen bis Mitte des Monats raus ohne Zugriff auf die Heimtechnik.

Ich vermute aber wie Volker, das es nur über unicast geht. Unter dem Aspekt wäre interessant, ob das EM dies auch kann, um es eventuell doch beides in ein einziges Modul zu packen. Also EM und WR nach dem gleichen Schema abfragen.

Das hatte ich gecheckt: das EM scheint nur Multicast zu machen

Volker Kettenbach

Zitat von: Michael am 02 Mai 2016, 07:10:10
Moin Volker

Wenn du mir das erklärst wie das geht, werde ich es Versuchen.  ::) :-[

Einfach python-twisted installieren (apt-get install python-twisted) und dann Discover.py starten

Michael

Moin Volker

Im Anhang 1 das Ergenbins von Discover.py .

Im Anhang 2 die Lokale Webseite vom EM.
Mit einer Daten Empängeradresse ?
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Volker Kettenbach

Zitat von: Michael am 03 Mai 2016, 18:12:48
Im Anhang 1 das Ergenbins von Discover.py .
Im Anhang 2 die Lokale Webseite vom EM.
Mit einer Daten Empängeradresse ?

Schön! Du hast 3 Geräte im Netz, die Speedwire sprechen.
Und beim SMA-EM kann man die Multicastgruppe (Empfängeradresse der Energiedaten) einstellen. Ich nehme aber an, wenn Du die änderst, dann wird wohl der SHM die Daten vom SMA-EM nicht mehr empfangen können.


Ich habe mittlerweile man den raspi an einem Monitorport des Switches gehängt. Da kann ich den SHM mal abhören und schauen, was der so tut.
Ich gehe aber mal davon aus, dass es das beste sein wird, das Modul, das Waldmensch Co-entwickelt hat, für die Abfrage des STP zu verwenden.
Vielleicht sollten wir es 77_SMASTP.pm nennen.
Ich werde es versuchen, mir das ganze am kommenden, langen Wochenende mal an zu schauen.