Kommunikation mit KNX ohne knxd

Begonnen von jewuma, 29 April 2018, 15:13:03

Vorheriges Thema - Nächstes Thema

CQuadrat

#15
Danke für die schnelle Antwort.

Ein erster (kurzer) Test war leider nicht erfolgreich.

Muss ich FHEM auch neustarten?

Bei den KNX-Devices sollte es doch dann genügen, das IODev auf das neue IO-Device (KNXTUL) abzuändern?


Nachtrag:
Okay, ich habe ein MDT SCN-IP000.02 (IP Interface); das kann wohl kein Multicast. Das kann nur der MDT SCN-IP100.02 (IP Router).
Schade.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

jewuma

Ich habe mal irgendwo gelesen, dass die meisten KNX-IP-Interfaces Multicast unterstützen. Im Handbuch von MDT habe ich leider keine eindeutige Aussage gefunden.
Der FHEM-Neustart ist jedoch auf jeden Fall nötig, da zuvor auch noch das Perl-Multicast Modul installiert werden muss.
Also:
Das KNXTUL nach /opt/fhem/FHEM  Verzeichnis kopieren (Wenn standardmäßig installiert)
sudo cpan IO::Socket::Multicast
sudo service fhem stop
sudo service fhem start

Und dann nochmal probieren.
Gruß
Jens

Jens


CQuadrat

Das Perl-Modul hatte ich schon länger davor per
apt-get install libio-socket-multicast-perl
installiert.
Am Wochenende, wenn ich mehr Zeit habe, schaue ich es mir nochmal an.

Danke und Gruß
Christoph
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

GammaTwin

Grüße,

cooles Modul. Ich kann den Bus "hören", allerdings scheint da was beim übersetzen zu haken :)

Im Logfile steht:
PERL WARNING: Use of uninitialized value $str in pattern match (m//) at ./FHEM/00_KNXTUL.pm line 483.
KNXTUL opening KNX
KNXTUL device opened


und dann
RawMessage read: 2900bcd01001270b05008043c58000
Message read: 1001270b008043c58000
KNX: dispatch C01001w0470b43c58000
KNX: Unknown code C01001w0470b43c58000, help me!


Sieht schon irgendwie nach einem Telegramm aus...

jewuma

Ich denke, da ist beim "DEFINE" was schiefgegangen.
Kannst du mal kurz posten, wie du das Gerät angelegt hast?

Gruß

Jens

GammaTwin

Wahrscheinlich habe zu einfach gedacht :)

define KNX KNXTUL

Das war's

jewuma

Ein bisschen zu einfach, du musst dem TUL noch eine KNX-Adresse verpassen.

also z.B.  "define KNX KNXTUL 1.1.249"

Dabei eine Adresse verwenden, die noch nicht existiert.

Gruß
Jens

GammaTwin

Ok, habe KNX-Adresse vergeben.

Der Fehler ist damit verschunden
PERL WARNING: Use of uninitialized value $str in pattern match (m//) at ./FHEM/00_KNXTUL.pm line 483.


Der Rest ist allerdings noch vorhanden.
RawMessage read: 2900bcd01001270b05008043c58000
Message read: 1001270b008043c58000
KNX: dispatch C01001w0470b43c58000
KNX: Unknown code C01001w0470b43c58000, help me!


In der ETS sehe ich die Schnittstelle nicht. Im Produktivsystem nutze ich eibd und das sehe ich in der ETS.


Ich habe mal versucht die Telegramme übersichtlicher darzustellen. Vielleicht hilft es ja für eine Erklärung.






TextTeil1gleicher Teil
RawMessage read:
2900bcd01001270b050080
43c58000
Message read:
1001270b0080
43c58000
KNX: dispatch
C01001w0470b
43c58000
KNX: Unknown code
C01001w0470b
43c58000


jewuma

Ich arbeite im Moment noch an einem Problem was auftritt, wenn ein ungültiges Paket ankommt. Du könntest aber schon mal versuchen eine ankommende Gruppenadresse abzufragen mit:

DEFINE Temperatur1 KNX 0/4/128:dpt9.001 KNX

oder so ähnlich, je nachdem, wie deine Gruppenadressen und Datenpunkte lauten. Dann verschwinden auch die "Hilferufe"  :)

Gruß

Jens

GammaTwin

#24
Hat funktioniert :)

Ich habe einen Teil meiner Gruppenadressen aus der Produktivumgebung über include eingebunden. Diese sind dann sofort voll funktionsfähig :)

UND

ab jetzt werden alle anderen Gruppenadressen über über autocreate ordnungsgemäß angelegt.

Klingt das für Dich logisch? Es muss mindestens eine Adresse vorhanden sein, damit das (sehr geiles) Modul richtig arbeitet?

GammaTwin

#25
Habe alle Device eingebaut.

Nach einer Weile steigt fhem komplett aus, ist nicht mehr erreichbar. Im Log liegt dann als letzte Meldung:
current value for KNX_0103031 (1/5/31) requested
'x' outside of string in unpack at ./FHEM/00_KNXTUL.pm line 507.


Es handelt sich um Device für eine Lampe, die ich noch nicht montiert habe und auch nicht in der ETS einem Aktor zugeordnet habe :)
Das Teil antwortet also nicht. Im fhem steht
GETSTRING g1:noArg g3:noArg g2:noArg

Könnte das mit den ungültigen Paketen zusammenhängen?
Zitat von: jewuma am 30 Januar 2019, 17:08:56
Ich arbeite im Moment noch an einem Problem was auftritt, wenn ein ungültiges Paket ankommt.


Hintergrund für die Abfrage des Wertes:
Das Device beinhalte 3 Gruppenadressen (g1: on/off, g2: dimmen relativ, g3: Dimmwert). Um die Visualisierung auf Stand zu bringen, frage ich für die Lampen die g3  ab. Daher die Anfrage auf (1/5/31) obwohl die Lampe nicht antwortet.

Edit: Ohne diese Devices läuft es :)

jewuma

Ja, genau das ist das Problem, Es tauchen selten Pakete auf, die einfach Blödsinn sind und dann das System durcheinander bringen.
Ich konnte den Fall jedoch nicht provozieren, sondern er ist bei mir gestern einmal aufgetreten und danach nicht mehr, auch ohne Änderungen in der Konfiguration oder der Hardware.
Ich werde jetzt die fehlerhaften Pakete abfangen und damit auch den Absturz vehindern.
Sobald ich fertig bin, stelle ich ein Update hier rein.

jewuma

So, hier die neue Version mit einer Gültigkeitsprüfung um Crashs zu vermeiden. Ich bitte nochmal um Feedback.


GammaTwin

Meine 3 "Geist-Devices" produzieren keinen Fehler mehr :)

Ich lasse es mal laufen...

GammaTwin

Guten Morgen,

hatte nach 3 Tage, einmalig diese Meldung.
PERL WARNING: Use of uninitialized value $state in subtraction (-) at ./FHEM/10_KNX.pm line 1922.

FHEM ist nicht hängengeblieben und es wurden auch weiterhin Telegramme empfangen. Also scheinbar keine Folgen...

Gruß