[GELÖST] Alle fünf Minuten einen von drei Befehlen senden

Begonnen von MrAlbi, 13 Juni 2019, 22:52:03

Vorheriges Thema - Nächstes Thema

MrAlbi

Hallo zusammen,
ich habe zwei nanoCUL (868Mhz) und möchte beiden alle 5 Minuten einen anderen raw-Befehl schicken. Hört sich erstmal simpel an, aber bisher habe ich kein vergleichbares Thema gefunden und auch nicht den richtigen Weg. Deswegen bin ich für direkte Hilfe oder Verweise auf ein entsprechendes Thema dankbar.
Mein gewünschter Ablauf:
Nach 5 Minuten soll der erste CUL1 den Befehl set CUL868_1 raw Nr1 und der CUL2 set CUL868_2 raw Nr1erhalten.
Nach weiteren fünf Minuten sollen dann die gleichen Befehle mit Nr2 geschickt werden und nach weiteren 5 Minuten dann Nr3. Weitere fünf Minuten später soll soll wieder Nr1 geschickt werden usw.
Ich hatte den Dummy "CUL868_RAW" angelegt, der sich Nr1, Nr2 bzw. Nr3 merken soll, mit einer if-Anweisung wollte ich dann den Wert aus dem Dummy auslesen und dann den nächsten Wert senden, aber es klappt nicht.
Hier der Code von dem at-Befehl:
+*00:05:00 if([CUL868_RAW:state] eq "Nr3")
set CUL868_1 raw Nr1; set CUL868_2 raw Nr1; set CUL868_RAW Nr1
elsif([CUL868_RAW:state] eq "Nr2")
set CUL868_1 raw Nr3; set CUL868_2 raw Nr3; set CUL868_RAW Nr3
elsif([CUL868_RAW:state] eq "Nr1")
set CUL868_1 raw Nr2; set CUL868_2 raw Nr2; set CUL868_RAW Nr2


Sehr wahrschlich geht das alles ganz einfach...
RP 3, CUL 866MHz,CUL 433MHz Jalousiesteuerung, Somfi, Wetter und IT-Funksteckdosen.

amenomade

#1
DOIF ([+:15])
(set CUL1 raw1, set CUL2 raw1)
(set CUL1 raw2)
(set CUL2 raw3)

attr wait 0,300,300

oder at: +*00:15 {fhem "set CUL1 raw1; set CUL2 raw1; wait 300; set CUL1 raw2; wait 300; set CUL2 raw3"}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax-FHEM

#2
@amenomade: muss es nicht statt 'wait' 'sleep' heißen!? ;) (und die set-Befehle sind andere die er wollte aber das wird der TE schon umsetzen können ;)  )

@Transclan:

Prinzipiell würde dein Zeugs auch tun...
ABER: du musst zuerst Perl "einleiten" mittels { da du ja Perl-if verwendest.
Und die Perl-Ebene wieder verlassen mit } eh klar ;)
Oder fhem-IF verwenden...
Damit müssen set-Befehle dann per Perl-Befel aufgerufen werden: fhem("set irgendwas")
Dann kommt entweder nach if etc. eine geschweifte Klammer auf/zu und dazwischen mehrere Befehle die bei der Bedingung ausgeführt werden sollen oder eben genau EIN Befehl... (und nicht 3)
Dann musst du nat. den Dummy erst mal initialisieren weil sonst ist ja keine deiner Bedingungen wahr...

Und: es gibt doch bestimmt Fehlermeldungen... Wäre gut die zu haben. Weil: geht nicht/klappt nicht etc. hilft nicht zu helfen... ;)

Nur kurz und knapp das Nötigste, kann grad nur daddeln... ;)

EDIT: sehr viel eleganter und v.a. kürzer und v.a. ohne Dummy sind nat. die Vorschläge mit 'sleep' im 'at' bzw. DOIF mit wait Attributen... ;)

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)

amenomade

Ja sleep, natürlich. Ich muss sleep gehen... :-[
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax-FHEM

Zitat von: amenomade am 13 Juni 2019, 23:48:40
Ja sleep, natürlich. Ich muss sleep gehen... :-[

Sowas machst du?
Du bist doch gefühlt rund um die Uhr "hier"... ;)

Gute Nacht, 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)

MrAlbi

Danke euch beiden für die tollen Antworten.
Mit dem at-Befehl
+*00:15 {fhem "set CUL868 raw Nr1; set CUL1 raw Nr1; sleep 300; set CUL868 raw Nr2; set CUL1 raw Nr2; sleep 300; set CUL868 raw Nr3; set CUL1 raw Nr3"} hat es dann geklappt.

Super, wünsche euch noch einen schönen Tag.

Gruß Dirk
RP 3, CUL 866MHz,CUL 433MHz Jalousiesteuerung, Somfi, Wetter und IT-Funksteckdosen.

DeeSPe

Mit:
"set CUL868,CUL1 raw Nr1; sleep 300; set CUL868,CUL1 raw Nr2; sleep 300; set CUL868,CUL1 raw Nr3"
geht es auch noch etwas kürzer.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

MadMax-FHEM

Sollte ohne geschweifte Klammer (Wechsel nach Perl) und den dann nötigen Aufruf fhem("Befehl") (Wechsel "zurück" nach fhem) auch gehen, dann aber wohl mit doppelten ;;

+*00:15 set CUL868,CUL1 raw Nr1;; sleep 300;; set CUL868,CUL1 raw Nr2;; sleep 300;; set CUL868,CUL1 raw Nr3

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)