Hallo zusammen,
ich bekomme es nicht hin, bei der Nutzung des internen Timers im Perl Modus zwei Geräte gleichzeitig zu schalten.
Die Zeile sieht so aus:
{
set_Exec("$DEVICE_timer",'$count == 0 ? 300: (300/$count)','fhem_set ("xxxtelegram message ".::com_control." ".::AttrVal("$DEVICE","alias",""). " ist noch offen")', '$count < 9'); set_State("cmd_1",0)
}
Ich würde gerne noch eine Nachricht über den MQTT Broker verschicken, nachdem die Telegram Nachricht raus ist. Wie bekomme ich das hin. Bisher habe ich es nur hinbekommen, dass der MQTT Aufruf noch mit an der Nachricht hang, oder ich habe Fehlermeldungen produziert.
Vielen Dank vorab und Grüße,
Max
Du hast hier einen Block definiert. Dieser wird erst dann ausgeführt, wenn ein Trigger zuschlägt. Ich sehe in deinem Block aber keine Triggerangaben.
Hi Damian,
den Trigger habe ich im Posting weggelassen. Wenn das Fenster offen ist, wird der Ausführungsblock he triggert.
Der Block funktioniert dank Deiner Hilfe auch tadellos.
< Fenster wurde geöffnet >
{
if (["^FTK_:open|255"] and AttrVal("$DEVICE","room","") !~ /Garage|Garten/ and [rgr_Bewohner] !~ /gotosleep/)
{
set_Exec("$DEVICE_timer",'$count == 0 ? 300: (300/$count)','fhem_set ("xxxtelegram message ".::com_control." ".::AttrVal("$DEVICE","alias",""). " ist noch offen")', '$count < 9'); set_State("cmd_1",0)
}
}
< Fenster wurde geschlossen >
{
if (["^FTK_:clos(e|ed)|0"] and AttrVal("$DEVICE","room","") !~ /Garage|Garten/)
{
del_Exec("$DEVICE_timer")
}
}
Jetzt wollte ich aber, wenn der trigger auslöst, neben der telegram Nachricht noch eine Message per MQTT verschicken.
Ich weiß nur nicht wie ich das in den Block bewerkstellige?
Beste Grüße und besten Dank vorab,
Max
Das ist der Befehl, der ausgeführt wird:
'fhem_set ("xxxtelegram message ".::com_control." ".::AttrVal("$DEVICE","alias",""). " ist noch offen")'
dort kannst du noch andere Perl-Funktionen einfügen:
'mqttsenden ("bla bla");fhem_set ("xxxtelegram message ".::com_control." ".::AttrVal("$DEVICE","alias",""). " ist noch offen")'
Hi Damian,
wie immer besten Dank.
Eine Verständnisfrage habe ich aber noch:
Warum kommt in diesem Beispiel mqttsenden ohne ein fhem_set aus?
Ich hatte das Wiki so verstanden, dass fhem_set das eigentlich >Set< MQTT publish Blabla" ersetzt?
Besten Dank vorgab und schönes Wochenende,
Max
Es war ja nur ein allgemeines Beispiel für eine Perlfunktion "mqttsenden", die man zuvor definiert haben muss.
Du kannst natürlich fhem_set ("MQTT publish blabla") statt mqttsenden ("blabla") schreiben.