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
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.
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
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.
Das ist wahr - active wechselt zwischen on und off.
Hm...
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')}
Danke Otto -
das funktioniert..!
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 :)
Also nochmal Danke! - In der Regel schalte ich die Syno aber tatsächlich nur noch von FHEM aus an oder aus.