5.3 - Multicast Socket funktioniert nicht mehr

Mit 5.3 wurde doch irgendwas am Multicast umgebaut oder ?!
Kann mir jemand einen Tip geben was ich ändern muss, damit mein Multicast in 5.3 wieder funktioniert ? Debug der Instantz bleibt leider leer.

<?

if ($_IPS["SENDER"] == "RegisterVariable")                               // über Register Var ausgeführt
{
    $Data  = RegVar_GetBuffer($_IPS["INSTANCE"]);                 // im Puffer der Instanz vorhandene Daten in $data kopieren
    $Data .= $_IPS["VALUE"];                                                        // neu empfangene Daten an $data anhängen
    $CRLF  = ",
";
    $HexData = bin2hex($Data);
//    SetValue(23031, substr($HexData,417, 16 ));

    SetValue(20236,(float)hexdec(substr($HexData,64, 8 ))/10);
    SetValue(55279,(float)hexdec(substr($HexData,104, 8 ))/10);

   // SetValue(57365,(float)hexdec(substr($HexData,320, 8 ))/10);
  //  SetValue(38361,(float)hexdec(substr($HexData,608, 8 ))/10-(float)hexdec(substr($HexData,648, 8 ))/10);
  //  SetValue(22899,(float)hexdec(substr($HexData,896, 8 ))/10);
    //SetValue(12345,(float)hexdec(substr($HexData,5347080, 36000 ))/1000);
	
	
	SetValue(14431,(float)hexdec(substr($HexData,80, 16 ))/3600000);
    SetValue(30067,(float)hexdec(substr($HexData,120, 16 ))/3600000);
	
}
?>

Danke Gruß
Christian

Hab das gleiche Problem… :confused:

Sicher, dass du Multicast willst und nicht nur den normalen UDP Socket brauchst?

paresy

Ja und nein… es lief bisher bei mir immer über Multicast Socket ohne Probleme.
Sollte laut dem Scriptcoder mit UDP Socket funktionieren. (so nutzten es andere damals, habs bei mir aber nur per Multicast socket zum laufen gebracht)

Habe ein UDP Socket erstellt, konfiguriert und der Instanz das Gateway zugeordnet. Aber kommt auch nichts an.

PS: Symcon läuft bei mir im Docker (Synology NAS) mit NAT Support


Wenn ich auf 5.2 zurück wechsel läuft es wieder, aber auch nur per Multicast. Mit UDP Socket gehts hier auch nicht.
In 5.3 bekomme ich es mit dem MC nicht zum laufen.

Bist du dir sicher, dass Multicast das richtige ist? So wie du es konfiguriert hast, wäre eigentlich ein UDP Socket ohne Broadcast richtig. Und bei Docker eine Port-Weiterleitung, sodass du Pakete auf dem Port 9522 empfangen kannst.

paresy

Ja, der SMA EnergieMeter / HomeManager 2.0 liefert die Einspeisedaten per Multicast.

Der Container läuft ja mit der Option --net=„host“ so kann ich keine Ports weiterleiten.
Habe hier noch ein Raspi zum testen und dort muss ich ja keine Ports weiterleiten. Auch hier funktioniert das genauso wenig mit UDP Socket. Ausschließlich mit dem wie auf dem Bild konfigurierten Multicast Socket funktioniert es. :cool:

Um welches Gerät handelt es sich? Hast du einen Link zur Anleitung?

paresy

SMA HomeManager 2.0

In einem offiziellen SMA Dokument habe ich folgendes gefunden:

Der Speedwire Feldbus ist so aufgebaut, dass der Speedwire Device Discovery Dienst und weitere Basisdienste als IP-/
UDP-Telegramme den Port 9522 nutzen.
• Port 9522 ist bei der IANA (Internet Assigned Numbers Authority) für SMA Speedwire Kommunikation eingetragen
Es werden unter anderem Multicast-Telegramme verwendet

HIER direkt aus dem symcon Forum.
Da sieht man, dass es noch jemand per Multicast Socket abfragt.

HIER wird von UDP Broadcast gesprochen „Das SMA Energy Meter als auch der SHM2 senden jede Sekunde eine UDP Broadcast Telegramm in das Netzwerk.“

HIER wird wiederum von Multicast gesprochen. „Diese werden per Multicast im Netz an die Adresse 239.12.255.254 gesendet. Ein Multicast ist NICHT mit einem Broadcast zu verwechseln“

So sieht der Debug aus wenn es per Multicast Socket funktioniert.

Ich habe noch keine direkte Idee. Werde aber nachher mal ein paar Multicast Pakete simulieren und hin und her schicken.

paresy

Hatte gestern nach dem Upgrade auf 5.3 dasselbe Problem. Nach einigen Versuchen habe ich in der Instanzkonfiguration den EMPFÄNGERHOST auf ALL gesetzt. danach funktionierte es wieder.

hdriesen

Auf die Idee wäre ich nie gekommen :banghead: :smiley:
Ist bestimmt nicht so gewollt oder Paresy ?

Hauptsache es läuft :loveips::smiley: DANKE

Hallo zusammen,

habe das gleich Problem, aber mit der Umstellung auf „Alle“ wird’s nicht besser. Der Empfängerhost läuft normal im Subnetz 10.1.3.x während der IPS-Server im 10.1.1.x läuft.
hat bisher anstandslos geklappt.

Bei Alle kommt dieser Fehler:

bei der bisherigen Konfiguration :

Grüße Frank

Wir können das Problem auf jeden Fall nachstellen und sind dran.

paresy

habe auch mal versucht auf alle hat bei mir leider auch nicht geholfen…

ps4 second screen ist leer.

gibs hierzu was neues ?

…wollte auch mal fragen … müsste sonst auf die 5.2 zurücksetzen :frowning:

Bisher gibt es dazu leider nichts neues. Ich vermute auch, dass wir erst Anfang des neuen Jahrs eine Lösung dafür finden werden.

paresy

Gibt es schon was neues bis wann der Multicast Socket wieder funktionsfähig sein wird?

Wollte mich nur mal der Liste der Betroffenen anschließen. Wenn ich den EnergyMeter so umkonfiguriere, dass er direkt an IPS sendet, kommt was an. Aber dann funktioniert die Relegung im SMA-System nicht mehr (z.B. braucht der Batterielader die Info des EnergyMeters) und das geht nicht, die ist wichtiger als die Darstellung in IPS… In 5.2 (und zuvor) lief es.

EDIT: Nach Setzen des Empfangshost auf „Alle“ läuft es auch hier wieder. Interessanterweise scheint egal zu sein, ob Broadcast „on“ or „off“ im Socket. Habe es einstweilen „off“ - mit der abgebildeten Einstellung läuft es bei mir.

Das Multicast Paket geht quasi an die IP des Multicast Pakets. Typischerweise sollte man also als Empfänger auch die Multicast Adresse einstellen. Hierfür über „ip addr add“ [Linux Systemtool] dem Host eine entsprechende IP zuweisen. Beispiel: " ip addr add 224.0.23.12/32 dev eth0" für KNX Multicast.

Will man jetzt auch entsprechend als Multicast Antworten, so muss man natürlich als „Sende Host“ auch die Multicast Adresse einstellen. Sprich in einem wirklichen Multicast Setup stünde hier 3x die selbe „IP“.

Weiß jemand, warum der KNX Splitter nicht zusammen mit Multicast funktioniert? Würde einem so in einem tatsächlichen Multicast fähigem KNX System (z.B. bei Verwendung eines KNX Routers) die Tunnelverbindung sparen.

Empfangen tut der Socket brav. Nur senden will irgendwie nicht.

Fix für das Multicast Problem kommt zum nächsten Update.

Beim PS4 Modul gibt es noch ein weiteres Problem - da arbeite ich mit Kai an einer Lösung.

paresy