Probleme beim Einbinden eines entfernten Signalduino über ser2net

Begonnen von hauwech, 13 April 2022, 12:44:35

Vorheriges Thema - Nächstes Thema

hauwech

Hallo zusammen,

ich habe Probleme, einen entfernten Signalduino via ser2net in mein fhem einzubinden.
Das bestehende Szenario:
Ich habe bisher 2 CULs, 1 Jeelink und 3 HMUART an funktechnisch günstige Standorte verteilt und ohne Probleme mit ser2net in fhem konfiguriert.
Mein NUC mit der fhem Instanz ist wegen des USB-Stromsensors "funkungünstig" im Zählerkasten verbaut.
Jetzt will ich für mein Poolthermometer (ein infactory NX-9192-675) noch einen Signalduino hinzufügen. Dazu habe ich zum Testen einen arbeitslosen alten Raspi aufgesetzt. Da ist ein neues Raspberry Pi OS Bullseye Lite drauf, Ser2net V. 4.3.3. Neuerdings wird ser2net nicht mehr mit *.conf, sondern mit *.yaml konfiguriert. Zum Test habe ich auf dem Raspi auch eine fhem Instanz installiert. Der Signalduino am Raspi ist in fhem mit:/dev/serial/by-id/usb-SHK_SIGNALduino_433-if00-port0@57600definiert und funktioniert dort auf Anhieb super. Das Poolthermometer wurde mit autocreate als CUL_TCM97001 device, model Prologue angelegt und meldet wie gewünscht Temperatur und batteryState.
Nun möchte ich die devices in meiner Prod fhem Instanz haben. Meine ser2net.yaml sieht so aus:
# This is a ser2net configuration file, tailored to be rather
# simple.
#
# Find detailed documentation in ser2net.yaml(5)
# A fully featured configuration file is in
# /usr/share/doc/ser2net/examples/ser2net.yaml.gz
#
# If you find your configuration more useful than this very simple
# one, please submit it as a bugreport

# define: &banner \r\nser2net port \p device \d [\B] (Debian GNU/Linux)\r\n\r\n

### signalduino
connection: &con03000
    accepter: tcp,3000
    options:
      kickolduser: true
    connector: serialdev,
               /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0,
               57600n81,local

Wenn ich jetzt versuche, den sduino in fhem zu definieren mit:define sduino SIGNALduino 192.168.xx.xx:3000 sehe ich im fhem Log:2022.04.13 10:57:00.997 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.017 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.018 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.032 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.048 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.049 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.063 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.078 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.080 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.093 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.111 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.112 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.125 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.140 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.142 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.155 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.170 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.172 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.185 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.200 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.202 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.215 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.312 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.313 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.354 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.369 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.371 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.384 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.399 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.400 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.413 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.428 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.430 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.446 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.462 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.463 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.476 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.492 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.493 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.506 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.522 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.523 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.536 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.552 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.554 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.567 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.583 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.585 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.598 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.614 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.615 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.628 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.644 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.646 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.659 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.674 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.675 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.688 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.704 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.705 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.718 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.734 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.735 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.748 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.764 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.765 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.778 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.794 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.795 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.808 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.824 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.826 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.839 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.857 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.858 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.871 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.886 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.888 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.901 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.917 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.918 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.931 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.946 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.948 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.961 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:01.977 1: sduino: DoInit, 192.168.xx.xx:3000
2022.04.13 10:57:01.978 1: 192.168.xx.xx:3000 reappeared (sduino)
2022.04.13 10:57:01.991 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:02.011 1: sduino: DoInit, 192.168.xx.xx:3000

Ich habe absichtlich mal eine Sekunde rauskopiert, daß man besser sieht: es werden pro Sekunde fast 90 events geschrieben.
Wenn ich jetzt das sduino device wieder lösche in fhem, um das log-flooding abzustellen, steht im fhem Log:
2022.04.13 10:57:16.390 1: 192.168.xx.xx:3000 disconnected, waiting to reappear (sduino)
2022.04.13 10:57:19.901 3: sduino: Connect, connect to http://192.168.xx.xx:3000 timed out
2022.04.13 10:57:19.906 0: Strange call for nonexistent sduino: ReadyFn
2022.04.13 10:57:19.907 1: stacktrace:
2022.04.13 10:57:19.909 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2022.04.13 10:57:19.910 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2022.04.13 10:57:19.911 1:     main::__ANON__                      called by fhem.pl (843)
2022.04.13 10:57:19.916 0: Strange call for nonexistent sduino: ReadyFn
2022.04.13 10:57:19.917 1: stacktrace:
2022.04.13 10:57:19.918 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2022.04.13 10:57:19.919 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2022.04.13 10:57:19.920 1:     main::__ANON__                      called by fhem.pl (843)
2022.04.13 10:57:19.928 0: Strange call for nonexistent sduino: ReadyFn
2022.04.13 10:57:19.929 1: stacktrace:
2022.04.13 10:57:19.930 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2022.04.13 10:57:19.931 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2022.04.13 10:57:19.932 1:     main::__ANON__                      called by fhem.pl (843)
2022.04.13 10:57:19.943 0: Strange call for nonexistent sduino: ReadyFn
2022.04.13 10:57:19.944 1: stacktrace:
2022.04.13 10:57:19.946 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2022.04.13 10:57:19.947 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2022.04.13 10:57:19.947 1:     main::__ANON__                      called by fhem.pl (843)
2022.04.13 10:57:19.959 0: Strange call for nonexistent sduino: ReadyFn

Das sind etwa 250 Zeilen pro Sekunde.
Fhem ist damit komplett abgeschossen. Es kommt erst nach zwei(!) reboots wieder hoch.

Die beiden CULs sind mit192.168.xx.xx:30xx 0000 definiert, der JeeLink ohne die 4 Nullen am Ende. Ich weiß nicht wofür die 4 Nullen stehen, kann das die Ursache des Problems sein? Im Wiki zum Signalduino sind diese 4 Nullen beim define jedenfalls nicht erwähnt.
Das Verhalten tritt auf, egal ob ich im Raspi-fhem den Signalduino open oder manuell "closed" habe, während ich das define via IP im Prod-fhem versuche.
Oder muß ich das sduino device im Raspi-fhem löschen, weil der serielle Port trotzdem blockiert wird?

Ich hatte den Signalduino auch schon an einem anderen Raspi (ohne fhem-Instanz), wo noch eine ältere ser2net mit alter Config läuft und ein funktionierender HMUART dranhängt. Der Effekt nach dem define des Signalduino via IP im Prod-fhem ist aber der Gleiche wie oben beschrieben.

Sorry für den langen Beitrag, ich wollte möglichst viele relevante Infos mitgeben.

Vielen Dank schon mal für's Lesen, vielleicht hat jemand den entscheidenden Tip. Ich möchte mein fhem ungern nochmal abschießen.

Gruß Roland
Fhem auf Intel NUC11TNKi5+M2 NVMe+32GB RAM mit Ubuntu 22.04 LTS

Beta-User

Etwas gestraffter Input:

Zitat von: hauwech am 13 April 2022, 12:44:35
Der Signalduino am Raspi ist in fhem mit:/dev/serial/by-id/usb-SHK_SIGNALduino_433-if00-port0@57600definiert und funktioniert dort auf Anhieb super.

# This is a ser2net configuration file, tailored to be rather
    connector: serialdev,
               /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0,
               57600n81,local

Wüßte nicht, warum ser2net den USB-Stick finden sollte, einen solchen gibt es nicht unter dieser Bezeichnung/Adresse...

Die vielen Log-Einträge kommen daher, dass FHEM prinzipiell versucht, "kaputte" Verbindungen möglichst schnell wieder aufzumachen. V.a., wenn Geräte über Netzwerk verbunden werden, ist "immer wenn FHEM Zeit hat" etwas kurz. Dann kann der betreffende Modulautor entweder einen timeout festlegen oder einen (Pseudo-) callback. Dazu müßte man aber wissen, welche Version da im Einsatz ist...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

Hi,

ich meine die Zeilen am Anfang der yaml sind notwendig
%YAML 1.1
---

die Zeilen haben bei mir gestört, allerdings nur auf einem alten PiB
    options:
      kickolduser: true

In Summe hat bei mir (anderer Fall) diese yaml funktioniert:
%YAML 1.1
---
# HM_MOD-RPI-PCB
connection: &con01
    accepter: tcp,4000
    connector: serialdev,
              /dev/ttyAMA0,
              115200n81,local


Du hast zwei unterschiedliche /dev/serial/by-id/ Pfade am Anfang, ich habe nicht verstanden ob das ein und derselbe sein soll?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

hauwech

Danke erstmal für die Hinweise. Ich hatte schon befürchtet, daß ich wieder ein Opfer der Betriebsblindheit wurde.
Der Eintrag in der ser2net.yaml stammt noch von einem Versuch mit dem Eigenbau Signalduino mit einem Arduino Nano mit CH340. Jetzt habe ich einen mit FTDI. Ich hatte nur die fhem-DEF angepaßt.
Ich teste gleich mal.

Übrigens: Weiß jemand, wo ser2net ein log hinschreibt? in /var/log ist jedenfalls nix.

Gruß Roland
Fhem auf Intel NUC11TNKi5+M2 NVMe+32GB RAM mit Ubuntu 22.04 LTS

Otto123

hier steht ganz unten alle Fehler gehen nach syslog https://man.archlinux.org/man/community/ser2net/ser2net.yaml.5.en

Um den Rest kann man sich ev. mit einer Admin connection selbst kümmern?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

hauwech

Vielen Dank für's mitkucken. Kaum macht man's richtig, geht's ;D
Und danke, Otto. Die Zeile mit dem Hinweis auf syslog hatte ich auch übersehen.

Ich ruf' gleich mal meinen Augenarzt an, ich habe wohl Probleme mit der visuellen Korrelation.  ;)

Danke und Gruß
Roland
Fhem auf Intel NUC11TNKi5+M2 NVMe+32GB RAM mit Ubuntu 22.04 LTS

Sidey

Hi,

ich habe gelesen dass es jetzt funktioniert, dennoch hier meine, funktionierende (vollständige) Konfiguration:


connection: &toSignalduinotcp
  accepter: tcp,45020
  enable: on
  connector: serialdev,/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9S3Z1H5-if00-port0,57600n81,local
  options:
    kickolduser: true



Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

hummeruli

Das gleiche Problem hatte ich auch. Ständiger Verbindungsabbruch.

Meine Lösung war kurz und schmerzlos!

Wemos D1
cc1101
Ein paar Drähte

Fertig der EspDuino.

Gestern noch eine Miniantenne für 868MHz dran, ein 3D-Gehäuse drum herum.

Alles läuft ohne einen Abbruch seit geraumer Zeit.

Gruß und schöne Ostern.

Uli
Beim Erstellen dieser Nachricht kamen weder Tiere zu Schaden, noch wurde Papier verschwendet. Alles von mir geschriebene ist biologisch abbaubar.


FHEM auf Debian Buster in einr Proxmox VM , LaCrosseGateway, AVR-NET-IO, Homematic, Alexa, S300TH, Signalduino..........

hauwech

Zitat von: Sidey am 13 April 2022, 21:49:46
Hi,

ich habe gelesen dass es jetzt funktioniert, dennoch hier meine, funktionierende (vollständige) Konfiguration:


connection: &toSignalduinotcp
  accepter: tcp,45020
  enable: on
  connector: serialdev,/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9S3Z1H5-if00-port0,57600n81,local
  options:
    kickolduser: true

Grüße Sidey
Danke Dir, die Option "enable: on" hatte ich noch nicht gesehen, scheint auch sonst niemand zu haben. Aber wenn's funktioniert, ist alles gut.

Mit einem Wemos D1 hatte ich auch experimentiert. Der stand zwar auf "opened" hatte aber nix empfangen. Vielleicht hänge ich den nochmal dran. Wenn ich mich recht entsinne, stand dessen Frequenz nach dem init auf 433.00 anstatt 433.92. Aber mein anderer funktioniert ja jetzt. Dummerweise hatte ich in der ser2net.yaml vergessen, die USB-ID von dem CH340 auf den neuen FTDI anzupassen, was die geschilderten Probleme verursacht hatte.

Danke und Gruß
Roland
Fhem auf Intel NUC11TNKi5+M2 NVMe+32GB RAM mit Ubuntu 22.04 LTS