FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: reibuehl am 10 Juli 2021, 12:34:15

Titel: Gemeinsames Internal aller Devices die vom Signalduino empfangen werden?
Beitrag von: reibuehl am 10 Juli 2021, 12:34:15
Hallo,

ist es möglich, das Devices, die von einem Signalduino empfangen und per autocreate angelegt werden, irgendein gemeinsames Internal erhalten, über die man sie filtern kann?
Je nach Typ gibt es mal ein LastIODev=<signalduino dev> (SD_WS07), ein IODev=<signalduino dev> (IT) oder auch gar nichts (CUL_TCM97001), was auf das IO Device hindeutet.
Kann man das irgendwie lokal per Konfiguration hin bekommen oder geht das nur durch die Entwickler der jeweiligen Module?

Gruß,
Reiner
Titel: Antw:Gemeinsames Internal aller Devices die vom Signalduino empfangen werden?
Beitrag von: rudolfkoenig am 10 Juli 2021, 13:09:21
Wenn das IO-Modul die Framework Funktion Dispatch() verwendet, um die logischen Module zu informieren, dann wird das LASTInputDev Internal vom Framework eingetragen, zusaetzlich zu <IODEVName>_TIME und <IODEVName>_MSGCNT.
Titel: Antw:Gemeinsames Internal aller Devices die vom Signalduino empfangen werden?
Beitrag von: reibuehl am 10 Juli 2021, 13:17:09
Das 00_SIGNALduino.pm verwendet Dispatch(). Die logischen Module scheinen das aber nicht oder nur teilweise auszuwerten.
Titel: Antw:Gemeinsames Internal aller Devices die vom Signalduino empfangen werden?
Beitrag von: reibuehl am 10 Juli 2021, 13:24:48
Gibt es ein Gegenstück zu Dispatch() in den logischen Modulen? Ich hab mir mal den Source von den zwei Beispielen angesehen, die zumindest eines der Internals setzen, konnte aber im Modul selbst keinen Code finden, der das explizit macht...
In 14_SD_WS07.pm kommt LastIODev nirgends vor, obwohl das Internal bei einem Device dieses Moduls bei mir gesetzt ist.
Titel: Antw:Gemeinsames Internal aller Devices die vom Signalduino empfangen werden?
Beitrag von: rudolfkoenig am 11 Juli 2021, 13:17:53
Zitat
Gibt es ein Gegenstück zu Dispatch() in den logischen Modulen?
Ja, IOWrite(), und sollte fuer dieses Problem irrelevant sein.

Die erwaehnten Internals werden vom Framework (vulgo fhem.pl, in Dispatch) gesetzt, nicht von den Modulen.
Titel: Antw:Gemeinsames Internal aller Devices die vom Signalduino empfangen werden?
Beitrag von: reibuehl am 11 Juli 2021, 13:23:39
Dann kann ich mir nicht erklären, warum die Internals nicht gesetzt werden... das 00_SIGNALduino.pm Modul ruft Dispatch() innerhalb von SIGNALduno_Dispatch() auf soweit ich das verstehe.
Titel: Antw:Gemeinsames Internal aller Devices die vom Signalduino empfangen werden?
Beitrag von: rudolfkoenig am 11 Juli 2021, 13:44:51
Zitat
das 00_SIGNALduino.pm Modul ruft Dispatch() innerhalb von SIGNALduno_Dispatch() auf soweit ich das verstehe
Ja, aber nur wenn diverse Bedingungen zutreffen ($DSMgleich, SIGNALduino_getProtoProp($id,'dispatchequals',0) eq 'true'), usw.).
Ob das in deinem Fall relevant ist, weiss ich nicht. In bestimmten Faellen wird auf Loglevel 4 eine Meldung ausgegeben, wenn Dispatch nicht aufgerufen wurde.