Modul 00_KNXIO.pm support

Begonnen von erwin, 25 Mai 2022, 14:00:35

Vorheriges Thema - Nächstes Thema

erwin

Hi KNX_Community!
Neue Version ist am SVN, change-history (wie immer...) im 1.Beitrag in diesem Thread!

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

erwin

Hi KNX_Community!
Neue Version ist am SVN, change-history (wie immer...) im 1.Beitrag in diesem Thread!

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

erwin

#107
Hi KNX_Community!
Neue Version ist am SVN, change-history (wie immer...) im 1.Beitrag in diesem Thread!

Fix warnings on use statements (Perl 5.040)

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

waermepumpe

#108
Hi!

Bei Multicast "M 224.0.23.12:3671 1.1.250" wird leider ans falsche interface gebunden und man kann kein Interface definieren.

ip maddr show dev normal
11:    normal
    link  xx:xx:xx:xx:xx:xx users 2
    link  xx:xx:xx:xx:xx:xx users 2
    link  xx:xx:xx:xx:xx:xx users 2
    link  xx:xx:xx:xx:xx:xx users 2
    link  xx:xx:xx:xx:xx:xx users 2
    link  xx:xx:xx:xx:xx:xx users 2
    inet  224.0.23.12
    inet  224.0.0.252
    inet  224.0.0.1
    inet6 ff02::1:3
    inet6 ff02::1:fff7:nnnn
    inet6 ff02::1
    inet6 ff01::1

Bei socat kann man interface bindung definieren "socat -u UDP4-RECVFROM:3671,ip-add-membership=224.0.23.12:iot,fork /dev/null"

Ich umgehe das derzeit mit einer host route für den multicast, ist aber nicht schön.

ip route add 224.0.23.12/32 dev iot
dann wandert der eintrag inet inet  224.0.23.12 vom normal interface zum iot interface, nach restart/reconnect des knxio

Kann man bei der KNXIO def. nicht auch eine interface spezifikation/binding einbauen, sowie bei socat möglich, oder übersehe ich was?

# SO_BINDTODEVICE = 25 auf Linux
setsockopt($sock, SOL_SOCKET, 25, "$iface\0")
    or die "setsockopt SO_BINDTODEVICE failed: $!";

die finale routing table:
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG    400    0        0 normal
192.168.1.0     0.0.0.0         255.255.255.0   U     402    0        0 iot
192.168.2.0     0.0.0.0         255.255.255.0   U     400    0        0 normal
192.168.179.0   0.0.0.0         255.255.255.0   U     401    0        0 guest
224.0.23.12     0.0.0.0         255.255.255.255 UH    0      0        0 iot

Danke!

erwin

Hi,
das ist seltsam,
bist du sicher, dass das interface iot MULTICAST unterstützt ?
Die doku zu SOCKS:: ist da nicht eindeutig, siehe:SOCKS

Grundsätzlich passsiert das joingroup in TcpServerUtils.pm mit INETADDR_ANY - aufgerufen durch 00_KNXIO.pm.
Nach meinem Verständnis sollten alle (passenden) if verwendet werden.

Zum Testen könntest du versuchen in TcpServerUtils.pm Zeile 145 INADDR_ANY auf dein if zu patchen....
...falls das funktioniert, könnte man über def/attr-parameter nachdenken...
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...