FHEM2FHEM [LOG:regexp] keine Funktion ab gewisser Anzahl von Definitionen

Begonnen von Burny4600, 27 Juni 2017, 14:11:15

Vorheriges Thema - Nächstes Thema

Burny4600

Wie ergibt sich die Begrenzung der maximalen Regexp Einträge der FHEM2FHEM Konfiguration?

ZB:
define F2F_Rasp01 FHEM2FHEM 192.xxx.xxx.xxx:7072:SSL LOG:AB_P_DSFRD.*|AB_P_ST_DT09T04D.*|AB_P_ZPFSD.*|AB_P_ZPHZD.*|AB_P_ZPPSD.*|AB_SSP_ST_DT07T08D.*|AB_SSP_ST_DT12T08D.*|AB_SSP_ST_FHVA3D.*|AB_SSP_ST_HVV3D.*|AB_SSP_ST_FKVA5D.*|AB_ST_FGHZFRD.*|OG2_HZR_ST_PPPFA2D.*|OG2_HZR_ST_PSSPD.*|OG2_HZR_ST_PSWWZPD.*|OG2_HZR_ST_V1D.*|OG2_HZR_ST_V2D.* Passwort
Wird nicht mehr ausgeführt.

Nehme ich drei der LOG Einträge wieder heraus funktioniert die FHEM2FHEM Schnittstelle wieder.

Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

rudolfkoenig

Weiss nicht genau, was mit "Begrenzung der maximalen LOG Einträge" gemeint ist, aber das was du zeigst, wird als Regexp ausgewertet, und wie ueblich gegen name bzw. name:event geprueft. Mir sind keine harten Grenzen beim regexp bekannt. Ich gehe davon aus, dass die Ursache des Problems anderswo zu suchen ist.

Burny4600

Ich habe das schon alles durchgetestet.
Es liegt definitiv eine Begrenzung vor wo auch immer diese herrührt.

Sowie ich zwei Definitionen entferne (zb. OG2_HZR_ST_V1D.*|OG2_HZR_ST_V2D.*) werden alle andern via Remote übertragen.
Ich habe mich derweilen so beholfen das ich eine zweite FHEM2FHEM Remoteschnittstelle konfiguriert habe um alle benötigten Regexp Auswertungen zu übertragen.
Fehler ist jedenfalls von meiner Seite nicht vorhanden. Das habe ich mehrfach geprüft.
Es wäre nur irgendein Hinweis hilfreich, denn bei zu vielen Einträgen werden plötzlich gar keine Daten mehr übertragen und im ersten Moment weiß man nicht wo der Fehler liegt, da die Schnittstelle sich als funktionsfähig zeigt.
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

rudolfkoenig

Ich kann doch nicht auf was hinweisen, was mAn nicht gibt.
Kannst du bitte in telnet/FHEMWEB, was mit dem Slave (also da, wo die FHEM2FHEM Instanz hinzeigt, nicht da, wo sie definiert ist) folgendes ausfuehren:
{ join("\n", map { $inform{$_}{regexp} } keys %inform) }
und den Rueckgabewert mit deinem Regexp vergleichen?

Burny4600

#4
Soll der gesamte Inhalt vorher wieder in der FHEM2FHEM Konfiguration eingefügt werden?

Originale Remoteanforderung
define F2F_Rasp01 FHEM2FHEM 192.xxx.xxx.xxx:7072:SSL LOG:AB_P_DSFRD.*|AB_P_ST_DT09T04D.*|AB_P_ZPFSD.*|AB_P_ZPHZD.*|AB_P_ZPPSD.*|AB_SSP_ST_DT07T08D.*|AB_SSP_ST_DT12T08D.*|AB_SSP_ST_FHVA3D.*|AB_SSP_ST_HVV3D.*|AB_SSP_ST_FKVA5D.*|AB_ST_FGHZFRD.*|OG2_HZR_ST_PPPFA2D.*|OG2_HZR_ST_PSSPD.*|OG2_HZR_ST_PSWWZPD.*|OG2_HZR_ST_V1D.*|OG2_HZR_ST_V2D.* Passwort
{ join("\n", map { $inform{$_}{regexp} } keys %inform) }
DL2_T04.*|OG2HHSD.*|PHSD.*|PBLSD.*|PSTWD.*
AB_P_PP_STSD.*|AB_P_ZP_S1D.*|OG2_HZR_H_HSD.*|OG2_HZR_P_APSD.*|PBLSD.*


Und aufgeteilte Remoteanforderung
define F2F_Rasp01_1 FHEM2FHEM 192.xxx.xxx.xxx:7072:SSL LOG:AB_P_(DSFRD|ST_DT09T04D|ZPFSD|ZPHZD|ZPPSD).* Passwort

define F2F_Rasp01_2 FHEM2FHEM 192.xxx.xxx.xxx:7072:SSL LOG:AB_SSP_ST_(DT07T08D|DT12T08D|FHVA3D|HVV3D|FKVA5D).*|AB_ST_FGHZFRD.*|OG2_HZR_ST_(PPPFA2D|PSSPD|PSWWZPD|V1D|V2D).* Passwort

{ join("\n", map { $inform{$_}{regexp} } keys %inform) }
AB_P_PP_STSD.*|AB_P_ZP_S1D.*|OG2_HZR_H_HSD.*|OG2_HZR_P_APSD.*|PBLSD.*
DL2_T04.*|OG2HHSD.*|PHSD.*|PBLSD.*|PSTWD.*
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

rudolfkoenig

FHEM2FHEM uebertraegt im LOG-Mode den im define spezifizierten Regexp an die Gegenstelle, die diesen Regexp unveraendert in %inform eintraegt.
Bei Dir sehe ich in beiden Faellen keine Korrelation zwischen FHEM2FHEM-Definition und inform Inhalt.
Ich gehe davon aus, dass die falsche FHEM-Instanz abgefragt wurde.

Burny4600

ZitatBei Dir sehe ich in beiden Faellen keine Korrelation zwischen FHEM2FHEM-Definition und inform Inhalt.
Verstehe nicht wie du das meinst?
Es kommen doch alle Daten im LOG Mode an die ich benötige, zumindest wenn ich diese aufteile.
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

Burny4600

Ich muss leider dieses Thema wieder aufgreifen da ich immer wieder über diesen Fehlerfall stolpere.
Folgende Test habe ich durchgeführt.

ccs-ht-rasp01 FHEM2FHEM Konfiguration mit ungekürzten Bezeichnungen
192.168.17.182:7182:SSL LOG:AB_P_DSFRD.*|AB_P_SSSSD.*|AB_P_PP_STSD.*|AB_P_ST_DT09T04D.*|AB_P_ST_PPPA2.*|AB_P_ST_PPPFA2D.*|AB_P_ZPHZD.*|AB_P_ZPPSD.*|DL2.*|HTZ_SDM630M_1.*|NGZ_SDM630M_2.*|OG2_HZR_H_HSD.*|OG2_HZR_P_APSD.*|OG2_HZR_STSP5_HTD.*|OG2_HZR_STSP5_RYD.*|OG2_HZR_NS_APCUEWD.* Passwort
Es erfolgt keine Datenübertragung!

Überprüfung am ccs-ht-rasp02 mit
{ join("\n", map { $inform{$_}{regexp} } keys %inform) }
Ergebnis
AB_P_ZPFSD.*|AB_P_ZPHZD.*|AB_P_ZPPSD.*

ccs-ht-rasp01 FHEM2FHEM Konfiguration mit gekürzten Bezeichnungen
192.168.17.182:7182:SSL LOG:AB_P_(DSFRD|SSSSD).*|AB_P_PP_STSD.*|AB_P_ST_DT09T04D.*|AB_P_ST_PPP(A2|FA2D).*|AB_P_ZPHZD.*|AB_P_ZPPSD.*|DL2.*|(HTZ|NGZ)_SDM630M_(1|2).*|OG2_HZR_(H_HS|P_APS)D.*|OG2_HZR_STSP5_(HT|RY)D.*|OG2_HZR_NS_APCUEWD.* Passwort

Es erfolgt eine Datenübertragung!

Überprüfung am ccs-ht-rasp02 mit
{ join("\n", map { $inform{$_}{regexp} } keys %inform) }

Ergebnis
AB_P_(DSFRD|SSSSD).*|AB_P_PP_STSD.*|AB_P_ST_DT09T04D.*|AB_P_ST_PPP(A2|FA2D).*|AB_P_ZPHZD.*|AB_P_ZPPSD.*|DL2.*|(HTZ|NGZ)_SDM630M_(1|2).*|OG2_HZR_(H_HS|P_APS)D.*|OG2_HZR_STSP5_(HT|RY)D.*|OG2_HZR_NS_APCUEWD.*
AB_P_ZPFSD.*|AB_P_ZPHZD.*|AB_P_ZPPSD.*


So wie sich dieser Fehlerfall darstellt, liegt der Fehler an der Zeichenlänge für die regexp Einträge der FHEM2FHEM Konfiguration, und nicht an der Anzahl der regexp Einträge.
Ich habe leider keine andere Lösung für die Datenübermittlungen zwischen den einzelnen Raspberrys gefunden.
Es wird wahrscheinlich auch bei der zusammen gekürzten Schreibweise der regexp Einträge irgendwann eine Überschreitung der Zeichenlänge erfolgt sein wo es auch hier zu keiner Datenübertragung mehr kommen wird obwohl alles richtig konfiguriert wurde.
Hier wäre zumindest bei der Konfiguration von FHEM2FHEM ein Hinweis bei der Überschreitung der Zeichenlänge hilfreich um nicht den Fehler an der falschen Seite zu suchen.
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

rudolfkoenig

Es gibt keine absichtliche Begrenzung der Zeichenlaenge in FHEM2FHEM.

Das Problem hier war das Zusammenspiel von SSL, FHEM2FHEM und select in fhem.pl: Die SSL Routinen puffern die nicht abgeholten Daten, deswegen merkt select nicht, dass noch nicht alles gelesen wurde und benachrichtigt deswegen nicht FHEM2FHEM wieder, der in deinem Fall nicht alles auf einmal abgeholt hat. Ohne SSL hat es auch vorher funktioniert.

Ich habe fhem.pl angepasst, damit SSL-Verbindungen zusaetzlich mit pending() geprueft werden. Die Aenderung in fhem.pl ist zwar klein aber grundlegend, und ich hoffe, dass es keine Nebeneffekte hat. FHEM update ist (wie uebich) ab morgen um 8 verfuegbar.

Burny4600

@rudolfkoenig
Da muss man auch erst drauf kommen was da alles einem in die Suppe spukt.
Danke Rudi.
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

betateilchen

Zitat von: rudolfkoenig am 31 Mai 2018, 13:34:39
Ich habe fhem.pl angepasst, damit SSL-Verbindungen zusaetzlich mit pending() geprueft werden. Die Aenderung in fhem.pl ist zwar klein aber grundlegend, und ich hoffe, dass es keine Nebeneffekte hat. FHEM update ist (wie uebich) ab morgen um 8 verfuegbar.

Hallo Rudi,

es scheint in der Tat Nebeneffekte mit dieser Änderung zu geben.

https://forum.fhem.de/index.php/topic,88357.0.html
https://forum.fhem.de/index.php/topic,88340.0.html

Der erste Thread hat definitiv etwas mit Deiner Änderung zu tun, der zweite klingt zumindest so ähnlich.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JWRu

ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

rudolfkoenig

Auch wenn ich die Ursache nicht verstehe, habe gerade in fhem.pl eine zusaetzliche Pruefung via can('pending') eingefuehrt. Kann sein dass es hilft.
Ich waere dankbar, wenn jemand mit einem Absturz in fhem.pl, vor der Zeile mit 'pending' Folgendes einfuegt, und das Ergebnis hier postet:
Log 1, "*** check pending for $hash->{NAME}" if($hash->{SSL});

Alcamar


Alcamar

Hallo Rudi,
das erzeugt sehr viele  log-Einträge. Ist es so gedacht?
Die log-Datei wird sehr groß werden.

2018.06.04 06:43:19 1: *** check pending for WEB
2018.06.04 06:43:19 1: *** check pending for WEBtablet
2018.06.04 06:43:19 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:19 1: *** check pending for WEBphone
2018.06.04 06:43:19 1: *** check pending for WEBhook
2018.06.04 06:43:19 1: *** check pending for WEB
2018.06.04 06:43:19 1: *** check pending for WEBtablet
2018.06.04 06:43:19 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:19 1: *** check pending for WEBphone
2018.06.04 06:43:19 1: *** check pending for WEBhook
2018.06.04 06:43:19 1: *** check pending for WEB
2018.06.04 06:43:19 1: *** check pending for WEBtablet
2018.06.04 06:43:19 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:19 1: *** check pending for WEBphone
2018.06.04 06:43:19 1: *** check pending for WEBhook
2018.06.04 06:43:19 1: *** check pending for WEB
2018.06.04 06:43:19 1: *** check pending for WEBtablet
2018.06.04 06:43:19 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:19 1: *** check pending for WEBphone
2018.06.04 06:43:20 1: *** check pending for WEBhook
2018.06.04 06:43:20 1: *** check pending for WEB
2018.06.04 06:43:20 1: *** check pending for WEBtablet
2018.06.04 06:43:20 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:20 1: *** check pending for WEBphone
2018.06.04 06:43:21 1: *** check pending for WEBhook
2018.06.04 06:43:21 1: *** check pending for WEB
2018.06.04 06:43:21 1: *** check pending for WEBtablet
2018.06.04 06:43:21 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:21 1: *** check pending for WEBphone
2018.06.04 06:43:22 1: *** check pending for WEBhook
2018.06.04 06:43:22 1: *** check pending for WEB
2018.06.04 06:43:22 1: *** check pending for WEBtablet
2018.06.04 06:43:22 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:22 1: *** check pending for WEBphone
2018.06.04 06:43:23 1: *** check pending for WEBhook
2018.06.04 06:43:23 1: *** check pending for WEB
2018.06.04 06:43:23 1: *** check pending for WEBtablet
2018.06.04 06:43:23 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:23 1: *** check pending for WEBphone
2018.06.04 06:43:24 1: *** check pending for WEBhook
2018.06.04 06:43:24 1: *** check pending for WEB
2018.06.04 06:43:24 1: *** check pending for WEBtablet
2018.06.04 06:43:24 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:24 1: *** check pending for WEBphone
2018.06.04 06:43:25 1: *** check pending for WEBhook
2018.06.04 06:43:25 1: *** check pending for WEB
2018.06.04 06:43:25 1: *** check pending for WEBtablet
2018.06.04 06:43:25 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:25 1: *** check pending for WEBphone
2018.06.04 06:43:25 1: *** check pending for WEBhook
2018.06.04 06:43:25 1: *** check pending for WEB
2018.06.04 06:43:25 1: *** check pending for WEBtablet
2018.06.04 06:43:25 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:25 1: *** check pending for WEBphone
2018.06.04 06:43:25 1: *** check pending for WEBhook
2018.06.04 06:43:25 1: *** check pending for WEB
2018.06.04 06:43:25 1: *** check pending for WEBtablet
2018.06.04 06:43:25 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:25 1: *** check pending for WEBphone
2018.06.04 06:43:26 1: *** check pending for WEBhook
2018.06.04 06:43:26 1: *** check pending for WEB
2018.06.04 06:43:26 1: *** check pending for WEBtablet
2018.06.04 06:43:26 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:26 1: *** check pending for WEBphone
2018.06.04 06:43:26 1: *** check pending for WEBhook
2018.06.04 06:43:26 1: *** check pending for WEB
2018.06.04 06:43:26 1: *** check pending for WEBtablet
2018.06.04 06:43:26 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:26 1: *** check pending for WEBphone
2018.06.04 06:43:27 1: *** check pending for WEBhook
2018.06.04 06:43:27 1: *** check pending for WEB
2018.06.04 06:43:27 1: *** check pending for WEBtablet
2018.06.04 06:43:27 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:27 1: *** check pending for WEBphone
2018.06.04 06:43:28 1: *** check pending for WEBhook
2018.06.04 06:43:28 1: *** check pending for WEB
2018.06.04 06:43:28 1: *** check pending for WEBtablet
2018.06.04 06:43:28 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:28 1: *** check pending for WEBphone
2018.06.04 06:43:29 1: *** check pending for WEBhook
2018.06.04 06:43:29 1: *** check pending for WEB
2018.06.04 06:43:29 1: *** check pending for WEBtablet
2018.06.04 06:43:29 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:29 1: *** check pending for WEBphone
2018.06.04 06:43:30 1: *** check pending for WEBhook
2018.06.04 06:43:30 1: *** check pending for WEB
2018.06.04 06:43:30 1: *** check pending for WEBtablet
2018.06.04 06:43:30 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:30 1: *** check pending for WEBphone
2018.06.04 06:43:30 1: *** check pending for WEBhook
2018.06.04 06:43:30 1: *** check pending for WEB
2018.06.04 06:43:30 1: *** check pending for WEBtablet
2018.06.04 06:43:30 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:30 1: *** check pending for WEBphone
2018.06.04 06:43:30 1: *** check pending for WEBhook
2018.06.04 06:43:30 1: *** check pending for WEB
2018.06.04 06:43:30 1: *** check pending for WEBtablet
2018.06.04 06:43:30 1: *** check pending for WEBtablet_192.168.178.203_52902
2018.06.04 06:43:30 1: *** check pending for WEBphone
2018.06.04 06:43:31 1: *** check pending for WEBhook
2018.06.04 06:43:31 1: *** check pending for WEB
2018.06.04 06:43:31 1: *** check pending for WEBtablet
2018.06.04 06:43:31 1: *** check pending for WEBphone
2018.06.04 06:43:31 1: *** check pending for WEBtablet_192.168.178.203_52908
2018.06.04 06:43:31 1: *** check pending for WEBphone
2018.06.04 06:43:31 1: *** check pending for WEBtablet
2018.06.04 06:43:31 1: *** check pending for WEB
2018.06.04 06:43:31 1: *** check pending for WEBhook
2018.06.04 06:43:31 1: *** check pending for WEBtablet_192.168.178.203_52908
2018.06.04 06:43:31 1: *** check pending for WEBphone
2018.06.04 06:43:31 1: *** check pending for WEBtablet
2018.06.04 06:43:31 1: *** check pending for WEB
2018.06.04 06:43:31 1: *** check pending for WEBhook