[OBIS V2] - Jetzt auch mit SML-Unterstützung

Begonnen von Icinger, 08 April 2016, 19:54:44

Vorheriges Thema - Nächstes Thema

hdgucken

Zitat von: friesenjung am 05 Februar 2021, 22:28:55
nabend zusammen,

habs gerade ausgiebig getestet, leider ohne Erfolg.  :'(

keine Ahnung was da noch reinspielen könnte. Ich habe nochmal ein Log angehangen. Der Disconnect war bei 22:21:11.

VG

StromZ2 hat sich wieder verbunden, oder hast Du Ihn von Hand angestoßen ?

Gruß Thomas

ioT4db

also soll ich beim THZ Device auch mal mit Verbose 4 mitloggen? Hatte bis jetzt immer nur das OBIS-Dev auf Verbose.

Noch ne Kleinigkeit. Ich hab die letzte Version noch eingespielt und nun habe ich noch ein wohl "neues" Internal: CRC_Errors 2 oder hab ich das bis jetzt gekonnt übersehen?

BTW. Danke im Übrigen für Eure Mühen!!!
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

ioT4db

Zitat von: hdgucken am 05 Februar 2021, 22:43:40
StromZ2 hat sich wieder verbunden, oder hast Du Ihn von Hand angestoßen ?

Gruß Thomas

hi,

ja, manuell verbunden
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

gvzdus

Also, der Reihe nach:

  • Bitte richtiger Stop/Start von FHEM. Reload ist so ein Code-Refresher, es bleiben aber Daten erhalten, oder so
  • Dir ist klar: Per Default wird nur minütlich ein Reconnect versucht?
  • FHEM ist halbwegs aktuell? Ich arbeite mit irgendwas im Alter von ca. 7 Tagen
  • Was ist das "Nicht-OBIS-Device", das funktioniert, für ein Device?
  • Kannst Du uns die Devices noch mal kurz vorstellen? In welchem Intervall senden sie im "gesunden" Zustand?

ioT4db

Zitat von: gvzdus am 05 Februar 2021, 22:59:14
Also, der Reihe nach:

  • Bitte richtiger Stop/Start von FHEM. Reload ist so ein Code-Refresher, es bleiben aber Daten erhalten, oder so
  • Dir ist klar: Per Default wird nur minütlich ein Reconnect versucht?
  • FHEM ist halbwegs aktuell? Ich arbeite mit irgendwas im Alter von ca. 7 Tagen
  • Was ist das "Nicht-OBIS-Device", das funktioniert, für ein Device?
  • Kannst Du uns die Devices noch mal kurz vorstellen? In welchem Intervall senden sie im "gesunden" Zustand?

ok, also:


  • richtiger Start/Stop eben ausgeführt > getestet > gleiches Verhalten
  • ja, hab auch schon mehrere Minuten gewartet
  • FHEM ist aktuell (heut Nachmittag Update ausgeführt)
  • Nicht-OBIS-Device ist meine Wärmepumpe, die am gleichen Raspi mit ser2net hängt. das Modul ist das 00_THZ.pm von immi
  • Devices:

    • das NICHT-OBIS (THZ-Modul) pollt verschiedene readings (alle Minute oder 5 Min, je nach Reading
    • die beiden anderen sind die OBIS-Devs (StromZ1 und StromZ2) > je ein ISKRA MT681 Zweirichtungszähler mittels SML permanent Daten ausgelesen, also kein Polling. Dementsprechend habe ich auch kaum Attribute gesetzt (Device-spezifisch: channels, unitReadings; allgemeine Attr: event-on-change-reading, stateFormat, usw.)
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

hdgucken

Zitat von: friesenjung am 05 Februar 2021, 23:32:14
ok, also:


  • richtiger Start/Stop eben ausgeführt > getestet > gleiches Verhalten
  • ja, hab auch schon mehrere Minuten gewartet
  • FHEM ist aktuell (heut Nachmittag Update ausgeführt)
  • Nicht-OBIS-Device ist meine Wärmepumpe, die am gleichen Raspi mit ser2net hängt. das Modul ist das 00_THZ.pm von immi
  • Devices:

    • das NICHT-OBIS (THZ-Modul) pollt verschiedene readings (alle Minute oder 5 Min, je nach Reading
    • die beiden anderen sind die OBIS-Devs (StromZ1 und StromZ2) > je ein ISKRA MT681 Zweirichtungszähler mittels SML permanent Daten ausgelesen, also kein Polling. Dementsprechend habe ich auch kaum Attribute gesetzt (Device-spezifisch: channels, unitReadings; allgemeine Attr: event-on-change-reading, stateFormat, usw.)

versuch mal bitte pollingMode: on und interval: 30 z.B.

gvzdus

So, ich habe bei mir umgebaut auf ser2net.

Version: 3.5 (Raspian Default)
Config:
20001:raw:0::/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A106Q3OW-if00-port0:9600 NONE 1STOPBIT 8DATABITS


defmod auf meinen Stromzähler:
defmod MT175 OBIS 127.0.0.1:20001

Funktioniert. ser2net abgeschossen, neu gestartet. Reconnected sauber nach 60 Sekunden.
FHEM vorher noch einmal aktualisiert.

Außerdem habe ich herausgefunden, dass der Großmeister mit ser2net schon mal geflucht hat: https://forum.fhem.de/index.php?topic=54732.0

Beide Stromzähler sollten übrigens nach dem Disconnect und vor dem Reconnect unter "Internals" einen Eintrag "NEXT_OPEN
1612598162.3827" haben. Zeit natürlich variierend. Ist das der Fall?

Polling-Mode kann man ja probieren, ich mag den aber nicht. Mein nächster Versuchsaufbau wäre dann mit tcpdump, ob ein Connect-Versuch erfolgt oder nicht. Und dann Rudi zu fragen - falls Du (friesenjung) Durchhaltevermögen hast.

ioT4db

Zitat von: hdgucken am 06 Februar 2021, 00:37:12
versuch mal bitte pollingMode: on und interval: 30 z.B.

Moin,
hab ich probiert. Richtig gearbeitet hat der Polling Mode erst nach einem Fhem-Neustart (nur als RandInfo). Danach hat der PollingMode das gemacht was er sollte > alle 30 Sekunden einen Messwert "geholt".
Leider kommt die Verbindung nach einer Unterbrechung auch nicht wieder hoch. Hab mehrere Minuten gewartet.

VG
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

gvzdus

Okay, was ist mit dem "NEXT_OPEN"?
Kennst Du Dich mit "tcpdump" aus? Falls nicht: Die Pakete solltest Du mit
sudo tcpdump -n host 192.168.41.150 and port 20001
sehen können.
Kommt nach dem Disconnect noch *irgendwas*, vor allem 60 Sekunden nach dem Shutdown?

ioT4db

Zitat von: gvzdus am 06 Februar 2021, 09:04:32
...

Beide Stromzähler sollten übrigens nach dem Disconnect und vor dem Reconnect unter "Internals" einen Eintrag "NEXT_OPEN
1612598162.3827" haben. Zeit natürlich variierend. Ist das der Fall?

Polling-Mode kann man ja probieren, ich mag den aber nicht. Mein nächster Versuchsaufbau wäre dann mit tcpdump, ob ein Connect-Versuch erfolgt oder nicht. Und dann Rudi zu fragen - falls Du (friesenjung) Durchhaltevermögen hast.

Moin, also was sofort auffällt ist, dass ich dieses Internal "NEXT_OPEN" nicht habe! siehe Anhang...

Und ja, Durchhaltevermögen hab ich. Sowas fuchst mich, ich will wissen woran das liegt ;)

Vielleicht noch weitere Infos zu meinem System:
Wie in meiner Signatur ja schon ersichtlich, läuft mein FHEM im Docker auf einer Synology, was ja aber kein Grund für dieses Prob sein sollte, zumal andere Devs ja wieder konnekten.
Ansonsten ist die Version vom ser2net 3.5-2

VG
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

gvzdus

tcpdump kannst Du Dir sparen.

Wenn Du magst, lies die DevIo-Doku von Rudi:
Hat sich ein Gerät disconnected, wird periodisch die "ReadyFn"-Funktion des Moduls aufgerufen. Die sollte dann wieder DevIo_OpenDev aufrufen. NEXT_OPEN wird dort geschrieben. Frage ist für mich nun: Wird ReadyFN überhaupt aufgerufen? Bei mir passiert das mehrmals die Sekunde.

Könntest Du bitte in "meinem" Modul bei Zeile 656 die folgende Log3-Zeile einbauen?:

#####################################
sub OBIS_Ready($)
{
  my ($hash) = @_;
Log3 1, $hash->{NAME}, "ReadyFn for " . $hash->{NAME} . " called, state is " . $hash->{STATE};
  return DevIo_OpenDev($hash, 1, "OBIS_Init", $hash->{helper}{NETDEV} ? "OBIS_Callback" : undef)
                if($hash->{STATE} eq "disconnected");


Das produziert nach einem Disconnect 1 Minute lang massenhaft die ReadyFn-Zeile, dann kommt der Connect:
2021.02.06 13:16:56 MT175: ReadyFn for MT175 called, state is disconnected
2021.02.06 13:16:56 MT175: ReadyFn for MT175 called, state is disconnected
2021.02.06 13:16:58 MT175: ReadyFn for MT175 called, state is disconnected
2021.02.06 13:16:58 3: Init done
2021.02.06 13:16:58 1: 127.0.0.1:20001 reappeared (MT175)


Falls die Zeile (trotz Restart von FHEM) nicht kommt, ist das wohl Rudi-pflichtig.

hdgucken

Zitat von: friesenjung am 06 Februar 2021, 13:00:15
Moin,
hab ich probiert. Richtig gearbeitet hat der Polling Mode erst nach einem Fhem-Neustart (nur als RandInfo). Danach hat der PollingMode das gemacht was er sollte > alle 30 Sekunden einen Messwert "geholt".
Leider kommt die Verbindung nach einer Unterbrechung auch nicht wieder hoch. Hab mehrere Minuten gewartet.

VG

@Daniel: Ok, war einen Versuch wert, aber dachte ich mir schon, schade ;o)

Ich habe gerade bei mir festgestellt, wenn ich den Netzwerkstecker (Zaehler2) abziehe oder die NodeMCU(WLAN) ausschalte (Zaehler1), passiert einfach nichts !
Es bleiben alle Readings einfach auf dem letzten Stand stehen. Stecke ich den Stecker wieder ein oder schalte die NodeMCU wieder ein, bleibt das so,
kein reconnect oder ähnliches ! Heißt: DevIo bekommt nicht mit, dass eine Verbindung verloren geht und stellt demzufolge auch keine wieder her.
Mache ich einen fhem Restart, und lasse ein Gerät ohne Verbindung, meldet DevIo, dass keine Verbindung aufgebaut werden konnte und versucht nach 60 sec erneut zu verbinden.
In den Internals steht dann auch NEXT_OPEN ... Wenn das Gerät wieder verbunden wird, kommt nach spätestens nach 60 sec der Connect und alles läuft wieder.
Das schaue ich mir gleich genauer an ...

ioT4db

Zitat von: gvzdus am 06 Februar 2021, 13:24:07
tcpdump kannst Du Dir sparen.

ok,

hab die Zeile eingebaut und diese ReadyFn kommt. HIer ein Log-Auszug
2021.02.06 14:02:55.837 1:  192.168.41.150:20002 disconnected, waiting to reappear (StromZ2)
2021.02.06 14:02:55.847 1:  192.168.41.150:20010 disconnected, waiting to reappear (Mythz)
2021.02.06 14:02:55.860 StromZ1: ReadyFn for StromZ1 called, state is aktuell: 2308 W / rein: 2984 kWh / raus: 3183 kWh / disconnected
2021.02.06 14:02:55.860 1:  PERL WARNING: Argument "StromZ2" isn't numeric in numeric gt (>) at fhem.pl line 974.
2021.02.06 14:02:55.860 StromZ2: ReadyFn for StromZ2 called, state is aktuell: 2258 W / rein: 713 kWh / raus: 3410 kWh / disconnected
2021.02.06 14:02:55.871 StromZ1: ReadyFn for StromZ1 called, state is aktuell: 2308 W / rein: 2984 kWh / raus: 3183 kWh / disconnected
.
.
.
2021.02.06 14:03:56.005 StromZ1: ReadyFn for StromZ1 called, state is aktuell: 2308 W / rein: 2984 kWh / raus: 3183 kWh / disconnected
2021.02.06 14:03:56.005 StromZ2: ReadyFn for StromZ2 called, state is aktuell: 2258 W / rein: 713 kWh / raus: 3410 kWh / disconnected
2021.02.06 14:03:56.022 1:  192.168.41.150:20010 reappeared (Mythz)
2021.02.06 14:03:56.064 StromZ1: ReadyFn for StromZ1 called, state is aktuell: 2308 W / rein: 2984 kWh / raus: 3183 kWh / disconnected
2021.02.06 14:03:56.065 StromZ2: ReadyFn for StromZ2 called, state is aktuell: 2258 W / rein: 713 kWh / raus: 3410 kWh / disconnected
.
.
.
2021.02.06 14:05:47.375 StromZ2: ReadyFn for StromZ2 called, state is aktuell: 2258 W / rein: 713 kWh / raus: 3410 kWh / disconnected
2021.02.06 14:05:47.376 StromZ2: ReadyFn for StromZ2 called, state is aktuell: 2258 W / rein: 713 kWh / raus: 3410 kWh / disconnected
2021.02.06 14:05:50.254 3:  Opening StromZ2 device 192.168.41.150:20002
2021.02.06 14:05:50.264 3:  Init done
2021.02.06 14:05:50.265 3:  StromZ2 device opened


14:03:56 kommt die THZ wieder und am Ende dann wieder mein manueller Connect...

VG
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

hdgucken

#1078
Die ready function wird ständig durchlaufen, selbst wenn der Zähler verbunden ist ! Mein Log ist jetzt ca. 1km länger  ;)

2021.02.06 14:13:41 Zaehler2: ReadyFn for Zaehler2 called, state is erzeugt: 7473kWh, Leistung: 295W
2021.02.06 14:13:40 Zaehler2: ReadyFn for Zaehler2 called, state is erzeugt: 7473kWh, Leistung: 295W
2021.02.06 14:13:40 Zaehler2: ReadyFn for Zaehler2 called, state is erzeugt: 7473kWh, Leistung: 295W
2021.02.06 14:13:40 Zaehler2: ReadyFn for Zaehler2 called, state is erzeugt: 7473kWh, Leistung: 295W
2021.02.06 14:13:41 Zaehler2: ReadyFn for Zaehler2 called, state is erzeugt: 7473kWh, Leistung: 295W
2021.02.06 14:13:41 Zaehler2: ReadyFn for Zaehler2 called, state is erzeugt: 7473kWh, Leistung: 295W
2021.02.06 14:13:41 Zaehler2: ReadyFn for Zaehler2 called, state is erzeugt: 7473kWh, Leistung: 295W

usw.

DevIo kann natürlich kein "disconnected" erkennen, weil disconnected nicht im Status erscheint, selbst, wenn das Gerät getrennt wird.

ioT4db

uaaaah,

ich fass es nicht, entferne ich stateFormat, geht es!!!  :o


2021.02.06 14:15:59.621 1: 192.168.41.150:20010 reappeared (Mythz)
2021.02.06 14:15:59.633 StromZ1: ReadyFn for StromZ1 called, state is aktuell: 5264 W / rein: 2985 kWh / raus: 3183 kWh / disconnected
2021.02.06 14:15:59.636 3: Init done
2021.02.06 14:15:59.636 1: 192.168.41.150:20002 reappeared (StromZ2)


habe das stateFormat nur für Zähler2 entfernt...gibts das?
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50