FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: juppy_jupp am 07 Februar 2022, 20:17:09

Titel: AT mit mehreren SET Befehlen
Beitrag von: juppy_jupp am 07 Februar 2022, 20:17:09
Hallo,

ich versuche meine ersten Schritte bei der Hausautomatisierung mit FHEM.

Hier möchte ich zwei Lampen per AT Befehl dämmerungsgesteuert abendlich einschalten, das klappt soweit mit:

define Abendlicht *{sunset(-1800,"17:00","22:00")} set Lampe1,Lampe2 on

Jetzt ist meine zweite Lampe dimmbar und ich möchte einen bestimmten Dimmerwert (brightness) beim Einschalten übergeben.

Ein "set Lampe2 brightness 120" alleine funktioniert

Folgende SET Varianten blieben erfolglos:

set Lampe1,Lampe2 on, set Lampe2 brightness 120
set Lampe1,Lampe2 on; set Lampe2 brightness 120
(set Lampe1,Lampe2 on) (set Lampe2 brightness 200)
{ fhem("set Lampe1,Lampe2 on"); fhem("set Lampe2 brightness 200");}


Je nach Variante wird nur die Lampe eingeschaltet, aber nicht der Dimmwert übergeben oder es kommet eine Syntaxfehler.

Ist es überhaupt möglich mit dem AT Befehl  mehrere SET Kommados auszuführen.
Wenn ja, wie kann man die sinnvoll aneinander reihen?

Gruss Jupp
Titel: Antw:AT mit mehreren SET Befehlen
Beitrag von: betateilchen am 07 Februar 2022, 20:20:24
Zitat von: juppy_jupp am 07 Februar 2022, 20:17:09
Ist es überhaupt möglich mit dem AT Befehl  mehrere SET Kommados auszuführen.
Wenn ja, wie kann man die sinnvoll aneinander reihen?

Natürlich, hinter jeden Befehl einen Strichpunkt.
Genau so, wie es in der Doku steht.

https://commandref.fhem.de/#command
Titel: Antw:AT mit mehreren SET Befehlen
Beitrag von: Otto123 am 07 Februar 2022, 20:57:49
Zitat von: betateilchen am 07 Februar 2022, 20:20:24
Natürlich, hinter jeden Befehl einen Strichpunkt.
beim define Befehl müssen es zwei ( ;; ) sein, sonst wird die Lampe sofort gedimmt ;)
Die letzte Variante hätte durch umsortieren :) oder in der DEF mit nur einem ; funktioniert:

Edit: Code berichtigt
define Abendlicht at *{sunset(-1800,"17:00","22:00")} { fhem("set Lampe1,Lampe2 on");; fhem("set Lampe2 brightness 200")}

So könnte man es direkt "drüber feuern":
defmod Abendlicht at *{sunset(-1800,"17:00","22:00")} set Lampe1,Lampe2 on;;set Lampe2 brightness 200

Titel: [Gelöst] AT mit mehreren SET Befehlen
Beitrag von: juppy_jupp am 08 Februar 2022, 09:39:09
Hallo,

danke für die schnelle und kompetente Rückmeldung.
Lesen hilft ;-), in der Commandref zu "FHEM Befehlstypen" war ja sogar eine adequates Beispiel aufgeführt, ich hab nur die Ref für "AT" durchforstet

Ein:
defmod Abendlicht *{sunset(-1800,"17:00","22:00")} set Lampe1,Lampe2 on;;set Lampe2 brightness 200
bringt die Lösung.

Mir war nicht bewusst das ich ein Semikolon für die Maskierung voranstellen muss, das dann hinterher in der Definition verschwindet.

Gruss Jupp
Titel: Antw:[Gelöst] AT mit mehreren SET Befehlen
Beitrag von: betateilchen am 08 Februar 2022, 10:04:22
Zitat von: juppy_jupp am 08 Februar 2022, 09:39:09
defmod Abendlicht *{sunset(-1800,"17:00","22:00")} set Lampe1,Lampe2 on;;set Lampe2 brightness 200
bringt die Lösung.

Ich glaube nicht, dass das so funktioniert. In der Definition fehlt zumindest das "at" als deviceType.
Das fehlte auch schon im Eröffnungsbeitrag und in Ottos beiden Vorschlägen.

Man sollte "erfolgreiche Lösungen" die man hier beschreibt, zumindest mal ausprobiert haben...  ;)

Zitat von: Otto123 am 07 Februar 2022, 20:57:49
beim define Befehl müssen es zwei ( ;; ) sein

Zitat von: juppy_jupp am 08 Februar 2022, 09:39:09
Mir war nicht bewusst das ich ein Semikolon für die Maskierung voranstellen muss, das dann hinterher in der Definition verschwindet.

Was das Thema einfache oder doppelte Semikolon angeht: es kommt darauf an, wo man das Ganze eingibt.
Im DEF Editor reicht ein einzelnes Semikolon.
Titel: Antw:[Gelöst] AT mit mehreren SET Befehlen
Beitrag von: Otto123 am 08 Februar 2022, 11:28:30
Zitat von: betateilchen am 08 Februar 2022, 10:04:22
Man sollte "erfolgreiche Lösungen" die man hier beschreibt, zumindest mal ausprobiert haben...  ;)
Asche auf mein Haupt  :-[
Titel: [gelöst] AT mit mehreren SET Befehlen
Beitrag von: juppy_jupp am 07 April 2024, 15:29:10
Hi,

abschließend noch die funktionierende Definition aus der fhem.cfg

Für das Einschalten beider Lampen und das Setzen der Helligkeit von Lampe 2 abhängig vom Sonnenuntergang:
define Abendlicht_an at *{sunset(-1800,"17:00","22:00")} set Lampe1,Lampe2 on;; set Lampe2 brightness 100
Für das Ausschalten beider Lampen um 23:00 Uhr:
define Abendlicht_aus at *23:00 set Lampe1,Lampe2 off
Ich habe hier bewusst zwei Timer definiert. Man könnte auch im ersten Timer das 'on' um 'till 23:00' erweiteren. Mir ist jedoch aufgefallen das der Ausschaltzeitpunkt bei zwischenzeitlich manueller Statusänderung der Lampen wohl gelöscht wird.
Um sicher zu gehen das um 23:00 beide Lampen auch ausgehen, habe ich das getrennt.

Gruss Jupp