Einzelne Devices mit Schalter temporär ausschalten

Begonnen von cyrusfd, 21 Juli 2021, 14:33:33

Vorheriges Thema - Nächstes Thema

cyrusfd

Hallo,
ich steuere über einen Raspberry Pi meine Gartenbeleuchtung. Die Lampen werden mit einer Fhem-Schaltuhr gesteuert. Bei Sonnenuntergang an und um 22:30 wieder aus. Sie lassen sich auch über das GUI einzeln ansteuern.
Ich möchte nun, dass es möglich ist einige der 4 Kreise temporär durch Betätigung eines Schalters nicht in die Schaltuhrsteuerung einzubeziehen.


Vielen Dank für eure Hilfe
C


define Garten_Lampen structure room set HM_57E255_Sw_01 HM_57E255_Sw_02,HM_57E255_Sw_03 HM_57E255_Sw_04
setuuid Garten_Lampen 60f71d54-f33f-913d-a55f-c9bde9e24c4be28d
attr Garten_Lampen alias alle Lampen
attr Garten_Lampen group Garten
attr Garten_Lampen room Außenbeleuchtung
attr Garten_Lampen webCmd :
define Garten_Licht_an at *{sunset("HORIZON=-0.833",0,"16:00","22:30")} {fhem("set Garten_Lampen on") if (Value("Schaltuhr_an_aus") eq "an");;;;}
setuuid Garten_Licht_an 60f71d54-f33f-913d-1b67-2d0e9ae1568e279b
attr Garten_Licht_an alias Lampen an
attr Garten_Licht_an group Schaltuhr
attr Garten_Licht_an room Außenbeleuchtung
define Garten_Licht_aus at *22:30 set FileLog_HM_57E255 absorb FileLog_HM_5AB634
setuuid Garten_Licht_aus 60f71d54-f33f-913d-5e7b-b49767000c49f638
attr Garten_Licht_aus alias Lampen aus
attr Garten_Licht_aus group Schaltuhr
attr Garten_Licht_aus room Außenbeleuchtung

DeeSPe

Ich löse solche Dinge über einen zusätzlichen Dummy (Lichtautomatik) und frage den dann mit ab, ob er eingeschaltet ist.

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

cyrusfd

vielen Dank!
Hättest du vielleicht einen Beispiel-Code für mich. Ich bin nicht wirklich der FHEM-Experte ;-)
LG

DeeSPe

Dummy (Beispiel):
defmod fl_AutoLight dummy
attr fl_AutoLight alias Lichtautomatik Flur
attr fl_AutoLight cmdIcon an:general_an@green aus:general_aus@red
attr fl_AutoLight event-on-change-reading .*
attr fl_AutoLight icon on
attr fl_AutoLight setList an aus


Und dann im at mit abfragen:
define Garten_Licht_an at *{sunset("HORIZON=-0.833",0,"16:00","22:30")} {fhem("set Garten_Lampen on") if (Value("Schaltuhr_an_aus") eq "an" && Value("fl_AutoLight") eq "an")}

Gruzß
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

cyrusfd


betateilchen

Mit Value() zu arbeiten, ist mehr als gruslig...

Wenn es nicht ausgerechnet Homematic Channels wären, die da beeinflusst werden sollen, könnte man z.B. einzelne Schaltaktoren einfach per "attr <Aktor> disable 1" kennzeichnen, dann passiert einfach gar nichts, wenn die structure schaltet.

Bei Homematic geht das prinzipiell auch, ist aber etwas umständlicher, man müsste ein entsprechendes Register setzen, damit beim Schalten über die structure einfach nix passiert.

Alternativ könnte man auch ein einzelnes Gerät per Tastendruck mittels delstruct aus der structure entfernen und mit addstruct wieder aufnehmen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

...oder man speichert einen bestimmten "structure"-Zustand in einem Reading ab und ruft dann diesen Zustand wieder auf (sollte unabhängig vom TYPE gehen, der an der structure beteiligt ist).

bzgl. Value(): +1, besser "ReadingsVal(...,'state','<default>')" oä. verwenden, das ist genauer...

Aber zur structure noch - dieser cfg-Auszug ist "komisch":define Garten_Lampen structure room set HM_57E255_Sw_01 HM_57E255_Sw_02,HM_57E255_Sw_03 HM_57E255_Sw_04
Wie hast du das eingegeben?
Falls du direkt in der cfg rumeditierst: besser sein lassen, da passieren sonst ggf. Fehler. Hier sind zumindest das "set" und das Komma (statt eines Leerzeichens) m.E. hinterfragenswürdig ;) .


Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

cyrusfd

Zitat von: Beta-User am 21 Juli 2021, 16:45:53
...oder man speichert einen bestimmten "structure"-Zustand in einem Reading ab und ruft dann diesen Zustand wieder auf (sollte unabhängig vom TYPE gehen, der an der structure beteiligt ist).

bzgl. Value(): +1, besser "ReadingsVal(...,'state','<default>')" oä. verwenden, das ist genauer...

Aber zur structure noch - dieser cfg-Auszug ist "komisch":define Garten_Lampen structure room set HM_57E255_Sw_01 HM_57E255_Sw_02,HM_57E255_Sw_03 HM_57E255_Sw_04
Wie hast du das eingegeben?
Falls du direkt in der cfg rumeditierst: besser sein lassen, da passieren sonst ggf. Fehler. Hier sind zumindest das "set" und das Komma (statt eines Leerzeichens) m.E. hinterfragenswürdig ;) .

Nein, habe ich nicht in cfg editiert. Das habe ich mir vor einigen Jahren aus dem Forum zusammengesucht ;-). Da ich schon lange nicht mehr damit gearbeitet habe, ist leider das gesamte Wissen wieder weg. Wenn man FHEM kennt, ist es ja ein sehr umfangreiches und sehr flexibles System, nur die Programmierung ist für mich sehr undurchsichtig und schwer zu verstehen.