Hi,
in die Befehlszeile von FHEM kann ich den Befehl
{FBLANValues()}
eingeben und es wird ein von mir geschriebenes Tool ordnunsggemäß aufgerufen und abgearbeitet. Mein Wunsch ist es, diesen Befehl als webcmd in einem Dummy zu nutzen.
Leider funktionieren die verschiedensten Varianten -die ich ausprobiert habe- nicht:
attr <device> webcmd {fhem {FBLANValues()}}:Aktualisieren
attr <device> webcmd {fhem{{FBLANValues()}}}:Aktualisieren
attr <device> webcmd CMD: >{{FBLANValues()}}:Aktualisieren
Das List des Device hänge ich zur Vervollständigung an
Internals:
NAME dFritzLan
NR 55
STATE LAN: 3 | W-LAN: 5
TYPE dummy
Readings:
2017-05-19 23:43:33 AktiveLanGeraete 3
2017-05-19 23:43:33 AktiveWLanGeraete 5
2017-05-19 23:43:33 DownloadAktuell 13831
2017-05-19 23:43:33 DownloadMax 14368
2017-05-19 23:43:33 FritzCPUTemp 60
2017-05-19 23:43:33 UploadAktuell 1181
2017-05-19 23:43:33 UploadMax 1260
2017-05-19 23:34:40 state {fhem{{FBLANValues()}}
Attributes:
alias Fritz LAN Geräte
eventMap {fhem{{FBLANValues()}}:Aktualisieren
room ADummy
stateFormat LAN: AktiveLanGeraete | W-LAN: AktiveWLanGeraete
webCmd Aktualisieren
Wie gelingt es mir, den Befehl, den ich in die Befehlszeile eingebe, direkt aus dem Dummy aufzurufen?
Gruß
Mundus
Zitat von: Mundus am 19 Mai 2017, 23:49:42
Wie gelingt es mir, den Befehl, den ich in die Befehlszeile eingebe, direkt aus dem Dummy aufzurufen?
Hi Mundus,
dazu brauchst du ein notify... Mal auf die Schnelle (und ungetestet)
attr dFritzLan webcmd update
und
define n_dFritzLan notify dFritzLan:update {FBLANValues()}
oder nimm ein readingsProxy
dort gibt es ein setFn wo man das direkt abhändeln kann
wiki ist da dein Freund
Hi,
und hier mal ein Beispiel mit folgender Logik:
Ein Gerät hat einen Zustand (on, off, Button cmd gedrückt). Bei Änderung dieses Zustandes (Button cmd wird gedrückt) gibt es einen Event. Auf dieses Event reagiert ein notify und schaltet das Gerät aus.
Für den dummy d1:
Internals:
CFGFN
NAME d1
NR 16290
STATE off
TYPE dummy
Readings:
2017-05-20 00:48:22 state off
Attributes:
room Test
webCmd on:cmd:off
Und das notify dazu:
Internals:
CFGFN
DEF d1 { if ( "$EVENT" eq "cmd") {fhem("set d1 off")} }
NAME d1notify
NOTIFYDEV d1
NR 16467
NTFY_ORDER 50-Schalter1Notify
REGEXP d1
STATE 2017-05-20 00:48:22
TYPE notify
Readings:
2017-05-20 00:45:05 state active
Attributes:
room Test
Den Befehl must du halt noch tauschen ;-)
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Hallo und vielen Dank.
Die Lösung ist, nachdem ihr sie mir geschrieben habt, sehr offensichtlich und funktioniert schon tadellos.
Wenn es interessiert, mein Notify sieht wie folgt aus:Internals:
CFGFN
DEF dFritzLan.Aktualisieren {FBLANValues()}
NAME nt_dFritzLan
NR 1072
NTFY_ORDER 50-nt_FB_Lan_actual
REGEXP dFritzLan.Aktualisieren
STATE 2017-05-20 06:44:59
TYPE notify
Readings:
2017-05-20 06:43:30 state active
Attributes:
group Helfer
room Fritzbox
und natürlich im Dummy das Attribut webcmd Aktualisieren anpassen und das eventMap entfernen.
Gruß
Mundus