Bestimmte Devices bei Hausstatus schalten (Userattribut oder Userreading)

Begonnen von Gunther, 27 April 2020, 22:11:45

Vorheriges Thema - Nächstes Thema

Gunther

Folgende Anforderung möchte ich umsetzen:

Ich habe verschiedene Devices wie Lampen und Steckdosen.

Nun möchte ich diesen mitgeben können, ob sie bei einer Hausstatusänderung ausgeschaltet werden sollen.
Meine Idee ist es drei Userattribute zu nutzen:
aus_schlafen
aus_abwesend
aus_urlaub


jeweils ja und nein

Nun möchte ich in einem DOIF auf Statusänderungen reagieren und generell alle Devices mit "ja" beim entsprechenden Status/Statuswechsel ausschalten.
Davon verspreche ich mir, dass ich bei weiteren Geräten nicht das DOIF anpassen muss, sondern einfach Attribute hinzufüge.

1.) Wie mache ich das im DOIF, dass ich Geräte mit diesen Attributen abschalte?

Außerdem möchte ich die Attribute per Schalter ändern können (ja <--> nein).
2.) Wie kann ich ein Attribut setzen per set-Befehl? Finde leider in der commandref nur setdefaultattr
Ich verstehe den Befehl nicht. Folgendes geht nicht:
setdefaultattr lamp aus_abwesend nein

3.) Oder bin ich hier auf einem falschen Weg? Macht es mehr Sinn über Userreadings nachzudenken oder gibt es noch etwas Besseres?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

ok, 1.) klappt so:
set aus_abwesend=ja:FILTER=state=an aus
Schaltet alle Devices in denen das Attribut "aus_abwesend" auf "ja" steht und die gerade "an" sind "aus"
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

amenomade

1:DOIF ([@"":state:$_ eq "on" and AttrVal($name,"aus_abwesend","") eq "ja"]) reagiert bei Statusänderung auf "on" von allen Devices, die ein Attr aus_schlafen auf "ja" haben.
Die Lösung von Gunther kann dann im Befehl kommen, um nur die betroffene Devices zu schalten

2: ein Attribut kannt man nicht per set Befehl setzen. Der Befehl heisst "attr". Eine Änderung eines Attributs benötigt dann ein "save" der Konfig. Alternativ nutzt man ein reading, den man mit "setreading" setzt.

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gunther

Danke,

folgendes klappt schonmal:
defmod doif_userreading_lampe_schalten DOIF ([test_Status:"^2$"]) (set aus_abwesend=ja:FILTER=state=an aus)\
DOELSEIF ([test_Status:"^3$"]) (set aus_schlafen=ja:FILTER=state=an aus)\
DOELSEIF ([test_Status:"^4$"]) (set aus_urlaub=ja:FILTER=state=an aus)
attr doif_userreading_lampe_schalten do always


Jetzt ist die Frage, wie ich geschickt die Attribute per Tablet UI setzen kann?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

amenomade

Zitat von: Gunther am 27 April 2020, 22:55:18
Danke,

folgendes klappt schonmal:
defmod doif_userreading_lampe_schalten DOIF ([test_Status:"^2$"]) (set aus_abwesend=ja:FILTER=state=an aus)\
DOELSEIF ([test_Status:"^3$"]) (set aus_schlafen=ja:FILTER=state=an aus)\
DOELSEIF ([test_Status:"^4$"]) (set aus_urlaub=ja:FILTER=state=an aus)
attr doif_userreading_lampe_schalten do always


Jetzt ist die Frage, wie ich geschickt die Attribute per Tablet UI setzen kann?
Du willst das per Tablet UI setzen? Dann rate ich wieder von einem Attribut ab. Nimm eher ein Reading. Sonst jedes Mal, wenn Du es in Tablet UI setzt, hast Du in Fhem das Fragezeichen bei "Save config"

Wenn Du unbedingt ein attr willst, dann einfach das Parameter data-cmd="attr" setzen (Widget Push, oder Checkbox, oder Switch o.ä)
Genauso kann man auch data-cmd="setreading" setzen. Das Gute mit dem Reading ist, dass TabletUI den jetzigen Wert auch zeigen kann...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gunther

OK danke, dann denke ich um.

1.) Wie sieht dann der alternative Befehl zu dem mit dem Attribut aus?
set aus_schlafen=ja:FILTER=state=an aus)

2.) Wie kann ich denn ein Reading in der FHEM Oberfläche mit Auswahlwerten versehen und per "Schalter" setzen?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

amenomade

set a:aus_schlafen=ja:FILTER=state=an aus für ein Attribut
set r:aus_schlafen=ja:FILTER=state=an aus für ein Reading

Siehe https://fhem.de/commandref_DE.html#devspec
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Und zu 2.: mit setList für ein DOIF oder ein dummy. Für andere Geräte ist es nicht so einfach
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gunther

FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

Hat wunderbar funktioniert. Danke! Toll, wie Ihr hier unterstützt!

Hier meine Lösung inkl. Tablet UI Umsetzung:
https://forum.fhem.de/index.php?topic=110810.msg1049608#msg1049608
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden