[gelöst] CMD-Befehl aus Dummy aufrufen

Begonnen von Mundus, 19 Mai 2017, 23:49:42

Vorheriges Thema - Nächstes Thema

Mundus

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

KernSani

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()}

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

LuckyDay

oder nimm ein readingsProxy
dort gibt es ein setFn wo man das direkt abhändeln kann
wiki ist da dein Freund

RaspiLED

#3
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, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Mundus

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