Ankündigung: Update auf MySensors 2.0 API - alive usw. geändert!

Begonnen von Beta-User, 04 Januar 2019, 13:05:24

Vorheriges Thema - Nächstes Thema

Beta-User

Hallo zusammen,

nach längerer Vorbereitung in diesem Thread, werden mit dem morgigen Update auch Neuerungen bei MySensors verteilt. Es werden dann alle features unterstützt, die in der Version 2.0 der MySensors API enthalten sind.

Da manches anders ist, ist ggf. "action required", man kann die alte Funktionalität aber übergangsweise bei Bedarf noch recht einfach wieder aktivieren. Wie, steht hier:

- Benennung des battery-Readings.
Entsprechend dem Vorschlag im Developer-Bereich ist der Name dieses Readings zukünftig "batteryPercent"
Wer unbedingt den alten Namen benötigt: Zeile 707 wieder aktivieren (# entfernen) oder ein userreading anlegen (letzteres wäre die Empfehlung!)

- heartbeat
-- Sendet eine Node ein heartbeat(), wird das alive-Reading aktualisiert. Es wird empfohlen, beim Programmieren der Nodes, die auf "alive" überwacht werden sollen, darauf zu achten, dass diese einen heartbeat, einen Batterie-Wert (oder smartsleep-Signal) senden (s.u.).
-- Es gibt ein neues "get", mit dem eine Node auch aktiv "angepingt" werden kann - damit kann man also prüfen, ob die Kommunikation von und zu einer Node derzeit steht.
-- Das ist nicht-triggernd realisiert, man muß also den Browser-refresh ausführen, um den aktualisierten Zeitstempel zu sehen.
-- Einschränkung: Macht man das ganze über die Kommandozeile, erscheint ein leeres Dialogfeld. Wenn ich dazu komme, baue ich das noch um nach dem Muster von MQTT2_DEVICE; da geht das...
Wer das alte "alive"-Verhalten bei updates von allen Readings benötigt: Zeile 679 reaktivieren. Für Nodes, die dauerhaft per Funk zu erreichen sind und ein normales "sleep" verwenden, kann man bei Bedarf auch zyklisch einen heartbeat-Request ("get <node> heartbeat") senden.

Wichtig: Im Moment gehe ich davon aus, dass zwar alles funktioniert, der code aber noch an der einen oder anderen Stelle zu optimieren sein wird. Wer also nicht "ständig" nach updates die oben genannten Änderungen durchführen will, sollte nach dem morgigen update und Durchführung der für ihn relevanten Änderungen dann MYSENSORS_DEVICE vom update ausnehmen.

- OTA-Funktionalität
-- Status ist eher experimentell, auch wenn derzeit keine größeren Probleme bekannt sind!
-- Unterstützt werden sowohl der MYSBootloader (nur nRF-Nodes) wie der OptiBoot-Bootloader (alle Transportlayer).
-- Zur Konfiguration siehe die Commandref.
Danke an @Wallmeier für den Code dazu!

- Reading-Namen
Kommentare bei der Presentation können in die Reading-Namen eingebaut werden, das ganze wird durch ein "get" angestoßen.
Vorausgesetzt wird, dass die Node überhaupt einen entsprechenden Kommentar bei der Presentation sendet, der in den Readingnamen einfließen kann...

- smartsleep
-- Status wach/schlafend ist sichtbar
-- Es können auch Sendebefehle an schlafende Nodes ausgeliefert werden; dies setzt voraus, dass im jeweiligen Sketch statt sleep() smartSleep() verwendet wird.   
Hinweise und Einschränkung: bei Nicht-ACK-Nachrichten ist nicht auszuschließen, dass Messages verloren gehen, gerade bei solchen Nodes, die über einen Repeater angesprochen werden. Bei Problemen sollte zunächst die Zeit bis zum Einschlafen der Nodes verlängert werden (MY_SMART_SLEEP_WAIT_DURATION_MS).

- RSSI
-- erfordert aktive Anfrage via neuem "get" oder und entsprechenden Code auf der Node (MY_SIGNAL_REPORT_ENABLED)
-- macht nur bei RFM-Nodes Sinn (soweit bekannt; nRF liefert uu. einen kalkulierten Wert)
-- leeres Dialogfeld, wenn über FHEMWEB angestoßen (s.o.)
Hinweis: Es wird eine Art Schleife aufgerufen, die alle möglichen Werte nacheinander abfragt; gehen zwischenzeitlich Nachrichten verloren, muß das neu angestoßen werden, sonst gibt es ein internal, das anzeigt, auf welcher Stufe der Prozess gerade steht. Ist der länger unverändert, ist die Anforderung im off gelandet...

- MY_SPECIAL_DEBUG kann genutzt werden
Realisiert als Abfrageschleife wie RSSI, s.o., erfordert ebenfalls entsprechenden Code auf der Node.

Grüße und viel Freude mit den neuen features,

Beta-User

Changelog:
- Hinweis auf Batteriewert für alive-Refresh ergänzt
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Ranseyer

FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Beta-User

Zitat von: Ranseyer am 05 Januar 2019, 13:15:12
Danke dir für den Einsatz !
Danke für die Rückmeldung, gerne geschehen!

Eine Anregung noch für die Entwicklung zukünftiger Platinen: Für RFM etc. wäre es super, wenn am SPI-Bus noch Platz wäre für Speicherbausteine... Die Dinger kosten als SOP8 so um die 40ct in China. Vielleicht kann jemand, der sowas im Einsatz hat mal melden, welche Type er verwendet?

Ich habe W25Q32B-Module daliegen, aber bisher nichts in die Richtung getestet, hat lange genug gedauert, bis das mit MYSBootloader mal was geworden ist...




Dann vielleicht mal als Ideensammlung und Ausblick - ohne Anspruch auf Vollständigkeit:
An sich sollte MYSENSORS die setExtensions nutzen. Allerdings sehe ich bei meinen Nodes keine entsprechenden Optionen. Vielleicht kann mich jemand aufschlauben, was da noch zu machen ist, damit das wirklich funktioniert - neben on-for-timer fände ich ein paar templates nett (für attrTemplate), um für die Standard-Sketche nettere Darstellungen "auf die Schnelle" bereitzustellen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Ranseyer

Zitateine Anregung noch für die Entwicklung zukünftiger Platinen: Für RFM etc. wäre es super, wenn am SPI-Bus noch Platz wäre für Speicherbausteine...

Gute Idee. In den SMD-Varianten von Brasletti ist das schon so. (und in 1-2 Varianten von mir)
Ich versuche dran zu denken...
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

The-Holgi

Hallo,
erstmal Danke für das update.
Mir ist aufgefallen, dass perfmon jede Minute eine Meldung ausgibt wenn das GW nicht erreichbar bzw in nicht in "Betrieb" ist.
Stellt man im device disconnect ein, sind die Meldungen weg.
2019.01.05 17:55:52.007 1: Perfmon: possible freeze starting at 17:55:49, delay is 3.007
2019.01.05 17:56:55.031 1: Perfmon: possible freeze starting at 17:56:53, delay is 2.031
2019.01.05 17:57:58.059 1: Perfmon: possible freeze starting at 17:57:56, delay is 2.059

Da ich gerade erst mit Mysensors angefangen habe, kann ich nicht sagen, ob das mit der "alten" Version auch schon war.

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

Beta-User

Zitat von: The-Holgi am 05 Januar 2019, 18:13:26
Da ich gerade erst mit Mysensors angefangen habe, kann ich nicht sagen, ob das mit der "alten" Version auch schon war.
Bin ziemlich sicher, dass das wenn, dann entweder aus 00_MYSENSORS kommt oder aus DevIO (maW: bereits länger so ist und scheinbar bisher in der Praxis kein Problem). Muß ich mir anschauen, kann aber dauern.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

The-Holgi

Hallo,
ist ja auch kein großes Problem.
Wollte nur drauf hinweisen.

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

Markus.

Hallo Zusammen,

Habe meine Nodes jetzt von NrF auf RFM69 868 umgebaut und mit der neuen Lib geflahst.
Bis auf einen habe ich den Standard Sketch verwendet. Auf dem letzten habe ich dann MY_SIGNAL_REPORT_ENABLED und
MY_SPECIAL_DEBUG gesetzt. Dazu muss ich sagen das mein seirelles RFM Gateway noch auf Version 2.1 geflasht ist.
Bekomme aber kein RSSI zurück wenn ich ein get daruf mache. Kann es sein das es an der älteren Firmware des Gateways liegt? Oder muss ich da noch was berücksichtigen im Sketch?

Gruß

Markus


Beta-User

Moin,

eigentlich sollten die beiden Angaben so genügen, und die Features sollten auch mit einem beliebigen 2.x-GW funktionieren.

ABER: die Ausgabe müßte ich noch auf asynchrones get umstellen (habe aber noch keinen Plan, wie das genau ginge) - bisher bleibt das Dialogfeld immer leer, selbst wenn tatsächlich Werte ankommen (steht hoffentlich auch so in der cref und den Ankündigungen dazu). Und das erste Mal sieht man die entsprechenden Readings auch erst, wenn man die Seite neu lädt.

Und bei "schlafenden" geht es nur, wenn smartSleep aktiviert ist, sonst geht die Anfrage typischerweise ins (zeitliche) nirgendwo. Bitte dazu ggf. mehr Infos.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Markus.

#9
also Smartsleep habe ich am ende des Loops aktiviert..


//sendHeartbeat();
//sleep(SLEEP_TIME);
smartSleep(SLEEP_TIME);

Die Sleeptime habe ich auf 5 Minuten bei meinen Batterienodes.
"Beisst" sich eigentlich My_Debug und My_Special_Debug im Define?


#define MY_DEBUG
#define MY_SPECIAL_DEBUG
#define MY_SIGNAL_REPORT_ENABLED

// Enable and select radio type attached
  #define MY_RADIO_RFM69
#define MY_RFM69_FREQUENCY RFM69_868MHZ

#define MY_BAUD_RATE 38400
#define MY_NODE_ID 110



Gruß

Markus

Beta-User

Hmm,

ein paar Anmerkungen/Fragen:
- sprechen GW und Node grundsätzlich miteinander? (evtl. gab es da Änderungen im Treiber für RFM69, aus der sich Inkompabilitäten beim Funk ergeben). Also: Presentation kommt und ggf. Meßdaten/Infos über den Schlafzustand?
- Die untersch. DEBUG-Optionen sind m.E. was unterschiedliches und verursachen keine Konflikte
- Mit welcher Freq. läuft der Arduino? Ggf. geht die Anfrage auch deswegen ins Leere, weil der Arduino sich schneller wieder schlafen legt als gedacht (500UL is der default-Wert, müßte auch in der cref stehen).
- updates zu den Werten kommen erst, wenn der Arduino aufwacht; ggf. die Seite danach erst neu laden; ggf. zieht sich das sogar über mehrere Perioden (DEBUG-Info insbes.).

Für erste Tests würde ich erst mal ohne (smart)sleep rangehen, (wait müßte funktionieren), und dann nach und nach alles austesten, ggf. erst mal mit kürzeren Intervallen und Beobachtung der seriellen Konsole. Ich mußte auch erst mal ein Gefühl dafür entwickeln, wie was zusammenhängt, das dauert nach meiner Erfahrung einfach ein wenig...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Markus.

ja Gateway und node reden miteinander, die Daten kommen ja auch alle 5 Minuten sauber in FHEM rein.
Ich werde das mal austesten.

Gruß

Markus

Markus.

#12
Coole Sache :-)
Also bei mir sieht es nun wie folgt aus...

2019-02-23 06:49:01   R_RSSI_to_Parent -61
     2019-02-22 20:27:44   R_TX_Powerlevel_Pct -100
     2019-02-22 20:27:45   R_Uplink_Quality -245
     2019-02-22 19:56:05   SKETCH_NAME     Temperature Sensor
     2019-02-22 19:56:05   SKETCH_VERSION  1.0
     2019-02-23 06:59:35   XDBG_CPU_FREQUENCY 85
     2019-02-23 07:04:51   XDBG_CPU_VOLTAGE 3473
     2019-02-23 07:10:07   XDBG_FREE_MEMORY 1257
     2019-02-23 07:15:22   batteryPercent  83
     2019-02-22 19:56:05   parentId        0
     2019-02-23 07:15:23   state           asleep
     2019-02-23 07:15:22   temperature     23.9
     2019-02-23 07:15:22   voltage5        3.43


Ob die Werte, nicht die eigentlichen Sensorwerte, plausibel sind kann ich im Moment noch nicht beurteilen;-)
Beim GET RSSI wird der Wert auch beim nächsten "Aufwachen" übertragen. Nur wann RX_Uplink_Quality oder RX_TX_Powerlevel übertragen wird blicke ich noch nicht so ganz.

Gruß

Markus




Beta-User

Zitat von: Markus. am 23 Februar 2019, 06:57:46
Coole Sache :-)
:)
Das hört man doch gerne 8) .

Also: Übertragen wird nur auf Anfrage - dazu braucht man per default jeweils einen "get"-Request (ob man das vom Sketch aus auch anders lösen könnte, kann ich nicht sagen, geht aber vermutlich auch).

Da der Request erst an der Node ankommen muß, wird er bei smartSleep-Nodes gequeued (sonst weiß das Modul das ja nicht), und vor dem nächsten Einschlafen versendet (die smartSleep-Nodes melden das, warten kurz und gehen dann erst richtig schlafen).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

Kurzer update:
Aufgrund einer Anfrage im MySensors-Forum gibt's anbei eine Testversion.

Die sollte eigentlich auch fehlerfrei laufen, enthält aber folgende Änderungen zu smartSleep:
- Wird was gesendet, wenn die node nicht schläft, wird gleich die ganze Queue ebenfalls versendet und nicht mehr auf die PRE_SLEEP_NOTIFICATION gewartet.
- kommt eine heartbeat-Message, sollte ebenfalls die Queue direkt versendet werden. Das letztere kann man nutzen, um Empfangsbereitschaft in der loop zu signalisieren (an sich reicht ja eine smartSleep-Message, um den alive-Status zu aktualisieren).

Wäre nett, wenn ein paar Leute Rückmeldung geben könnten, ob das soweit fehlerfrei läuft, ich habe aktuell keine Node im Einsatz, die smartSleep nutzt, und bei den normalen Nodes scheinen keine Probleme aufzutreten.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

Zitat von: Beta-User am 11 März 2019, 22:00:06
Wäre nett, wenn ein paar Leute Rückmeldung geben könnten, ob das soweit fehlerfrei läuft, ich habe aktuell keine Node im Einsatz, die smartSleep nutzt, und bei den normalen Nodes scheinen keine Probleme aufzutreten.
Ein download?!?

Kein Interesse vorhanden oder volles Vertrauen? (Zur Beruhigung: läuft bei mir seit vor dem Publish hier ohne erkennbare Probleme...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

PeMue

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

alru

Zitat von: Beta-User am 15 März 2019, 10:20:51
Ein download?!?
Hab derzeit keinen Anwendungsfall, den müsste ich mir erst konstruieren. Das passt zeitlich allerdings derzeit nicht.
Werde es bei Gelegenheit aber installieren und regressiv testen.

...nicht verzagen!!!
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)

tmandel

Danke für deinen Patch. Bei mir laufen zumindest auch die vorhandenen Nodes sauber durch.
Mein Smartsleep Node liegt noch auf dem Schreibtisch und wartet darauf in die Ikea Stranne Lampe "gehackt" zu werden.
Das abbrechen der SmartSleep Schleife, wenn nach I_PRE_SLEEP_NOTIFICATION ein Einschaltbefehl kommt läuft auch sauber durch.

Nachts wenn die Lampe aus ist, sinkt die Leistung auf 0,15W durch Smartsleep (ohne waren es ca. 0,8W).
Das macht ca. 1,70€ pro Jahr, was nicht viel ist. Aber die Anzahl meiner Nodes wächst.

Beta-User

Na immerhin ein paar Rückmeldungen, Danke ;D ;D ;D .

Ich denke, ich werde das einfach ausrollen :P

Es gibt mindestens einen, der auch keine Probleme hat bzw. es im Testbetrieb hilfreich findet - und die Erweiterungen betreffen eh' smartSleep(), das Risiko, dass was danebengeht, ist also sehr begrenzt...

Zur Info:
Im Moment beschäftigt mich das Thema SetExtensions/AttrTemplate etwas im Zusammenhang mit MySensors, das würde ich gerne wieder zum Laufen bringen mit "on-for-timer" usw.. Ich hatte zu SetExtensions auch mal einen Thread angefangen, aber keine Rückmeldung erhalten. Geht darum ob jemand was dazu sagen kann, ob das jemals funktioniert hat und wenn ja, seit wann es nicht mehr funktioniert. Das würde mich nach wie vor noch interessieren, ich selbst habe das @MySensors nie genutzt ;) .

Jetzt wäre es m.E. eine schöne Sache, die neuen Features (auch mit mehreren Icons usw. ohne Perl-Code) wenigstens für ein paar Beispiele aus dem MySensors-Baukasten bereitzustellen, daher: Wer eine Idee hat, was da anzupacken ist: her damit...

Ich will das aber nach Möglichkeit dann nicht mit dem smartSleep-Ergänzungscode mischen.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Moin,
ich habe aktuell das Problem, dass der Status nicht auf Alive wechelt.
Mein Mysensors Sketch beinhaltet den sendHeartbeat() befehl und dieser wird regelmäßig ausgeführt (alle 5 minuten).
Die Temperaturwerte kommen auch alle 5 minuten.
In FHEM werden die Temperaturen aktualisiert, state bleibt dead.
Ich habe mal verbose auf 5 gestellt und festgestellt, dass kein Heartbeat zu finden ist. Daher schließe ich daraus, dass Mysensors den heartbeat nicht sendet.
Nur was mache ich falsch?
Ich verwende einen Nano mit Ethernet schnittstelle als Gateway, an dem auch die Temperatursensoren hängen.
Können etwa nur die Nodes (ich habe keine Nodes) einen heartbeat senden?
Oder muss in FHEM ein reading hinzugefügt werden? Ein heartbeat-reading gibt es jedenfalls nicht im device.
Außer "sendHeartbeat();" habe ich am Mysensors Sketch nichts hinzugefügt, was mit heartbeat zu tun hat.

Vielen Dank schon mal.
LG

Beta-User

Hm, also:
Ein GW ist immer auch eine Node (MYSENSOR_0). Wenn in der loop() ein sendHeartbeat() drin ist, sollte der also auch in FHEM ankommen. Das Problem mit GW's ist halt, dass für mehrere GW's nur ein MYSENSOR_0 exisitert, in den alles wandert, was von irgend einem GW kommt.

Was ich mir im Moment denken könnte: die GW-Messages sind auch dazu da, um zu prüfen, ob ein reconnect sinnvoll ist; könnte also sein, dass der heartbeat von einem GW nie im GW-Code ankommt; wenn das so ist, könnte man das vermutlich schon ändern, aber ob es Sinn macht? An sich würde ich - wegen dieser Vermischung aller Informationen - immer empfehlen, die GW- und Nodefunktionalität zu trennen.

Muß ich mir ansehen, kann aber dauern. Einstweilen kannst du die eine Zeile wieder aktivieren (alive bei jeder Reading-Aktualisierung), wie im Eingangspost beschrieben.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Vielen Dank für die super schnelle Antwort.
Ich habe die Zeile 683 reaktiviert. Alive geht erstmal wieder.
Wäre natürlich klasse wenn du in den Tiefen des GW-Codes was finden würdest.
LG

Beta-User

Zitat von: SirBen am 25 März 2019, 20:07:19
Wäre natürlich klasse wenn du in den Tiefen des GW-Codes was finden würdest.
Yup, die heartbeat-messages für die "0" werden anders behandelt.
Vorschlag: das GW bekommt ein weiteres setzbares Attribut ("forwardGWHeartbeat:0,1"). Ist das gesetzt, wird der heartbeat zusätzlich auch an "MYSENSOR_0" weitergegeben?

(Aber nochmal: eigentlich ist es keine sooo tolle Idee, in FHEM die Node 0 zu strapazieren...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

ZitatVorschlag: das GW bekommt ein weiteres setzbares Attribut ("forwardGWHeartbeat:0,1"). Ist das gesetzt, wird der heartbeat zusätzlich auch an "MYSENSOR_0" weitergegeben?
Damit wäre ich mehr als zufrieden. Ein sehr guter Vorschlag.

Beta-User

...kann aber etwas dauern mit dem heartbeat, und wie gesagt, bei mehreren GW's hört der "Spaß" ziemlich bald auf...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Oder wäre es einfacher ein Attribut hinzuzufügen welches den die alte Alive Funktion wieder aktiviert?
Z.B. AliveOnUpdateReading:0,1?

Beta-User

@all:
Bin noch nicht sicher, aber nach der Diskussion mit Rudi die Tage zu SetExtensions neige ich dazu, eventuell die alive-Geschichte aus dem "state" in das Reading "heartbeat" zu verlagern. Das böte vielleicht die Möglichkeit, EIN schaltbares Reading für state zu "verwenden" und für dieses dann "on-for-timer" usw. bereitzustellen. Für mehrkanalige müßte man weiter auf ReadingsProxy & Co ausweichen, aber z.B. dimmbare Lampen wären so ggf. einfacher zu handhaben.
Vielleicht verratet ihr mir eure eine Meinung dazu? Das wäre ein größerer Aufwand, den ich nur unternehmen würde, wenn es a) Leute gibt, die das gut finden und b) nicht zu viele, die das nicht gut fänden...

@SirBen
Das Attribut wäre vielleicht einfacher, aber in jedem Fall "kostspieliger", daher hatte ich diese Option bereits bei der Auslieferung der Aktualisierung verworfen.
Im Moment habe ich noch eine andere, weitergehende Idee:
Ein "mapNode0"-Attribut.
Damit könnte man vielleicht sogar die Readings jeder GW-Node separat halten... Ist aber evtl. auch "kostspielig", muß ich mir ansehen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

ZitatIm Moment habe ich noch eine andere, weitergehende Idee:
Ein "mapNode0"-Attribut.
Damit könnte man vielleicht sogar die Readings jeder GW-Node separat halten... Ist aber evtl. auch "kostspielig", muß ich mir ansehen...

Klingt auch seht gut.
Würde das bedeuten, dass alle Readings von der MYSENSOR_0 in ein extra Reading gemappt werden? Oder ein extra Device?

Was meinst du mit "kostspielig"?

ZitatVielleicht verratet ihr mir eure eine Meinung dazu? Das wäre ein größerer Aufwand, den ich nur unternehmen würde, wenn es a) Leute gibt, die das gut finden und b) nicht zu viele, die das nicht gut fänden...
Ein heartbeat reading würde ich gut finden. Es sei denn das würde trotzdem nicht beim Node0 funktionieren  ;)

Beta-User

@SirBen,
ich nehme mal an, du magst den Tester spielen...

Anbei eine etwas erweiterte Version vom IO-Modul. Gibt da ein neues Attribut mapNode0Id, bitte nicht irritieren lassen vom jetzigen Format der auswählbaren Optionen, dieses am GW einfach auf 0 setzen sollte genügen.

Danach sollte der MYSENSOR_0 (timeoutAlive sinnvoll gesetzt) sich "normal" verhalten; du brauchst auch im GW-Sketch keine extra heartbeat-Sendeanweisung, für GW's fordert der Code in 00_MYSENSORS sowieso regelmäßig (alle 5 Min oder so) einen an.



Kostspielig meint: es macht einen Unterschied, ob man ein Reading bei jeder anderen Reading-Aktualisierung mit pflegt oder das nur auf bestimmte Messages begrenzt.



Die Idee mit dem Mapping will sagen: Neues Device, in dem dann (exklusiv) alle Infos landen, die diese GW-Node betreffen; MYSENSOR_0 bliebe dann z.B. einem anderen GW überlassen.
So könnte man mehrere "aktive" GW's haben (sonst landet halt alles in der einen Node, und man kann nur eine Node steuern, also irgendwas anschalten oder Informationen hinsenden).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

@Beta-User
Natürlich stelle ich mich als Tester zur Verfügung.  ;)
Habe die 00_MYSENSORS.pm überschrieben. Jetzt erhalte ich folgende Fehlermeldung in MYSENSOR_0:
jquery.min.js line 2:
Error: Syntax error, unrecognized expression: a[name=mapReadingType_\.+]
Das Attribut mapNode0Id habe ich nicht gefunden.
Muss ich noch mehr machen außer die .pm zu überschreiben?

Weitere Tests kann ich morgen vormittag vornehmen, muss gleich zur Arbeit.

Beta-User

Ähm, doofe Frage: Welches Modul hast du überschrieben?

Das von heute morgen sollte das gleichnamige IO-Modul ersetzen, anschließend sollte dann auch wieder die Zeile in 10_MYSENSORS_DEVICE.pm wieder deaktiviert werden, sonst sieht man keine Änderung.

Und das Attribut sollte dann am Gateway erscheinen, nicht an der Node, der Code von 10_... ist ja "unverändert" (so funktionierte das jedenfalls bei meinem Test heute morgen).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Ah, die Zeile in der 10_MYSENSORS habe ich nicht wieder deaktiviert. Überschrieben habe ich natürlich die gleichnamige Datei 00_MYSENSORS.
Vielleicht schaffe ich das ja heute Abend noch auszuprobieren. Ansonsten morgen früh.

ZitatDie Idee mit dem Mapping will sagen: Neues Device, in dem dann (exklusiv) alle Infos landen, die diese GW-Node betreffen; MYSENSOR_0 bliebe dann z.B. einem anderen GW überlassen.
So könnte man mehrere "aktive" GW's haben (sonst landet halt alles in der einen Node, und man kann nur eine Node steuern, also irgendwas anschalten oder Informationen hinsenden).
Ich hatte vor ein paar Wochen zum testen einen zweiten GW ins Netzwerk eingebunden. Hatte natürlich eine andere IP und MAC Adresse. In FHEM habe ich das zweite GW manuell angelegt und es MYSENSOR_1 genannt. Die Readings kamen von beiden GWs sauber getrennt an. Habe natürlich darauf geachtet, dass bei beiden GWs die Child_IDs einzigartig sind. Ich konnte sogar Werte an die jeweiligen GWs senden. Auch hier wieder auf die Child_IDs geachtet.
Wäre das nicht schon die Funktion des Mappings?
Ist natürlich recht umständlich und du würdest bestimmt davon abraten... ;D

Beta-User

Hmm,

klingt eventuell nach einem interessanten Ansatz, vielleicht geht das alles einfacher als ich dachte (und mit optionaler "Doppelverwendung" von ChildIDs). Kannst du mal lists von deinen 4 Geräten (2 GW's, 2 Nodes) zeigen?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Hier die List von MYSENSOR_0:
Internals:
   DEF        0
   FUUID      5c850f3f-f33f-2b06-4f48-5915a744b62b080b
   IODev      MySensorsGateway
   NAME       MYSENSOR_0
   NR         73
   STATE      alive
   TYPE       MYSENSORS_DEVICE
   ack        0
   protocol   2.3.1
   radioId    0
   repeater   0
   timeoutAlive 605
   version    2.3.1
   Helper:
     DBLOG:
       humidity1:
         TH_DbLog_Kind1:
           TIME       1553806321.0515
           VALUE      44.0
       humidity10:
         TH_DbLog_Kind1:
           TIME       1553806321.23268
           VALUE      47.7
         TH_DbLog_Schlafzimmer:
           TIME       1553806321.23715
           VALUE      47.7
       humidity13:
         TH_DbLog_Badezimmer:
           TIME       1553806321.29488
           VALUE      46.2
         TH_DbLog_Kind1:
           TIME       1553806321.29744
           VALUE      46.2
       humidity4:
         TH_DbLog_Kind2:
           TIME       1553806321.11838
           VALUE      45.9
       humidity7:
         TH_DbLog_Kind3:
           TIME       1553806321.17723
           VALUE      48.1
       status12:
         TH_DbLog_Schlafzimmer:
           TIME       1553806321.21789
           VALUE      off
       status15:
         TH_DbLog_Badezimmer:
           TIME       1553806321.27698
           VALUE      on
       status3:
         TH_DbLog_Kind1:
           TIME       1553806321.02956
           VALUE      on
       status6:
         TH_DbLog_Kind2:
           TIME       1553806321.10037
           VALUE      off
       status9:
         TH_DbLog_Kind3:
           TIME       1553806321.1591
           VALUE      on
       temperature11:
         TH_DbLog_Schlafzimmer:
           TIME       1553806321.1962
           VALUE      20.6
       temperature14:
         TH_DbLog_Badezimmer:
           TIME       1553806321.25524
           VALUE      21.5
       temperature2:
         TH_DbLog_Kind1:
           TIME       1553806320.99839
           VALUE      20.3
       temperature5:
         TH_DbLog_Kind2:
           TIME       1553806321.07517
           VALUE      20.9
       temperature8:
         TH_DbLog_Kind3:
           TIME       1553806321.13725
           VALUE      21.4
   READINGS:
     2019-03-28 21:52:01   humidity1       44.0
     2019-03-28 21:52:01   humidity10      47.7
     2019-03-28 21:52:01   humidity13      46.2
     2019-03-28 21:52:01   humidity4       45.9
     2019-03-28 21:52:01   humidity7       48.1
     2019-03-28 21:52:01   hvacsetpointheat12 20.0
     2019-03-28 21:52:01   hvacsetpointheat15 25.0
     2019-03-28 21:52:01   hvacsetpointheat3 21.0
     2019-03-28 21:52:01   hvacsetpointheat6 21.0
     2019-03-28 21:52:01   hvacsetpointheat9 22.0
     2019-03-28 21:47:29   state           alive
     2019-03-28 21:52:01   status12        off
     2019-03-28 21:52:01   status15        on
     2019-03-28 21:52:01   status3         on
     2019-03-28 21:52:01   status6         off
     2019-03-28 21:52:01   status9         on
     2019-03-28 21:52:01   temperature11   20.6
     2019-03-28 21:52:01   temperature14   21.5
     2019-03-28 21:52:00   temperature2    20.3
     2019-03-28 21:52:01   temperature5    20.9
     2019-03-28 21:52:01   temperature8    21.4
   gets:
   readingMappings:
     1:
       1:
         name       humidity1
     10:
       1:
         name       humidity10
     11:
       0:
         name       temperature11
       42:
         name       id11
     12:
       0:
         name       temperature12
       2:
         name       status12
       21:
         name       hvacflowstate12
       45:
         name       hvacsetpointheat12
     13:
       1:
         name       humidity13
     14:
       0:
         name       temperature14
       42:
         name       id14
     15:
       0:
         name       temperature15
       2:
         name       status15
       21:
         name       hvacflowstate15
       45:
         name       hvacsetpointheat15
     2:
       0:
         name       temperature2
       42:
         name       id2
     3:
       0:
         name       temperature3
       2:
         name       status3
       21:
         name       hvacflowstate3
       45:
         name       hvacsetpointheat3
     4:
       1:
         name       humidity4
     5:
       0:
         name       temperature5
       42:
         name       id5
     6:
       0:
         name       temperature6
       2:
         name       status6
       21:
         name       hvacflowstate6
       45:
         name       hvacsetpointheat6
     7:
       1:
         name       humidity7
     8:
       0:
         name       temperature8
       42:
         name       id8
     9:
       0:
         name       temperature9
       2:
         name       status9
       21:
         name       hvacflowstate9
       45:
         name       hvacsetpointheat9
   sensorMappings:
     0:
       receives:
       sends:
         16
         15
     1:
       receives:
       sends:
         16
         15
     10:
       receives:
       sends:
         6
         7
     11:
       receives:
       sends:
         11
     12:
       receives:
       sends:
         12
         14
     13:
       receives:
         24
       sends:
         17
         18
         54
         55
         56
         24
     14:
       receives:
       sends:
         45
         21
         0
         2
     15:
       receives:
       sends:
         13
         43
     16:
       receives:
       sends:
         23
         37
     17:
       receives:
       sends:
     18:
       receives:
       sends:
     19:
       receives:
         36
       sends:
         36
     2:
       receives:
       sends:
         16
         15
     20:
       receives:
         32
       sends:
         33
         50
         32
     21:
       receives:
         24
       sends:
         34
         35
         24
     22:
       receives:
       sends:
         37
         43
     23:
       receives:
         24
         25
         26
         27
         28
       sends:
         24
         25
         26
         27
         28
     24:
       receives:
       sends:
         37
         43
     25:
       receives:
       sends:
         19
         20
     26:
       receives:
         40
         17
         3
       sends:
         40
         17
         3
     27:
       receives:
         41
         17
         3
       sends:
         41
         17
         3
     28:
       receives:
         40
       sends:
         40
     29:
       receives:
       sends:
         2
         0
         45
         44
         21
         46
         22
     3:
       receives:
         2
         17
       sends:
         2
         17
     30:
       receives:
       sends:
         38
         39
         14
     31:
       receives:
       sends:
         2
         16
     32:
       receives:
       sends:
         16
         15
     33:
       receives:
       sends:
         37
         16
         15
     34:
       receives:
       sends:
         37
         16
         15
     35:
       receives:
       sends:
         37
         16
         15
     36:
       receives:
         47
       sends:
         47
     37:
       receives:
       sends:
         34
         35
     38:
       receives:
       sends:
         49
     39:
       receives:
       sends:
         0
         51
         52
         53
         2
     4:
       receives:
         2
         3
         17
       sends:
         2
         3
         17
     5:
       receives:
         29
         30
         31
         3
       sends:
         29
         30
         31
         3
     6:
       receives:
       sends:
         0
         42
     7:
       receives:
       sends:
         1
     8:
       receives:
       sends:
         4
         5
     9:
       receives:
       sends:
         8
         9
         10
   sets:
     clear      noArg
     flash      noArg
     fwType     
     hvacsetpointheat12 slider,18,0.5,26,1
     hvacsetpointheat15 slider,18,0.5,26,1
     hvacsetpointheat3 slider,18,0.5,26,1
     hvacsetpointheat6 slider,18,0.5,26,1
     hvacsetpointheat9 slider,18,0.5,26,1
     reboot     noArg
     time       noArg
   typeMappings:
     0:
       type       temperature
     1:
       type       humidity
     10:
       type       direction
     11:
       type       uv
     12:
       type       weight
     13:
       type       distance
     14:
       type       impedance
     15:
       type       armed
       val:
         0          off
         1          on
     16:
       type       tripped
       val:
         0          off
         1          on
     17:
       type       power
     18:
       type       energy
     19:
       type       button_on
     2:
       type       status
       val:
         0          off
         1          on
     20:
       type       button_off
     21:
       type       hvacflowstate
     22:
       type       hvacspeed
     23:
       type       brightness
       range:
         max        100
         min        0
         step       1
     24:
       type       value1
     25:
       type       value2
     26:
       type       value3
     27:
       type       value4
     28:
       type       value5
     29:
       type       up
     3:
       type       percentage
       range:
         max        100
         min        0
         step       1
     30:
       type       down
     31:
       type       stop
     32:
       type       ir_send
     33:
       type       ir_receive
     34:
       type       flow
     35:
       type       volume
     36:
       type       lockstatus
       val:
         0          off
         1          on
     37:
       type       level
     38:
       type       voltage
     39:
       type       current
     4:
       type       pressure
     40:
       type       rgb
     41:
       type       rgbw
     42:
       type       id
     43:
       type       unitprefix
     44:
       type       hvacsetpointcool
     45:
       type       hvacsetpointheat
     46:
       type       hvacflowmode
     47:
       type       text
     48:
       type       custom
     49:
       type       position
     5:
       type       forecast
       val:
         0          stable
         1          sunny
         2          cloudy
         3          unstable
         4          thunderstorm
         5          unknown
     50:
       type       ir_record
     51:
       type       ph
     52:
       type       orp
     53:
       type       ec
     54:
       type       value
     55:
       type       va
     56:
       type       power_factor
     6:
       type       rain
     7:
       type       rainrate
     8:
       type       wind
     9:
       type       gust
Attributes:
   IODev      MySensorsGateway
   event-min-interval humidity1:3600,humidity4:3600,humidity7:3600,humidity10:3600,humidity13:3600,temperature2:3600,temperature5:3600,temperature8:3600,temperature11:3600,temperature14:3600,status3:3600,status6:3600,status9:3600,status12:3600,status15:3600
   event-on-change-reading humidity1,humidity4,humidity7,humidity10,humidity13,temperature2,temperature5,temperature8,temperature11,temperature14,status3,status6,status9,status12,status15
   mapReading_humidity1 1 humidity
   mapReading_humidity10 10 humidity
   mapReading_humidity13 13 humidity
   mapReading_humidity4 4 humidity
   mapReading_humidity7 7 humidity
   mapReading_hvacflowstate12 12 hvacflowstate
   mapReading_hvacflowstate15 15 hvacflowstate
   mapReading_hvacflowstate3 3 hvacflowstate
   mapReading_hvacflowstate6 6 hvacflowstate
   mapReading_hvacflowstate9 9 hvacflowstate
   mapReading_hvacsetpointheat12 12 hvacsetpointheat
   mapReading_hvacsetpointheat15 15 hvacsetpointheat
   mapReading_hvacsetpointheat3 3 hvacsetpointheat
   mapReading_hvacsetpointheat6 6 hvacsetpointheat
   mapReading_hvacsetpointheat9 9 hvacsetpointheat
   mapReading_id11 11 id
   mapReading_id14 14 id
   mapReading_id2 2 id
   mapReading_id5 5 id
   mapReading_id8 8 id
   mapReading_status12 12 status
   mapReading_status15 15 status
   mapReading_status3 3 status
   mapReading_status6 6 status
   mapReading_status9 9 status
   mapReading_temperature11 11 temperature
   mapReading_temperature12 12 temperature
   mapReading_temperature14 14 temperature
   mapReading_temperature15 15 temperature
   mapReading_temperature2 2 temperature
   mapReading_temperature3 3 temperature
   mapReading_temperature5 5 temperature
   mapReading_temperature6 6 temperature
   mapReading_temperature8 8 temperature
   mapReading_temperature9 9 temperature
   mode       node
   room       Heizung
   setReading_hvacsetpointheat12 slider,18,0.5,26,1
   setReading_hvacsetpointheat15 slider,18,0.5,26,1
   setReading_hvacsetpointheat3 slider,18,0.5,26,1
   setReading_hvacsetpointheat6 slider,18,0.5,26,1
   setReading_hvacsetpointheat9 slider,18,0.5,26,1
   timeoutAlive 605
   version    2.3.1


Hier von MYSENSOR_1:
Internals:
   DEF        0
   FUUID      5c850f3e-f33f-2b06-0f81-259df9d5adc1b2c1
   IODev      MySensorsGateway2
   NAME       MYSENSOR_1
   NR         65
   STATE      alive
   TYPE       MYSENSORS_DEVICE
   ack        0
   protocol   2.3.1
   radioId    0
   repeater   0
   timeoutAlive 610
   READINGS:
     2019-02-26 09:37:41   humidity11      29.4
     2019-02-26 09:37:40   humidity8       29.2
     2019-02-26 09:37:40   hvacsetpointheat10 20.0
     2019-02-26 09:37:41   hvacsetpointheat13 21.5
     2019-03-28 21:47:22   state           alive
     2019-02-26 09:37:40   status10        off
     2019-02-26 09:37:41   status13        off
     2019-02-26 09:37:41   temperature12   22.0
     2019-02-26 09:37:40   temperature9    22.1
   readingMappings:
     10:
       0:
         name       temperature10
       2:
         name       status10
       21:
         name       hvacflowstate10
       45:
         name       hvacsetpointheat10
     11:
       1:
         name       humidity11
     12:
       0:
         name       temperature12
       42:
         name       id12
     13:
       0:
         name       temperature13
       2:
         name       status13
       21:
         name       hvacflowstate13
       45:
         name       hvacsetpointheat13
     8:
       1:
         name       humidity8
     9:
       0:
         name       temperature9
       42:
         name       id9
   sensorMappings:
     0:
       receives:
       sends:
         16
         15
     1:
       receives:
       sends:
         16
         15
     10:
       receives:
       sends:
         6
         7
     11:
       receives:
       sends:
         11
     12:
       receives:
       sends:
         12
         14
     13:
       receives:
         24
       sends:
         17
         18
         54
         55
         56
         24
     14:
       receives:
       sends:
         45
         21
         0
         2
     15:
       receives:
       sends:
         13
         43
     16:
       receives:
       sends:
         23
         37
     17:
       receives:
       sends:
     18:
       receives:
       sends:
     19:
       receives:
         36
       sends:
         36
     2:
       receives:
       sends:
         16
         15
     20:
       receives:
         32
       sends:
         33
         50
         32
     21:
       receives:
         24
       sends:
         34
         35
         24
     22:
       receives:
       sends:
         37
         43
     23:
       receives:
         24
         25
         26
         27
         28
       sends:
         24
         25
         26
         27
         28
     24:
       receives:
       sends:
         37
         43
     25:
       receives:
       sends:
         19
         20
     26:
       receives:
         40
         17
         3
       sends:
         40
         17
         3
     27:
       receives:
         41
         17
         3
       sends:
         41
         17
         3
     28:
       receives:
         40
       sends:
         40
     29:
       receives:
       sends:
         2
         0
         45
         44
         21
         46
         22
     3:
       receives:
         2
         17
       sends:
         2
         17
     30:
       receives:
       sends:
         38
         39
         14
     31:
       receives:
       sends:
         2
         16
     32:
       receives:
       sends:
         16
         15
     33:
       receives:
       sends:
         37
         16
         15
     34:
       receives:
       sends:
         37
         16
         15
     35:
       receives:
       sends:
         37
         16
         15
     36:
       receives:
         47
       sends:
         47
     37:
       receives:
       sends:
         34
         35
     38:
       receives:
       sends:
         49
     39:
       receives:
       sends:
         0
         51
         52
         53
         2
     4:
       receives:
         2
         3
         17
       sends:
         2
         3
         17
     5:
       receives:
         29
         30
         31
         3
       sends:
         29
         30
         31
         3
     6:
       receives:
       sends:
         0
         42
     7:
       receives:
       sends:
         1
     8:
       receives:
       sends:
         4
         5
     9:
       receives:
       sends:
         8
         9
         10
   sets:
     clear      noArg
     flash      noArg
     fwType     
     hvacsetpointheat10 slider,18,0.5,24,1
     hvacsetpointheat13 slider,18,0.5,24,1
     reboot     noArg
     status10   off,on
     status13   off,on
     time       noArg
   typeMappings:
     0:
       type       temperature
     1:
       type       humidity
     10:
       type       direction
     11:
       type       uv
     12:
       type       weight
     13:
       type       distance
     14:
       type       impedance
     15:
       type       armed
       val:
         0          off
         1          on
     16:
       type       tripped
       val:
         0          off
         1          on
     17:
       type       power
     18:
       type       energy
     19:
       type       button_on
     2:
       type       status
       val:
         0          off
         1          on
     20:
       type       button_off
     21:
       type       hvacflowstate
     22:
       type       hvacspeed
     23:
       type       brightness
       range:
         max        100
         min        0
         step       1
     24:
       type       value1
     25:
       type       value2
     26:
       type       value3
     27:
       type       value4
     28:
       type       value5
     29:
       type       up
     3:
       type       percentage
       range:
         max        100
         min        0
         step       1
     30:
       type       down
     31:
       type       stop
     32:
       type       ir_send
     33:
       type       ir_receive
     34:
       type       flow
     35:
       type       volume
     36:
       type       lockstatus
       val:
         0          off
         1          on
     37:
       type       level
     38:
       type       voltage
     39:
       type       current
     4:
       type       pressure
     40:
       type       rgb
     41:
       type       rgbw
     42:
       type       id
     43:
       type       unitprefix
     44:
       type       hvacsetpointcool
     45:
       type       hvacsetpointheat
     46:
       type       hvacflowmode
     47:
       type       text
     48:
       type       custom
     49:
       type       position
     5:
       type       forecast
       val:
         0          stable
         1          sunny
         2          cloudy
         3          unstable
         4          thunderstorm
         5          unknown
     50:
       type       ir_record
     51:
       type       ph
     52:
       type       orp
     53:
       type       ec
     54:
       type       value
     55:
       type       va
     56:
       type       power_factor
     6:
       type       rain
     7:
       type       rainrate
     8:
       type       wind
     9:
       type       gust
Attributes:
   IODev      MySensorsGateway2
   mapReading_humidity11 11 humidity
   mapReading_humidity8 8 humidity
   mapReading_hvacflowstate10 10 hvacflowstate
   mapReading_hvacflowstate13 13 hvacflowstate
   mapReading_hvacsetpointheat10 10 hvacsetpointheat
   mapReading_hvacsetpointheat13 13 hvacsetpointheat
   mapReading_id12 12 id
   mapReading_id9 9 id
   mapReading_status10 10 status
   mapReading_status13 13 status
   mapReading_temperature10 10 temperature
   mapReading_temperature12 12 temperature
   mapReading_temperature13 13 temperature
   mapReading_temperature9 9 temperature
   mode       node
   room       Heizung
   setReading_hvacsetpointheat10 slider,18,0.5,24,1
   setReading_hvacsetpointheat13 slider,18,0.5,24,1
   setReading_status10 off,on
   setReading_status13 off,on
   timeoutAlive 610
   version    2.3.1


Hier von MySensorsGateway:
Internals:
   DEF        192.168.0.50:5003
   DeviceName 192.168.0.50:5003
   FD         5
   FUUID      5c850f3d-f33f-2b06-b021-f289e17a43432868
   NAME       MySensorsGateway
   NOTIFYDEV  global
   NR         59
   NTFY_ORDER 50-MySensorsGateway
   PARTIAL   
   STATE      startup complete
   TYPE       MYSENSORS
   ack        0
   inclusion-mode 1
   outstandingAck 0
   version    2.3.1
   READINGS:
     2019-03-28 21:47:29   connection      startup complete
     2019-03-28 21:47:25   state           opened
Attributes:
   autocreate 1
   mapNode0Id 0
   stateFormat connection


Hier von MySensorsGateway2:
Internals:
   DEF        192.168.0.51:5003
   DeviceName 192.168.0.51:5003
   FUUID      5c850f3d-f33f-2b06-ce47-163b763899562dd6
   NAME       MySensorsGateway2
   NEXT_OPEN  1553806549
   NOTIFYDEV  global
   NR         64
   NTFY_ORDER 50-MySensorsGateway2
   PARTIAL   
   STATE      disconnected
   TYPE       MYSENSORS
   READINGS:
     2019-02-26 09:19:31   connection      startup complete
     2019-03-28 21:54:49   state           disconnected
Attributes:
   autocreate 1
   stateFormat connection





Das neue Attribut wird im Übrigen angezeigt. Habe es, wie du sagtest, auf "0" gesetzt. Das Reading "state" ist aber wieder auf dead gewechselt.
Muss im Mysensors Sketch auf ein Heartbeat request reagiert werden? Das ist momentan nicht der Fall in meinem Sketch...

P.S.: Bei MYSENSOR_1 sind die Child_IDs veraltet und es würde so nicht funktionieren. Bis 15 belegt MYSENSOR_0 die IDs, ab 16 wäre frei für MYSENSOR_1.

Beta-User

Hmm,

man sieht in der zweiten Node bis auf state nur veraltete Readings, aber immerhin sieht das irgendwie nach einer Trennung aus. In jedem Fall scheinen beide aktualisiert zu werden, wenn es das betreffende Reading gibt (muß mal nachsehen, aber heatbeats sind da nicht anders als andere Messages, meine ich).

Bezgl. des GW-heartbeats: Der wird vom 00-er-Modul angefordert, der Arduino antwortet intern automatisch, ohne dass man das gesondert vercoden müßte. Auf dieser Basis arbeitet bereits seit längerem der Code für automatische Reconnects bei (WLAN-)Gateways.

Werde mal testen, ob ich die "Verteilung" der Node-0-Infos nicht besser über den Namen des MYSENSORS_DEVICE-Geräts machen will. Dann blieben alle "0"-er in der DEF. Sollte eigentlich einfach sein. Danke für den Schubs. Code dazu: Muß mal sehen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

#36
Zitat von: Beta-User am 29 März 2019, 07:18:45
Werde mal testen, ob ich die "Verteilung" der Node-0-Infos nicht besser über den Namen des MYSENSORS_DEVICE-Geräts machen will. Dann blieben alle "0"-er in der DEF.
Hmm, bei näherem Nachdenken ist das irgendwie doch nochmal anders; eigentlich müßte es reichen, einfach generell die heartbeats durchzulassen, ganz ohne Attribut usw...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

So, zu guter letzt anbei eine Testversion, die folgendes macht:
Hat man nur ein GW, wird Node 0 ganz normal als MYSENSOR_0 angelegt (jetzt aber im room MYSENSORS_DEVICE).
Hat man ein weitere, wird jede "0"-er-Node als eigene Node angelegt, allerdings logischerweise mit einem anderen Namen, der vom Namen des GW abgeleitet wird; hier wird auch gleich das richtige IO zugewiesen. Das heartbeat-Reading im GW hat jetzt den Inhalt "alive" statt "last" (das will ich bei den Nodes auch noch umbauen, was aber etwas dauern wird...).

Wenn ich nichts nachteiliges höre, checke ich das vermutlich am WE ein; wenn es klappt, gibt's dann auch ein update bei DEVICE, das attrTemplate verfügbar macht.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Moin,
Messages collected while initializing FHEM:
configfile: MySensorsGateway: unknown attribute mapNode0Id. Type 'attr MySensorsGateway ?' for a detailed list.

Autosave deactivated

Ist das schlimm?

Ein Reading "heartbeat" habe ich nicht. State geht nach der eingestellten Zeit auf dead.
Muss ich noch was konfigurieren?
LG

Beta-User

Da alle heartbeats weitergeleitet werden, braucht es das Attribut nicht, ergo ist das rausgeflogen. Daher (einmalig) die Fehlermeldung dazu.

Ich lag auch nicht ganz richtig damit, dass ein GW immer vom Modul angepingt wird für einen heartbeat. Das stimmt mind. im laufenden Betrieb dann nicht mehr, wenn innerhalb von 5 Minuten gar keine Messages kommen, also auch keine Messdaten. Daher muß doch der code auf der Node im loop() eine aktive heartbeat-Sendung vorsehen.

Ich hatte gestern auch sowohl am GW (ich habe aber mit einem bestehenden GW getestet) wie an der neuen Node "heartbeat"-Readings. Die tauchen ggf. als neue Readings aber erst nach einem refresh des Browserfensters auf, und die Aktualisierung ist auch nicht-triggernd.

Zusammengefaßt: heartbeat-messages am GW aktivieren und wie üblich timeout an der Node setzen, das sollte es gewesen sein...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Habe gestern Abend noch im Code am Gateway geschaut, der heartbeat wird immer dann gesendet, wenn auch alle Werte übertragen werden. Ein neues Reading habe ich allerdings nicht erhalten.
TimeoutAlive steht weiterhin auf 605. Die readings kommen alle 5 Min.
Ich könnte nachher/heute Abend mal im Log Verbose 5 gucken ob da was von heartbeat ankommt.
Kann das sonst noch daran liegen, dass ich das Gateway nicht neu angelegt habe? Ein neues Reading sollte normalerweise doch von alleine auftauchen...
LG

Beta-User

Hmm, kannst du nochmal lists liefern?

(Ich habe da keine großen verbose-Ausgaben reingebastelt, ob "5" da was bringt?).
Neu ist halt, dass ggf. eine neue Node angelegt wird, das war bisher manchmal etwas unübersichtlich, weil immer wieder dieselbe Node angelegt wurde (was dann oft nicht zu erkennen war). Die neue beginnt dann nicht unbedingt mit MYSENSOR_, sondern hat den GW-Namen vorneweg (wenn es MYSENSOR_0 schon gibt mit einem anderen IO). Da du bisher 2 GW's genutzt hast, ist evtl. das das Problem, dass du an der falschen Stelle suchst?

Ansonsten sollten eigentlich auch vorhandene Devices funktionieren.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Ich schaue mir das heute Abend noch mal genau an. Komme da vorher leider nicht ran.
Melde mich dann.
LG

SirBen

Soooo,
hier mal die Lists von meinen Geräten:
Internals:
   DEF        192.168.0.50:5003
   DeviceName 192.168.0.50:5003
   FD         5
   FUUID      5c850f3d-f33f-2b06-b021-f289e17a43432868
   NAME       MySensorsGateway
   NOTIFYDEV  global
   NR         59
   NTFY_ORDER 50-MySensorsGateway
   PARTIAL   
   STATE      startup complete
   TYPE       MYSENSORS
   ack        0
   inclusion-mode 1
   outstandingAck 0
   version    2.3.1
   READINGS:
     2019-04-03 18:46:30   connection      startup complete
     2019-04-03 18:46:30   state           opened
Attributes:
   autocreate 1
   stateFormat connection


Internals:
   DEF        0
   FUUID      5c850f3f-f33f-2b06-4f48-5915a744b62b080b
   IODev      MySensorsGateway
   NAME       MYSENSOR_0
   NR         73
   STATE      dead
   TYPE       MYSENSORS_DEVICE
   ack        0
   protocol   2.3.1
   radioId    0
   repeater   0
   timeoutAlive 605
   version    2.3.1
   Helper:
     DBLOG:
       humidity1:
         TH_DbLog_Kind1:
           TIME       1554313261.10394
           VALUE      44.1
       humidity10:
         TH_DbLog_Kind1:
           TIME       1554313261.1843
           VALUE      44.3
         TH_DbLog_Schlafzimmer:
           TIME       1554313261.19059
           VALUE      44.3
       humidity13:
         TH_DbLog_Badezimmer:
           TIME       1554313261.22324
           VALUE      42.9
         TH_DbLog_Kind1:
           TIME       1554313261.22622
           VALUE      42.9
       humidity4:
         TH_DbLog_Kind2:
           TIME       1554312962.47954
           VALUE      43.7
       humidity7:
         TH_DbLog_Kind3:
           TIME       1554312664.58355
           VALUE      -999.0
       status12:
         TH_DbLog_Schlafzimmer:
           TIME       1554312366.66757
           VALUE      off
       status15:
         TH_DbLog_Badezimmer:
           TIME       1554312366.7039
           VALUE      on
       status3:
         TH_DbLog_Kind1:
           TIME       1554313261.08119
           VALUE      off
       status6:
         TH_DbLog_Kind2:
           TIME       1554312366.57138
           VALUE      off
       status9:
         TH_DbLog_Kind3:
           TIME       1554312664.56087
           VALUE      on
       temperature11:
         TH_DbLog_Schlafzimmer:
           TIME       1554312366.64005
           VALUE      21.7
       temperature14:
         TH_DbLog_Badezimmer:
           TIME       1554311472.68491
           VALUE      22.7
       temperature2:
         TH_DbLog_Kind1:
           TIME       1554313261.05211
           VALUE      21.8
       temperature5:
         TH_DbLog_Kind2:
           TIME       1554312366.54376
           VALUE      21.8
       temperature8:
         TH_DbLog_Kind3:
           TIME       1554312664.53324
           VALUE      -999.0
   READINGS:
     2019-04-03 19:41:01   humidity1       44.1
     2019-04-03 19:41:01   humidity10      44.3
     2019-04-03 19:41:01   humidity13      42.9
     2019-04-03 19:41:01   humidity4       43.7
     2019-04-03 19:41:01   humidity7       -999.0
     2019-04-03 19:41:01   hvacsetpointheat12 20.0
     2019-04-03 19:41:01   hvacsetpointheat15 25.0
     2019-04-03 19:41:01   hvacsetpointheat3 21.0
     2019-04-03 19:41:01   hvacsetpointheat6 20.5
     2019-04-03 19:41:01   hvacsetpointheat9 22.0
     2019-04-03 18:56:35   state           dead
     2019-04-03 19:41:01   status12        off
     2019-04-03 19:41:01   status15        on
     2019-04-03 19:41:01   status3         off
     2019-04-03 19:41:01   status6         off
     2019-04-03 19:41:01   status9         on
     2019-04-03 19:41:01   temperature11   21.7
     2019-04-03 19:41:01   temperature14   22.7
     2019-04-03 19:41:01   temperature2    21.8
     2019-04-03 19:41:01   temperature5    21.8
     2019-04-03 19:41:01   temperature8    -999.0
   gets:
   readingMappings:
     1:
       1:
         name       humidity1
     10:
       1:
         name       humidity10
     11:
       0:
         name       temperature11
       42:
         name       id11
     12:
       0:
         name       temperature12
       2:
         name       status12
       21:
         name       hvacflowstate12
       45:
         name       hvacsetpointheat12
     13:
       1:
         name       humidity13
     14:
       0:
         name       temperature14
       42:
         name       id14
     15:
       0:
         name       temperature15
       2:
         name       status15
       21:
         name       hvacflowstate15
       45:
         name       hvacsetpointheat15
     2:
       0:
         name       temperature2
       42:
         name       id2
     3:
       0:
         name       temperature3
       2:
         name       status3
       21:
         name       hvacflowstate3
       45:
         name       hvacsetpointheat3
     4:
       1:
         name       humidity4
     5:
       0:
         name       temperature5
       42:
         name       id5
     6:
       0:
         name       temperature6
       2:
         name       status6
       21:
         name       hvacflowstate6
       45:
         name       hvacsetpointheat6
     7:
       1:
         name       humidity7
     8:
       0:
         name       temperature8
       42:
         name       id8
     9:
       0:
         name       temperature9
       2:
         name       status9
       21:
         name       hvacflowstate9
       45:
         name       hvacsetpointheat9
   retainedMessagesForRadioId:
   sensorMappings:
     0:
       receives:
       sends:
         16
         15
     1:
       receives:
       sends:
         16
         15
     10:
       receives:
       sends:
         6
         7
     11:
       receives:
       sends:
         11
     12:
       receives:
       sends:
         12
         14
     13:
       receives:
         24
       sends:
         17
         18
         54
         55
         56
         24
     14:
       receives:
       sends:
         45
         21
         0
         2
     15:
       receives:
       sends:
         13
         43
     16:
       receives:
       sends:
         23
         37
     17:
       receives:
       sends:
     18:
       receives:
       sends:
     19:
       receives:
         36
       sends:
         36
     2:
       receives:
       sends:
         16
         15
     20:
       receives:
         32
       sends:
         33
         50
         32
     21:
       receives:
         24
       sends:
         34
         35
         24
     22:
       receives:
       sends:
         37
         43
     23:
       receives:
         24
         25
         26
         27
         28
       sends:
         24
         25
         26
         27
         28
     24:
       receives:
       sends:
         37
         43
     25:
       receives:
       sends:
         19
         20
     26:
       receives:
         40
         17
         3
       sends:
         40
         17
         3
     27:
       receives:
         41
         17
         3
       sends:
         41
         17
         3
     28:
       receives:
         40
       sends:
         40
     29:
       receives:
       sends:
         2
         0
         45
         44
         21
         46
         22
     3:
       receives:
         2
         17
       sends:
         2
         17
     30:
       receives:
       sends:
         38
         39
         14
     31:
       receives:
       sends:
         2
         16
     32:
       receives:
       sends:
         16
         15
     33:
       receives:
       sends:
         37
         16
         15
     34:
       receives:
       sends:
         37
         16
         15
     35:
       receives:
       sends:
         37
         16
         15
     36:
       receives:
         47
       sends:
         47
     37:
       receives:
       sends:
         34
         35
     38:
       receives:
       sends:
         49
     39:
       receives:
       sends:
         0
         51
         52
         53
         2
     4:
       receives:
         2
         3
         17
       sends:
         2
         3
         17
     5:
       receives:
         29
         30
         31
         3
       sends:
         29
         30
         31
         3
     6:
       receives:
       sends:
         0
         42
     7:
       receives:
       sends:
         1
     8:
       receives:
       sends:
         4
         5
     9:
       receives:
       sends:
         8
         9
         10
   setcommands:
   sets:
     clear      noArg
     flash      noArg
     fwType     
     hvacsetpointheat12 slider,18,0.5,26,1
     hvacsetpointheat15 slider,18,0.5,26,1
     hvacsetpointheat3 slider,18,0.5,26,1
     hvacsetpointheat6 slider,18,0.5,26,1
     hvacsetpointheat9 slider,18,0.5,26,1
     reboot     noArg
     time       noArg
   typeMappings:
     0:
       type       temperature
     1:
       type       humidity
     10:
       type       direction
     11:
       type       uv
     12:
       type       weight
     13:
       type       distance
     14:
       type       impedance
     15:
       type       armed
       val:
         0          off
         1          on
     16:
       type       tripped
       val:
         0          off
         1          on
     17:
       type       power
     18:
       type       energy
     19:
       type       button_on
     2:
       type       status
       val:
         0          off
         1          on
     20:
       type       button_off
     21:
       type       hvacflowstate
     22:
       type       hvacspeed
     23:
       type       brightness
       range:
         max        100
         min        0
         step       1
     24:
       type       value1
     25:
       type       value2
     26:
       type       value3
     27:
       type       value4
     28:
       type       value5
     29:
       type       up
     3:
       type       percentage
       range:
         max        100
         min        0
         step       1
     30:
       type       down
     31:
       type       stop
     32:
       type       ir_send
     33:
       type       ir_receive
     34:
       type       flow
     35:
       type       volume
     36:
       type       lockstatus
       val:
         0          off
         1          on
     37:
       type       level
     38:
       type       voltage
     39:
       type       current
     4:
       type       pressure
     40:
       type       rgb
     41:
       type       rgbw
     42:
       type       id
     43:
       type       unitprefix
     44:
       type       hvacsetpointcool
     45:
       type       hvacsetpointheat
     46:
       type       hvacflowmode
     47:
       type       text
     48:
       type       custom
     49:
       type       position
     5:
       type       forecast
       val:
         0          stable
         1          sunny
         2          cloudy
         3          unstable
         4          thunderstorm
         5          unknown
     50:
       type       ir_record
     51:
       type       ph
     52:
       type       orp
     53:
       type       ec
     54:
       type       value
     55:
       type       va
     56:
       type       power_factor
     6:
       type       rain
     7:
       type       rainrate
     8:
       type       wind
     9:
       type       gust
Attributes:
   IODev      MySensorsGateway
   event-min-interval humidity1:3600,humidity4:3600,humidity7:3600,humidity10:3600,humidity13:3600,temperature2:3600,temperature5:3600,temperature8:3600,temperature11:3600,temperature14:3600,status3:3600,status6:3600,status9:3600,status12:3600,status15:3600
   event-on-change-reading humidity1,humidity4,humidity7,humidity10,humidity13,temperature2,temperature5,temperature8,temperature11,temperature14,status3,status6,status9,status12,status15,hvacsetpointheat3,hvacsetpointheat6,hvacsetpointheat9,hvacsetpointheat12,hvacsetpointheat15
   mapReading_humidity1 1 humidity
   mapReading_humidity10 10 humidity
   mapReading_humidity13 13 humidity
   mapReading_humidity4 4 humidity
   mapReading_humidity7 7 humidity
   mapReading_hvacflowstate12 12 hvacflowstate
   mapReading_hvacflowstate15 15 hvacflowstate
   mapReading_hvacflowstate3 3 hvacflowstate
   mapReading_hvacflowstate6 6 hvacflowstate
   mapReading_hvacflowstate9 9 hvacflowstate
   mapReading_hvacsetpointheat12 12 hvacsetpointheat
   mapReading_hvacsetpointheat15 15 hvacsetpointheat
   mapReading_hvacsetpointheat3 3 hvacsetpointheat
   mapReading_hvacsetpointheat6 6 hvacsetpointheat
   mapReading_hvacsetpointheat9 9 hvacsetpointheat
   mapReading_id11 11 id
   mapReading_id14 14 id
   mapReading_id2 2 id
   mapReading_id5 5 id
   mapReading_id8 8 id
   mapReading_status12 12 status
   mapReading_status15 15 status
   mapReading_status3 3 status
   mapReading_status6 6 status
   mapReading_status9 9 status
   mapReading_temperature11 11 temperature
   mapReading_temperature12 12 temperature
   mapReading_temperature14 14 temperature
   mapReading_temperature15 15 temperature
   mapReading_temperature2 2 temperature
   mapReading_temperature3 3 temperature
   mapReading_temperature5 5 temperature
   mapReading_temperature6 6 temperature
   mapReading_temperature8 8 temperature
   mapReading_temperature9 9 temperature
   mode       node
   room       Heizung
   setReading_hvacsetpointheat12 slider,18,0.5,26,1
   setReading_hvacsetpointheat15 slider,18,0.5,26,1
   setReading_hvacsetpointheat3 slider,18,0.5,26,1
   setReading_hvacsetpointheat6 slider,18,0.5,26,1
   setReading_hvacsetpointheat9 slider,18,0.5,26,1
   timeoutAlive 605
   version    2.3.1


Bei MysensorsGateway2 ist alles beim Alten. MYSENSORS_1 hat ebenfalls kein Heartbeat Reading bekommen.
Hmmmm...

LG

Beta-User

Irgendwas ist da schräg...

Ich habe eben mal die von mir aktuell verwendete 00_MYSENSORS.pm auf meine svn-Basis gezogen und ein diff gemacht. Mit der erhalte ich zum einen am GW ein heartbeat-Reading, wenn ich an einer Node, die als 0-er-Node das betreffende GW eingestellt ist (vorausgesetzt, es wird eine heartbeat-Message gesendet, was bei mir die aktive Anfrage benötigt bzw. bei einem GW, das grad gar keine weiteren Nodes zu empfangen hat).

Die Code-Änderung ist auch so minimal, dass ich mir das nicht recht erklären kann, das diff anbei...
Ich verwende zwar eine ebenfalls geringfügig modifizierte 10-er-Device-pm, aber daran kann es eigentlich kaum liegen und v.a. müßte trotzdem schon aufgrund des 00-er-Codes immer das Reading am GW vorhanden sein, wenn ein heartbeat ankommt (wenn er vom GW gesendet wird, sei es wegen harter codierung in der loop(), sei es aufgrund Anfrage seitens FHEM).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

Zur Info @all:

Habe eben ein "größeres" update ins svn geschoben, das die Änderung in 00_MYSENSORS bzgl. des heartbeat-forwardings sowie der automatischen Anlage mehrerer 0-er-Nodes bringt.

Dazu "kann" 10_MYSENSORS_DEVICE jetzt attrTemplate, eine kleine template-file habe ich auch mal dazu gepackt, mit deren Hilfe einige der Standard-Sketche mit einem Text-stateFormat versehen werden können.

Wenn es klappt, würde ich demnächst gerne noch die Umstellung der heartbeat-Geschichte auf "nur" ein eigenes Reading am WE machen und hier mal vorab posten, danach soll es dann auch ein paar templates geben, die den Heartbeat-Status besser visualisieren und mit Symbolen bei devStateIcon arbeiten, das ist dann hübscher und das eigentliche Etappenziel. Danach würde ich dann auch eine etwas prominentere "Ankündigung" dazu posten...

Warum die heartbeat-Infos raus aus dem state?
Ich würde mittelfristig gerne die setExtensions wenigstens für einen Aktorkanal in MySensors-Device direkt verfügbar machen, was aber potentiell in Konflikt gerät mit heartbeat-Aktualisierungen. Es sollte außer ein paar kleineren Anpassungen, die ihr als User dann vornehmen müßtet keine größeren Auswirkungen haben. Mit Anpassungen ist sowas gemeint wie Ziel bei Readingsgroup-Anweisungen anpassen, ggf. Event-Handler und Abfragen auf heartbeat statt state umbiegen. Was sinnvollerweise wohl weiter im state bleiben sollte, wären NACK-Meldungen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Moin,
ich habe heute das MYSENSOR_0 und MYSENSOR_1 gelöscht und auf die automatische Einrichtung gewartet. Als Attribut wieder timeoutAlive auf 605 gestellt. Hier das automatisch angelegte Device:
Internals:
   CFGFN     
   DEF        0
   FUUID      5ca62a70-f33f-2b06-a313-a10c52bccf0d14eb
   IODev      MySensorsGateway
   NAME       MYSENSOR_0
   NR         226
   STATE      dead
   TYPE       MYSENSORS_DEVICE
   ack        0
   radioId    0
   repeater   0
   timeoutAlive 1
   version    2.3.1
   Helper:
     DBLOG:
       humidity1:
         TH_DbLog_Kind1:
           TIME       1554402204.38678
           VALUE      42.5
       humidity10:
         TH_DbLog_Kind1:
           TIME       1554402204.60256
           VALUE      43.3
         TH_DbLog_Schlafzimmer:
           TIME       1554402204.60727
           VALUE      43.3
       humidity13:
         TH_DbLog_Badezimmer:
           TIME       1554402204.66337
           VALUE      43.9
         TH_DbLog_Kind1:
           TIME       1554402204.66587
           VALUE      43.9
       humidity4:
         TH_DbLog_Kind2:
           TIME       1554402204.46458
           VALUE      44.4
       humidity7:
         TH_DbLog_Kind3:
           TIME       1554402204.54396
           VALUE      44.4
       status12:
         TH_DbLog_Schlafzimmer:
           TIME       1554402204.59002
           VALUE      off
       status15:
         TH_DbLog_Badezimmer:
           TIME       1554402204.64784
           VALUE      off
       status3:
         TH_DbLog_Kind1:
           TIME       1554402204.36693
           VALUE      on
       status6:
         TH_DbLog_Kind2:
           TIME       1554402204.44486
           VALUE      on
       status9:
         TH_DbLog_Kind3:
           TIME       1554402204.5282
           VALUE      off
       temperature11:
         TH_DbLog_Schlafzimmer:
           TIME       1554402204.56022
           VALUE      21.8
       temperature14:
         TH_DbLog_Badezimmer:
           TIME       1554402204.61813
           VALUE      21.9
       temperature2:
         TH_DbLog_Kind1:
           TIME       1554402204.31536
           VALUE      20.4
       temperature5:
         TH_DbLog_Kind2:
           TIME       1554402204.4079
           VALUE      20.9
       temperature8:
         TH_DbLog_Kind3:
           TIME       1554402204.4848
           VALUE      21.7
   READINGS:
     2019-04-04 20:23:24   humidity1       42.5
     2019-04-04 20:23:24   humidity10      43.3
     2019-04-04 20:23:24   humidity13      43.9
     2019-04-04 20:23:24   humidity4       44.4
     2019-04-04 20:23:24   humidity7       44.4
     2019-04-04 20:23:24   hvacsetpointheat12 22.0
     2019-04-04 20:23:24   hvacsetpointheat15 22.0
     2019-04-04 20:23:24   hvacsetpointheat3 22.0
     2019-04-04 20:23:24   hvacsetpointheat6 22.0
     2019-04-04 20:23:24   hvacsetpointheat9 22.0
     2019-04-04 18:07:20   state           dead
     2019-04-04 20:23:24   status12        off
     2019-04-04 20:23:24   status15        off
     2019-04-04 20:23:24   status3         on
     2019-04-04 20:23:24   status6         on
     2019-04-04 20:23:24   status9         off
     2019-04-04 20:23:24   temperature11   21.8
     2019-04-04 20:23:24   temperature14   21.9
     2019-04-04 20:23:24   temperature2    20.4
     2019-04-04 20:23:24   temperature5    20.9
     2019-04-04 20:23:24   temperature8    21.7
   gets:
   readingMappings:
     1:
       1:
         name       humidity1
     10:
       1:
         name       humidity10
     11:
       0:
         name       temperature11
       42:
         name       id11
     12:
       0:
         name       temperature12
       2:
         name       status12
       21:
         name       hvacflowstate12
       45:
         name       hvacsetpointheat12
     13:
       1:
         name       humidity13
     14:
       0:
         name       temperature14
       42:
         name       id14
     15:
       0:
         name       temperature15
       2:
         name       status15
       21:
         name       hvacflowstate15
       45:
         name       hvacsetpointheat15
     2:
       0:
         name       temperature2
       42:
         name       id2
     3:
       0:
         name       temperature3
       2:
         name       status3
       21:
         name       hvacflowstate3
       45:
         name       hvacsetpointheat3
     4:
       1:
         name       humidity4
     5:
       0:
         name       temperature5
       42:
         name       id5
     6:
       0:
         name       temperature6
       2:
         name       status6
       21:
         name       hvacflowstate6
       45:
         name       hvacsetpointheat6
     7:
       1:
         name       humidity7
     8:
       0:
         name       temperature8
       42:
         name       id8
     9:
       0:
         name       temperature9
       2:
         name       status9
       21:
         name       hvacflowstate9
       45:
         name       hvacsetpointheat9
   sensorMappings:
     0:
       receives:
       sends:
         16
         15
     1:
       receives:
       sends:
         16
         15
     10:
       receives:
       sends:
         6
         7
     11:
       receives:
       sends:
         11
     12:
       receives:
       sends:
         12
         14
     13:
       receives:
         24
       sends:
         17
         18
         54
         55
         56
         24
     14:
       receives:
       sends:
         45
         21
         0
         2
     15:
       receives:
       sends:
         13
         43
     16:
       receives:
       sends:
         23
         37
     17:
       receives:
       sends:
     18:
       receives:
       sends:
     19:
       receives:
         36
       sends:
         36
     2:
       receives:
       sends:
         16
         15
     20:
       receives:
         32
       sends:
         33
         50
         32
     21:
       receives:
         24
       sends:
         34
         35
         24
     22:
       receives:
       sends:
         37
         43
     23:
       receives:
         24
         25
         26
         27
         28
       sends:
         24
         25
         26
         27
         28
     24:
       receives:
       sends:
         37
         43
     25:
       receives:
       sends:
         19
         20
     26:
       receives:
         40
         17
         3
       sends:
         40
         17
         3
     27:
       receives:
         41
         17
         3
       sends:
         41
         17
         3
     28:
       receives:
         40
       sends:
         40
     29:
       receives:
       sends:
         2
         0
         45
         44
         21
         46
         22
     3:
       receives:
         2
         17
       sends:
         2
         17
     30:
       receives:
       sends:
         38
         39
         14
     31:
       receives:
       sends:
         2
         16
     32:
       receives:
       sends:
         16
         15
     33:
       receives:
       sends:
         37
         16
         15
     34:
       receives:
       sends:
         37
         16
         15
     35:
       receives:
       sends:
         37
         16
         15
     36:
       receives:
         47
       sends:
         47
     37:
       receives:
       sends:
         34
         35
     38:
       receives:
       sends:
         49
     39:
       receives:
       sends:
         0
         51
         52
         53
         2
     4:
       receives:
         2
         3
         17
       sends:
         2
         3
         17
     5:
       receives:
         29
         30
         31
         3
       sends:
         29
         30
         31
         3
     6:
       receives:
       sends:
         0
         42
     7:
       receives:
       sends:
         1
     8:
       receives:
       sends:
         4
         5
     9:
       receives:
       sends:
         8
         9
         10
   sets:
     clear      noArg
     flash      noArg
     fwType     
     reboot     noArg
     time       noArg
   typeMappings:
     0:
       type       temperature
     1:
       type       humidity
     10:
       type       direction
     11:
       type       uv
     12:
       type       weight
     13:
       type       distance
     14:
       type       impedance
     15:
       type       armed
       val:
         0          off
         1          on
     16:
       type       tripped
       val:
         0          off
         1          on
     17:
       type       power
     18:
       type       energy
     19:
       type       button_on
     2:
       type       status
       val:
         0          off
         1          on
     20:
       type       button_off
     21:
       type       hvacflowstate
     22:
       type       hvacspeed
     23:
       type       brightness
       range:
         max        100
         min        0
         step       1
     24:
       type       value1
     25:
       type       value2
     26:
       type       value3
     27:
       type       value4
     28:
       type       value5
     29:
       type       up
     3:
       type       percentage
       range:
         max        100
         min        0
         step       1
     30:
       type       down
     31:
       type       stop
     32:
       type       ir_send
     33:
       type       ir_receive
     34:
       type       flow
     35:
       type       volume
     36:
       type       lockstatus
       val:
         0          off
         1          on
     37:
       type       level
     38:
       type       voltage
     39:
       type       current
     4:
       type       pressure
     40:
       type       rgb
     41:
       type       rgbw
     42:
       type       id
     43:
       type       unitprefix
     44:
       type       hvacsetpointcool
     45:
       type       hvacsetpointheat
     46:
       type       hvacflowmode
     47:
       type       text
     48:
       type       custom
     49:
       type       position
     5:
       type       forecast
       val:
         0          stable
         1          sunny
         2          cloudy
         3          unstable
         4          thunderstorm
         5          unknown
     50:
       type       ir_record
     51:
       type       ph
     52:
       type       orp
     53:
       type       ec
     54:
       type       value
     55:
       type       va
     56:
       type       power_factor
     6:
       type       rain
     7:
       type       rainrate
     8:
       type       wind
     9:
       type       gust
Attributes:
   IODev      MySensorsGateway
   mapReading_humidity1 1 humidity
   mapReading_humidity10 10 humidity
   mapReading_humidity13 13 humidity
   mapReading_humidity4 4 humidity
   mapReading_humidity7 7 humidity
   mapReading_hvacflowstate12 12 hvacflowstate
   mapReading_hvacflowstate15 15 hvacflowstate
   mapReading_hvacflowstate3 3 hvacflowstate
   mapReading_hvacflowstate6 6 hvacflowstate
   mapReading_hvacflowstate9 9 hvacflowstate
   mapReading_hvacsetpointheat12 12 hvacsetpointheat
   mapReading_hvacsetpointheat15 15 hvacsetpointheat
   mapReading_hvacsetpointheat3 3 hvacsetpointheat
   mapReading_hvacsetpointheat6 6 hvacsetpointheat
   mapReading_hvacsetpointheat9 9 hvacsetpointheat
   mapReading_id11 11 id
   mapReading_id14 14 id
   mapReading_id2 2 id
   mapReading_id5 5 id
   mapReading_id8 8 id
   mapReading_status12 12 status
   mapReading_status15 15 status
   mapReading_status3 3 status
   mapReading_status6 6 status
   mapReading_status9 9 status
   mapReading_temperature11 11 temperature
   mapReading_temperature12 12 temperature
   mapReading_temperature14 14 temperature
   mapReading_temperature15 15 temperature
   mapReading_temperature2 2 temperature
   mapReading_temperature3 3 temperature
   mapReading_temperature5 5 temperature
   mapReading_temperature6 6 temperature
   mapReading_temperature8 8 temperature
   mapReading_temperature9 9 temperature
   mode       node
   room       Heizung
   timeoutAlive 1


Kein Heartbeat :-/

Mit MYSController habe ich mal eine Verbindung aufgebaut und ein I_HEARTBEAT_REQUEST gesendet. Hier das Ergebnis:

04.04.2019 20:27:47 INFO Connected to 192.168.0.50:5003
04.04.2019 20:27:50 TX 0;0;3;0;18;
04.04.2019 20:27:50 RX 0;255;3;0;14;Gateway startup complete.
04.04.2019 20:27:50 RX 0;255;0;0;17;2.3.1
04.04.2019 20:27:50 DEBUG Update child id=255, type=S_ARDUINO_NODE
04.04.2019 20:27:50 RX 0;255;3;0;11;Heizungssteuerung OG
04.04.2019 20:27:50 RX 0;255;3;0;12;1.0
04.04.2019 20:27:50 RX 0;1;0;0;7;
04.04.2019 20:27:50 DEBUG Update child id=1, type=S_HUM
04.04.2019 20:27:50 RX 0;2;0;0;6;
04.04.2019 20:27:50 DEBUG Update child id=2, type=S_TEMP
04.04.2019 20:27:50 RX 0;3;0;0;14;
04.04.2019 20:27:50 DEBUG Update child id=3, type=S_HEATER
04.04.2019 20:27:50 RX 0;4;0;0;7;
04.04.2019 20:27:50 DEBUG Update child id=4, type=S_HUM
04.04.2019 20:27:50 RX 0;5;0;0;6;
04.04.2019 20:27:50 DEBUG Update child id=5, type=S_TEMP
04.04.2019 20:27:50 RX 0;6;0;0;14;
04.04.2019 20:27:50 DEBUG Update child id=6, type=S_HEATER
04.04.2019 20:27:50 RX 0;7;0;0;7;
04.04.2019 20:27:50 DEBUG Update child id=7, type=S_HUM
04.04.2019 20:27:50 RX 0;8;0;0;6;
04.04.2019 20:27:50 DEBUG Update child id=8, type=S_TEMP
04.04.2019 20:27:50 RX 0;9;0;0;14;
04.04.2019 20:27:50 DEBUG Update child id=9, type=S_HEATER
04.04.2019 20:27:50 RX 0;10;0;0;7;
04.04.2019 20:27:50 DEBUG Update child id=10, type=S_HUM
04.04.2019 20:27:50 RX 0;11;0;0;6;
04.04.2019 20:27:50 DEBUG Update child id=11, type=S_TEMP
04.04.2019 20:27:50 RX 0;12;0;0;14;
04.04.2019 20:27:50 DEBUG Update child id=12, type=S_HEATER
04.04.2019 20:27:50 RX 0;13;0;0;7;
04.04.2019 20:27:50 DEBUG Update child id=13, type=S_HUM
04.04.2019 20:27:50 RX 0;14;0;0;6;
04.04.2019 20:27:50 DEBUG Update child id=14, type=S_TEMP
04.04.2019 20:27:50 RX 0;15;0;0;14;
04.04.2019 20:27:50 DEBUG Update child id=15, type=S_HEATER

Passt die Antwort vom Gateway zu dem Mysensors-code in FHEM?

Habe auch noch ein weiteres mal die 00_MYSENSORS.pm runtergeladen und überschrieben.
Rechte und Besitzer passen alle.

Kann ich noch etwas ausprobieren?

Vielen Dank und LG

EDIT: Habe gerade gemerkt, dass timeoutAlive die 605 nicht gefressen hat, stand eine "1" drin... Habe das Attribut gerade auf 605 geändert.
Parallel habe ich die DHT Lib auf meinem Gateway geändert. Sonst nichts. Das state Reading ist leider weiterhin dead...

Beta-User

Kannst du einfach mal ein update machen, dann sollten wir (im wesentlichen) auf demselben Stand sein.

Ich hatte nach dem darauf folgenden Neustart den Effekt, dass ich für eines der GW's eine neue Node erhalten habe, die dann eine "alte" 0-er auf "dead" geschoben hat (vermute: weil der Name nicht gepaßt hat). Aber an sich klappt das zumindest dann, wenn die Node den "richtigen Namen" hat; da landen dann auch heartbeat-Antworten, die ich von der "dead"-None aus anfordere....
Ist alles noch etwas "speziell" :o .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Moin @Beta-User
Habe heute morgen ein Update gemacht. Leider weiterhin kein heartbeat oder alive zu finden. Bei ,,Everything" unter ,,MYSENSOR_DEVICES" habe ich nur MYSENSOR_0. Kein weiteres Device.
Würdest du mir deine 10_MYSENSOR_DEVICE.pm zur Verfügung stellen, um das auch ausschließen zu können? Oder ist die mit dem Update schon aktuell auf dem richtigen Stand?
Hast du sonst noch eine Idee?
LG
Edit: Nur um das noch gesagt zu haben: Nach einem reconnect seitens FHEM zum Gateway (zB wegen Verbindungsverlust) wechselt das Reading state auf Alive, bis die 605 Sekunden überschritten sind. Dann wechselt es auf dead. Vielleicht hilft das noch?

Beta-User

Kannst du mal von MYSENSOR_0 aus einen heartbeat anfordern (get...)?

Die -Device ist nicht schuld, da bin ich sehr sicher. Ich werde es mir am WE aber auch nochmal ansehen, da will ich eh' das "last" durch "alive"/"dead" ersetzen, dann können alle schon mal damit arbeiten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Ja, habe ich gemacht. Keine Änderung. state bleibt dead und kein neuer Timestamp. Kein neues Device wurde angelegt. Im Log keine Mitteilung (verbose 3).

Beta-User

Hmmm, wenn das richtige IO bei dem neuen Device eingetragen ist (was es aufgrund des umgestellten Automatismus auch dann sein sollte, wenn später ein anderes MYSENSORS-IO definiert wurde), ist das anders, als sich meine hier verhalten (ich habe aktuell 3 neugestartete GW's mit je eigener Node, und da paßt die Zurdnung der heartbeats....

Wei gesagt, ich will am WE eh' noch ein paar Kleinigkeiten umstellen, dann kommen wir auch wieder alle auf den gleichen Stand.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

#52
Hallo zusammen,

anbei ein weiteres update für MySensors_DEVICE mdB. um allgemeines Testen und feedback.

Folgendes ist dabei umgestellt:
- die heartbeat-messages wirken sich nicht mehr auf den "state" aus, sondern werden rein intern in dem heartbeat-Reading verwaltet, dafür wird jetzt bei jeder Aktualisierung getriggert (das stelle ich bei entsprechendem Bedarf auch wieder um, man kann es aber auch über event-on... rausfiltern). Wer mag, kann stateFormat nutzen, tendenziell wäre es besser, dann für Benachrichtigungsmechanismen usw. das Reading direkt auszulesen.
- die internen Timer werden etwas anders verwaltet, das sollte aber an sich keine wesentliche Änderung der Funktionsweise mitbringen.

Der eigentliche Benefit:
Wer bei schaltbaren Nodes "setCommands" nutzt (z.B. für eine typische Relay-Node mit "on:status1:on off:status1:off"), sollte jetzt so ziemlichen den vollen Support durch die SetExtensions haben, einschließlich der Anzeige des on-for-timer usw.. im STATE.

Ist noch nicht heavily tested, also Mutige bitte voran, wäre schön, ich könnte das einigermaßen zeitnah einchecken und die mysensors.template entsprechend ergänzen...

Viel Spaß damit,

Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

Moin,
ich habe ein bisschen Fehlersuche betrieben und herausgefunden, dass mein GW keinen heartbeat sendet trotz code. Ist anscheinend ein Bug. Hier die Referenz zum Mysensors Forum:
https://forum.mysensors.org/topic/10314/heartbeat-gateway
und zu Github:
https://github.com/mysensors/MySensors/pull/1273

Mit der Modifikation von der 10_MYSENSORS_DEVICE.pm erhalte ich ein heartbeat Reading. Nach dem reconnect von meinem GW wird dies auch als alive angezeigt. Funktioniert also.  ;)
stateFormat mit heartbeat ändert wie gewohnt den STATE. Passt bisher alles.
Den Rest (setCommands etc.) habe ich bisher nicht genutzt.
LG und Danke für die Mühe!

Beta-User

@tmandel:
Gibt es im Vorgriff auf den von dir bei MySensors eingereichten Patch irgendwas, was man schon vorbereiten kann? Ich habe leider nicht so ganz verstanden, ob es jetzt ab 2.3.2 neue Message-Types geben soll oder nicht.

@SirBen:
Danke für die Rückmeldung zu unserem Problem, ich war zugegebenermaßen schon etwas ratlos.

@all:
Meine eigene Überwachung im übrigen FHEM-Code (ReadingsGroup und devStateIcon-Code) habe ich auch umgestellt, das war eigentlich eine Kleinigkeit, es mußte nur an einigen wenigen Stellen das angezogene Reading von "state" auf "heartbeat" umgestellt werden.

Ich habe noch ein paar Kleinigkeiten im Handling der SetExtensions (Canceln und Auswirkungen auf "state") geändert und will das dann wieder hier posten, wenn ich es mit ACK-Nodes selbst getestet habe. Sind nur Feinheiten (hoffe ich zumindest), das kann aber trotzdem noch etwas dauern.

Ansonsten hoffe ich, dass wir damit wieder einigermaßen up-to-date wären, und dann wieder das Aufhübschen auf der Tagesordnung stehen kann?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

SirBen

@Beta-User
Kleine Rückmeldung noch:
Die MySensorsCore.cpp habe ich entsprechend modifiziert wie es auf Github bereits von tekka in die Beta eingepflegt wurde.
Jetzt funktioniert das heartbeat-Reading wie erhofft.
Danke nochmal!
LG