Gerät für gewisse Zeit deaktivieren

Begonnen von Meister_Petz, 23 August 2023, 14:38:26

Vorheriges Thema - Nächstes Thema

Meister_Petz

Moin,

hat jemand eine Idee wie man ein device für eine gewisse Zeit deaktiviert.
Problemstellung: Es gibt ein paar devices, die die Kellerlüftung schalten. Außerdem gibt es ein device, dass die Lüftung alle 15 Minuten für eine Minute anschaltet. In dieser Minute sollen alle anderen devices die die Lüftung schalten deaktiviert werden. Der code sieht so aus.

defmod Lueftung_an60 at +*00:15:00 {\
fhem("set Lueftung on-for-timer 60");;\
}

Ich suche so etwas:
defmod Lueftung_an60 at +*00:15:00 {\
fhem("set Lueftung on-for-timer 60");;\
fhem("<deaktiviere andere-Lüftungssteuerung1 für 60 Sekunden>");;\
fhem("<deaktiviere andere-Lüftungssteuerung2 für 60 Sekunden>");;\
}

Danke

Petz

CaP

Hallo Meister_Petz,

ich versuche mich mal an einer ersten Antwort, ich bin auch nur FHEM-Hobbytüfftler...

Je nachdem mit welchem Modul du die anderen Lüftungssteuerungen schaltest, könntest du dort eine Bedingung einfügen.

"Führe Lueftung1, 2, 3, etc. nur aus, wenn die Bedingung Lueftung (die, die du im at schaltest) ist "off" erfüllt ist". Ggf. geht das dann über ein if/IF. Solange dein at dann die Lüftung auf "on" schaltet (60 s) werden die anderen Aktionen aufgrund der nicht erfüllten Bedingung auch nicht ausgeführt.

Gruß CaP

MadMax-FHEM

Manche Devices/Module bieten auch ein set Device inactive an...

Ansonsten: attr Device disable 1/0

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)

Meister_Petz

Zitat von: CaP am 23 August 2023, 14:51:58"Führe Lueftung1, 2, 3, etc. nur aus, wenn die Bedingung Lueftung (die, die du im at schaltest) ist "off" erfüllt ist". Ggf. geht das dann über ein if/IF. Solange dein at dann die Lüftung auf "on" schaltet (60 s) werden die anderen Aktionen aufgrund der nicht erfüllten Bedingung auch nicht ausgeführt.

Danke erstmal. So leicht gehts leider nicht. Weil ein Lueftung1, 2, 3 die Lüftung gegebenfalls auch an schaltet.

Meister_Petz

Zitat von: MadMax-FHEM am 23 August 2023, 14:59:32attr Device disable 1/0

Genau das würde ich gerne setzen. Aber wie geht das für 60 Sekunden also im Prinzip:

setreading Lüftungssteuerung1 disable 1 für 60 Sekunden

Danke schon mal

MadMax-FHEM

Zitat von: Meister_Petz am 23 August 2023, 16:24:56setreading Lüftungssteuerung1 disable 1 für 60 Sekunden
Das ist schon mal ganz falsch, weil es ein Attribut und kein Reading ist.

attr Device disable 1; sleep 60; attr Device disable 0

ABER: um welche Art von Devices handelt es sich? Weil vielleicht geht es eleganter. Bzw. was sind deine "Gesamtkonstrukte", weil vielleicht geht es eleganter...

Weil z.B. 1. erscheint immer das rote Fragezeichen und 2. wenn fhem neu gestartet wird, dann gültet was eben fest in der Config beim Device gespeichert ist (disable 1 oder eben 0)

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)

Beta-User

Je nachdem könnte man auch mit "disabledForIntervals" arbeiten und z.B. ReadingsAge eines (zusätzlich) gesetzten Readings (Schaltanlass?) mit auswerten. Aber ohne "Butter bei die Fische" ist es schwierig, da was konkretes dazu zu schreiben....
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

betateilchen

#7
defmod Lueftung_an60 at +*00:15:00 {\
fhem("set Lueftung on-for-timer 60");;\
}

Zum einen brauchst Du da kein fhem() weil Du ja einen FHEM Befehl und keine perl Funktion ausführst.

defmod Lueftung_an60 at +*00:15:00 set Lueftung on-for-timer 60

Dann kannst Du einfach noch zusätzlich einen Parameter setzen, der dafür sorgt, dass "andere Lüftersteuerung" prüfen kann, ob sie überhaupt schalten darf.

defmod Lueftung_an60 at +*00:15:00 set Lueftung on-for-timer 60;; setreading Lueftung force 1

In "andere Lüftersteuerung" musst Du dann einfach nur prüfen, ob das Flag gesetzt ist:

defmod andere_Steuerung at|notify|wasAuchImmer ... {return if ReadingsNum('Lueftung','force',0);; ansonsten führe den gewünschten Code aus...}

Und als dritten Schritt musst Du nach 60 Sekunden das Flag wieder zurücksetzen.

defmod Lueftung_an60 at +*00:15:00 set Lueftung on-for-timer 60;; setreading Lueftung force 1;; sleep 60;; deletereading Lueftung force
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

jhohmann

Ein at bietet auch ein set xxx inactive und set xxx active.
Dann kann man sich das Flag sparen und es gibt auch kein rotes Dreieck.
Raspberry Pi 4 - bookworm / EnOcean - Rollo+Licht, deCONZ - Licht+Sensoren, ZWave - CO Messung, HMCCU mit piVCCU - Heizung+Rollo
plus dovecot, minidlna

betateilchen

Zitat von: jhohmann am 23 August 2023, 21:29:50Ein at bietet auch ein set xxx inactive und set xxx active.
Dann kann man sich das Flag sparen und es gibt auch kein rotes Dreieck.

Wo soll denn da ein rotes Dreieck herkommen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Meister_Petz

Danke für die guten Ansätze, ich werde mal testen was sich gut umsetzen lässt und werde berichten

jhohmann

Zitat von: betateilchen am 23 August 2023, 21:39:40
Zitat von: jhohmann am 23 August 2023, 21:29:50Ein at bietet auch ein set xxx inactive und set xxx active.
Dann kann man sich das Flag sparen und es gibt auch kein rotes Dreieck.

Wo soll denn da ein rotes Dreieck herkommen?
Oben wurde als Lösung ein attr xxx disable 1 empfohlen. Diese Änderung sorgt für eine "man sollte speichern" Warnung, oder nicht?
Das set xxx inactive bei einem at macht das nicht und das Ding ist trotzdem inaktiv.
Raspberry Pi 4 - bookworm / EnOcean - Rollo+Licht, deCONZ - Licht+Sensoren, ZWave - CO Messung, HMCCU mit piVCCU - Heizung+Rollo
plus dovecot, minidlna

MadMax-FHEM

Zitat von: jhohmann am 24 August 2023, 10:07:34Oben wurde als Lösung ein attr xxx disable 1 empfohlen. Diese Änderung sorgt für eine "man sollte speichern" Warnung, oder nicht?
Ja aber es gibt kein rotes Dreieck... ;)

Es ist ein rotes Fragezeichen 8)

EDIT: und bei der vorgeschlagenen Nutzung des Flags gibt es keine Warnung, weil ein Reading...

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)

MadMax-FHEM

Zitat von: Meister_Petz am 24 August 2023, 09:44:19Danke für die guten Ansätze, ich werde mal testen was sich gut umsetzen lässt und werde berichten

Kann man so machen, schade, dass du keine weiteren Informationen lieferst...

Viel Erfolg!

Am Ende die Lösung mitteilen wäre u.U. hilfreiche für zukünftige Fragesteller...

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)

Meister_Petz

Gerne auch mit mehr Infos:
Es geht um die Kellerentfeuchtung. Es gibt bei mir folgende Sensoren für die Luftfeuchtigkeit (absolut):
- Aussen
- Keller

Es gibt einen Lüfter, der die Kellerluft in einen Lichtschacht hinaus bläst:
- wenn die absolute Luftfeuchtigkeit draußen niedriger ist als drinnen
- einmal alle 15 Minuten für eine Minute, damit der Kamin keinen "Zug" nach oben aufbaut, was dazu führen würde, dass allein durch den Zug Luft von draußen in den Keller gesaugt wird.
- und da der Lüfter in der Werkstatt ist, möchte ich ihn auch anschalten können, wenn mal was staubt oder stinkt,...

Der automatische Schaltvorgang durch die Feuchtigkeitssensoren wird einmal pro Minute "getriggert" und schaltet dann eventuell den Lüfter aus, obwohl er durch mich manuell oder wegen der "Kaminzugumkehr" angeschaltet ist.

Deswegen meine Frage.