zwei Internal Werte abrufen

Begonnen von kl_ha, 24 August 2019, 17:12:21

Vorheriges Thema - Nächstes Thema

kl_ha

Moin

Möchte gerne zwei Internalwerte abrufen, leider wird nur der zweite Internalwert zurückgegeben.

Ich gebe folgenden Code in die Kommandozeile ein:

{InternalVal('MyInfoBot', 'sentMsgText','');;InternalVal('MyInfoBot', 'sentMsgId',0)}


Kann mir da jemand auf die Sprünge helfen?

Gruß
Klaus

Wzut


{InternalVal('MyInfoBot', 'sentMsgText','')." ".InternalVal('MyInfoBot', 'sentMsgId',0)}

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

kl_ha

Funktioniert leider nicht. Bekomme eine 0 zurück.

kl_ha

Das funktioniert(Verkettung Strings).

Jetzt habe ich noch eine Frage.


{json_append_message(InternalVal('MyInfoBot', 'sentMsgId',0),InternalVal('MyInfoBot','sentMsgText',''));;fhem('set MyinfoBot message Tasse fehlt')}


So funktioniert es, aber eigentlich möchte ich es so starten

{fhem('set MyinfoBot message Tasse fehlt');;json_append_message(InternalVal('MyInfoBot', 'sentMsgId',0),InternalVal('MyInfoBot','sentMsgText',''))}


Heisst erst die Message verschicken und dann die sentMsgId auslesen.

Sieht so aud das Tlegram erst nach einer gewissen Zeit die sentMsgId bereit stellt.
Ist es möglich nach dem verschicken der Nachricht eine kleine Verzögerung einzubauen , solange bis Telegramm die sentMsgId bereitstellt?




Wzut

warum die Interals und nicht die Readings ?
Msg raus -> notify auf das reading sentMsgId -> Rest machen
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

kl_ha

Danke es funktioniert mit ReadingsVal und InternalVal

Bekomme da ganze define noch nicht zu laufen


define wd_Kue_Window watchdog HM_5BD3CD:open 00:15:00 HM_5BD3CD:closed {fhem("set MyInfoBot message Kuechenfenster schliessen");;json_append_message(ReadingsVal('MyInfoBot','sentMsgId',0),InternalVal('MyInfoBot','sentMsgText','fail'))};; trigger wd_Kue_Window .


Bekomme die Meldung
Unknown command {fhem("set, try help.
Unknown command

zurück

Wzut

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

kl_ha

Weil ich gerne watchdog verwenden möchte.
Es liegt wahrscheinlich an der Syntax. Denn wenn ich jeder der Funktion einzeln benutze funktioniert es.


define wd_Kue_Window watchdog HM_5BD3CD:open 00:01:00 HM_5BD3CD:closed {json_append_message(ReadingsVal('MyInfoBot','sentMsgId',0),InternalVal('MyInfoBot','sentMsgText','fail'))};; trigger wd_Kue_Window .


Jetzt habe ich herausgefunden wie es funktionieren könnte.

define wd_Kue_Window watchdog HM_5BD3CD:open 00:15:00 HM_5BD3CD:closed {fhem("set MyInfoBot message Kuechenfenster schliessen");;json_append_message(ReadingsVal('MyInfoBot','sentMsgId',0),InternalVal('MyInfoBot','sentMsgText','fail'));; fhem ("trigger wd_Kue_Window .");;}


Hier ist das Problem das Telegramm wahrscheinlich die sentMsgId zu spät updatet. Ich bekomme die vorherige sentMsgId.
Eine Idee wäre erst Funtion wenn sich die sentMsgId geändert hat.

Wzut

Zitat von: kl_ha am 25 August 2019, 14:08:12
Eine Idee wäre erst Funtion wenn sich die sentMsgId geändert hat.
und stell dir vor das wurde sogar schon erfunden .... wie war doch gleich der Name .... ? achja notify
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

kl_ha

Woher sollte notify wissen das die sentMsgId aktuell ist?

kl_ha

b.z.w was könnte man tun wenn sie nicht aktuell ist?

MadMax-FHEM

Notify reagiert auf einen Evenz, z.B. sentMsgId hat sich geändert...

fhem ist eigentlich Event-basiert...
...auf Events kann man reagieren: notify, watchdog, DOIF, ...

Dazu halt mal die Einsteigerdoku lesen und auch Links die gepostet werden...

Oder auch einfach mal den Eventmonitor aufmachen und sehen was da so alles passiert auf das man reagieren könnte...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)