Updateankündigung: Änderung des Verhaltens von state (alive->SetExtensions)

Begonnen von Beta-User, 15 April 2019, 15:02:49

Vorheriges Thema - Nächstes Thema

Beta-User

Hallo zusammen,

wie bereits v.a. in diesem Thread hier vorangekündigt, sind einige Änderungen in Planung:

Zum einen soll das alive/dead/NACK-Thema aus dem state herausgenommen werden. Man kann zukünftig dieselben Informationen direkt aus dem heartbeat-Reading entnehmen, wer das weiter im STATE sehen will, müßte dazu nur ein stateFormat definieren. Eventhandler und Readingsgroups müssen dann entsprechend angepaßt werden, was aber eine Sache von wenigen Minuten sein sollte.

Dafür bekommt man eine sinnvolle Anzeige für on-for-timer&Co, also alles, was die SetExtensions so an timer-Befehlen kennen, (siehe hier), jedenfalls für einen schaltbaren Kanal. Ein passendes attrTemplate, mit dem man das für den Relay-Sketch testen kann, kommt heute abend, so dass ihr das ab morgen früh dann austesten könnt. In dem file sollten dann auch die ersten Multiicon-stateFormat-templates drin sein.
Wer dazu noch weitere Vorschläge hat oder was von den Standardsketchen "vertemplaten" kann: gerne, ich habe selbst nicht so viel Hardware...

Das Update sollte auch mit der Sensorik und vor allem auch Aktorik direkt an Gateways (wenn man mehrere hat) besser klarkommen, vor allem direkt neue Devices anlegen, wenn bereits ein MYSENSORS_0 für ein anderes GW existiert.

Dann wird die Zeitanforderung noch mit der lokalen Zeit beantwortet (siehe hier).

Wegfallen lassen würde ich das Versions-Attribut, das wurde zuletzt sowieso nicht mehr aus den Vorgaben der Nodes aktualisiert, was bisher keinem aufgefallen zu sein scheint (gibt einmalig ein paar Logeinträge).

Bitte um Tests und Rückmeldungen dazu, auch wenn jemand mit den Änderungen nicht einverstanden sein sollte, ansonsten geht die angehängte Fassung (nur noch etwas von unnötigen Kommentaren gesäubert) voraussichtlich in KW 18 ins svn :) . Bis dato läuft das bei mir seit einigen Tagen auch im Produkivsystem, bisher völlig stressfrei; lediglich die jüngsten sehr kleinen Änderungen rund um die SetExtensions-Anzeige sind nur kurz angetestet, die sollten aber auch keine Probleme verursachen.

Grüße,

Beta-User

EDIT: Aktualisierte Version angefügt.
Diese zeigt jetzt (zumindest in den meisten Fällen, ausgenommen Nodes, für die ein ACK angefordert wird) auch den aktuellen Timerzustand im state an, wenn man das Attribut setExtensionsEvent gesetzt hat.
Kurzform:
attr MYSENSOR_98 setExtensionsEvent 1
attr MYSENSOR_98 setCommands on:status1:on off:status1:off
attr MYSENSOR_98 devStateIcon .*on:on .*off:off on.(for.timer|till.*):on-for-timer:off off.(for.timer|till.*):off-for-timer:on blink.*:light_toggle:off
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

dirkcx

Hallo @Beta-User,

was zeigt denn dann das Reading "sleepState" an? Du verwendest das nach wie vor im Code. Wo ist die Abgrenzung zu "heartbeat"?
Dass das "Versions-Attribut" nicht mehr verwendet wird, ist mir vermutlich deshalb nicht aufgefallen, weil es von "früher" belegt war, also es ist halt immer noch da und ich habe scheinbar seit dem keine neuen Nodes aufgenommen. Ich brauche es nicht unbedingt, schaden tuts aber auch nicht. Also warum entfernen?

Ansonsten weiterhin vielen Dank, dass Du hier so intensiv dran arbeitest. Ich nutze MySensors weiterhin sehr gerne. Gerade am Wochenende habe ich einen Osram Lightify RGBW Flex (5m) im Garten anschließen wollen und musste feststellen, dass die Entfernung zum Gateway zu groß ist - kein Empfang. Meine MySensors-Nodes kommen mit weiteren Entfernungen locker klar ;-) (wenn auch mit der Variante NRF24L01+PA+LNA mit Antenne)

Viele Grüße, Dirk
Server: Gigabyte GB-BACE3160 | Ubuntu 20.04 LTS Server | aktuelles FHEM | CULUSB (busware) FS20/FHT/... | MySensors: seriell / esp8266 | ZigBee (Zigbee CC2531 / zigbee2mqtt) | homebridge / homebridge-config-ui

Beta-User

Ah, guter Punkt mit sleepState (meine schlafen alle nicht, daher war mir das nicht so gegenwärtig...).
Also full story dazu:
Es ist kein "nach wie vor", sondern es gibt jetzt ein weiteres Reading, damit die, die das im STATE haben wollen, das via stateFormat dahin bekommen können. Da es nicht direkt was mit heartbeat zu tun hat, habe ich das separat gesetzt. Das könnte man zwar auch in den heartbeat reinwursteln, wenn gewünscht (ich finde, es ist eine andere Info, daher ist es jetzt separat). Es gibt zum Schlafzustand auch schon eine Zeitlang ein Internal, das im Code direkt verwendet wird, aber das ist z.B. auch für devStateIcon in der Multiicon-Variante nicht so einfach nutzbar, daher an der Stelle die Doppelung mit einem weiteren Reading.

Was das Version-Attribut angeht: Die "alte Funktionalität" war eigentlich schon länger tot, es wurde nicht mehr aus der Presentation gesetzt (ich habe mehrere GW's und dann immer beim Systemstart rote Fragezeichen bei MYSENSR_0... Wäre zwar jetzt auch Vergangenheit, aber so ist der Stand eben gerade). Da die gleiche Info in einem Internal verfügbar ist, ist es m.E. einfach nutzlos, irgendwelche weiteren Auswirkungen im Code hatte es nie, und die auswählbare "1.4" ist auch seit längerem überholt. Diese Art der Datenhaltung scheint noch aus der Zeit zu kommen, als die Klassifizierung in Readings, Internals und Attribute noch etwas anders war (so ähnlich wie das mit Value() bei den holiday-Devices bei holiday2we). 
Wenn es keinen echten Grund gibt, das drin zu lassen, bleib es raus, ich finde es nicht mehr zeitgemäß und müßte es wieder aktiv einbauen (was aber auch keine große Sache wäre)...

Ansonsten Danke für den Dank.
Ist letztlich auch so, dass mir MySensors auch sehr ans Herz gewachsen ist, weil man nicht nur unterschiedlich potente Funkhardware nehmen kann, sondern auch alle möglichen Transport-Varianten hat (Kabel!, LoRa), oder diverse MCU's - das ganze, ohne dabei letztlich den Grundcode massiv anpassen zu müssen. Macht es interessanter als Kaufhardware 8) , aber weniger kompliziert, als mir z.B. AskSin++ vorkommt (vermutlich auch sehr gut, aber viel aufwändiger, was das "drumrum" angeht).
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

Moin zusammen,

die SetExtensions-Info im state funktioniert jetzt auch weitgehend, aktualisierte Fassung des Modul im Anhang des Ausganspost.

Was noch nicht geht: Das ganze will nicht, wenn man ein ACK anfordert; wer da eine Idee hat: her damit... Ansonsten muß man erst mal mit diesem kleinen Makel leben.
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

Guten Morgen zusammen,

seit eben sind die angekündigten Änderungen im svn und kommen mit dem nächsten Update.
Bitte also beachten, dass es ein paar Warnmeldungen zu dem entfallenen Attribut geben kann und die Reading-Verweise geändert werden müssen, wenn heartbeat, smartSleep etc. im STATE angezeigt werden sollen.

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