98_WOL & devStateIcon

Begonnen von der-Lolo, 02 März 2023, 19:50:56

Vorheriges Thema - Nächstes Thema

der-Lolo

Hallo Leute,
ich habe eine WOL definition die mir die Synology DiskStation startet und herunterfährt. Es funktioniert wirklich gut und zuverlässig. Ich bekomme es nur nicht hin ein devStateIcon so zu setzen das nach einem Schaltbefehl ( egal ob an oder aus ) die übliche 10px Anzeige gelb wird...

Ich häng mal ein list des WOL an:
Internals:
   DEF        00:11:32:XX:C3:66 192.168.1.XXX UDP
   FUUID      638ba599-f33f-XXXX-c372-8e2a458161257734
   IP         192.168.1.5
   MAC        00:11:32:6E:C3:66
   MODE       UDP
   NAME       DS716WakeOnLan
   NR         699
   REPEAT     000
   STATE      off
   TYPE       WOL
   VERSION    1.05
   eventCount 521
   READINGS:
     2023-03-02 18:35:48   active          off
     2023-03-02 19:44:59   isRunning       false
     2023-03-02 11:02:22   packet_via_EW   none
     2023-03-02 11:02:22   packet_via_UDP  none
     2023-03-02 19:44:59   state           off
   helper:
Attributes:
   DbLogExclude .*
   devStateIcon off:10px-kreis-rot none:10px-kreis-gelb on:10px-kreis-gruen
   interval   60
   room       00 - Haus -> 18 - Medien -> DiskStation,00 - Haus -> 19 - Technik -> DiskStation,90 - System -> 92 - Devices ,90 - System -> 96 - Server -> DiskStation
   shutdownCmd echo ****|ssh fhem@192.168.1.XXX sudo -S poweroff
   sshHostShutdown fhem@192.168.1.XXX
   useUdpBroadcast 192.168.1.255
   verbose    2


wie müßte devStateIcon aussehen dass wenn das Modul getriggert wurde, ( on oder off ) aber noch keine Bestätigung vorliegt der 10px Kreis gelb wird..?

Gruß aus Berlin,
der-lolo

betateilchen

devStateIcon off:10px-kreis-rot on:10px-kreis-gruen .*:10px-kreis-gelb

Es kommt halt drauf an, welchen Zustand das device zu dem Zeitpunkt hat, also was zwischen dem Schaltbefehl und der Bestätigung im reading state steht.
Du kannst ja mal im Event Monitor beobachten, wie der zeitliche Ablauf ist, wenn Du einen Schaltbefehl abschickst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

der-Lolo

ah, na klar - ich glaube ich seh das Problem..
das auslösen vom webcmd on ändert nichts am state, es gibt ein zusätzliches Reading "active" hier wird der Schaltvorgang gemeldet.
Ok, wie bekomm ich das in den state?

Der Ausschnitt aus dem Event monitor:
2023-03-02 20:17:32 WOL DS716WakeOnLan active: on
2023-03-02 20:17:32 WOL DS716WakeOnLan packet_via_UDP: 192.168.1.255
2023-03-02 20:18:04 WOL DS716WakeOnLan isRunning: false
2023-03-02 20:18:04 WOL DS716WakeOnLan off
2023-03-02 20:19:05 WOL DS716WakeOnLan isRunning: true
2023-03-02 20:19:05 WOL DS716WakeOnLan on
2023-03-02 20:20:05 WOL DS716WakeOnLan isRunning: true
2023-03-02 20:20:05 WOL DS716WakeOnLan on
2023-03-02 20:21:05 WOL DS716WakeOnLan isRunning: true
2023-03-02 20:21:05 WOL DS716WakeOnLan on
2023-03-02 20:21:09 WOL DS716WakeOnLan active: off
2023-03-02 20:22:07 WOL DS716WakeOnLan isRunning: false
2023-03-02 20:22:07 WOL DS716WakeOnLan off

betateilchen

Zitat von: der-Lolo am 02 März 2023, 20:23:20
Ok, wie bekomm ich das in den state?

Falsche Frage. In state bekommst Du das überhaupt nicht.

Die Frage müsste lauten "wie bekomme ich das in STATE?"
Und die Antwort wäre: "mit dem Attribut stateFormat"

Aber aus dem Event Monitor kann ich auch bei active keinen Zustand erkennen, der nicht "on" oder "off" wäre.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

der-Lolo

Das ist wahr - active wechselt zwischen on und off.

Hm...

Otto123

#5
active gibt den Zustand ob Du on oder off gedrückt hast
state gibt den Zustand ob das Gerät on oder off ist.
Also meine Vorschlag:
attr DS716WakeOnLan stateFormat {ReadingsVal($name,'active','active') ne ReadingsVal($name,'state','state')?'none':ReadingsVal($name,'state','error')}
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

der-Lolo

Danke Otto -
das funktioniert..!

Otto123

#7
eigentlich verliert man aber so einen Zustand und ganz blöd wenn das Gerät nicht von FHEM geschaltet wurde.
Damit hat man alle vier Zustände on, on-off (shutdown), off, off-on (startup) :
attr TYPE=WOL stateFormat {my $a=ReadingsVal($name,'active','active');;my $s=ReadingsVal($name,'state','state');;$a ne $s?"$s-$a":$s}
War vielleicht nicht Deine Anforderung, aber bei mir kommt das vor :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

der-Lolo

Also nochmal Danke! - In der Regel schalte ich die Syno aber tatsächlich nur noch von FHEM aus an oder aus.