FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AnBad am 23 März 2021, 18:20:35

Titel: Aktion auslösen bei zwei Kanälen
Beitrag von: AnBad am 23 März 2021, 18:20:35
Hallo,

ich habe ein Einbaumodul mit zwei schaltbaren Kanälen: channel0 und channel1. Ich möchte wenn z.B. channel0 auf "on" gestellt wird, dass dieser sich nach 20 Minuten wieder auf "off" stellt. Das soll auch ausgelöst werden, wenn der kabelgebundene Schalter channel0 auf "on" schaltet. Von daher funktioniert "on-for-timer" nicht.

Wichtig dabei ist auch, dass sollte der channel1 zwischenzeitlich ebenfalls auf "on" geschaltet werden, der Countdown bei channel0 nicht verändert wird wie auch visavi.

Bisher habe ich dies kompliziert über zusätliche Dummyschalter, diverse notify usw. gelöst.

Wie kann man das besser lösen?

Vielen Dank.

Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: Wzut am 23 März 2021, 19:21:01
wenn du andere nach etwas "besserem" fragst solltest du zuerst das "schlechtere" vorzeigen ... :)
Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: AnBad am 23 März 2021, 19:43:34
Hallo,
das ist schwierig zu zeigen, weil ich mir ja über einen Dummy, notify usw. über drei Ecken helfen musste.

Wie folgt in der Art sollte es aussehen, wobei ein Gerät, was bereits "on" ist jetzt mit "on-for-timer" überschreiben???:

define n_dev_EinbauModul5 notify dev_EinbauModul5:channel0:.* {if(ReadingsVal("dev_EinbauModul5","channel0","") eq "on") { fhem("set dev_EinbauModul5 channel0 on-for-timer 20") } }


Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: Otto123 am 23 März 2021, 22:57:50
ich hab es nicht verstanden, aber das notify kannst Du kürzen:
define n_dev_EinbauModul5 notify dev_EinbauModul5:channel0:.on sleep 0.1;;set $NAME channel0 on-for-timer 20
In der Annahme das die Events stimmen -> Eventmonitor ;)
Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: AnBad am 23 März 2021, 23:12:20
Hallo,
das ist schon mal ein guter Tipp mit der Kürzung ".on". Das muss ich morgen gleich probieren.

Das eigentliche Problem:
Der Notifyer soll nach dem Einschalten (on) von dev_EinbauModul5 channel0 einen Befehl auslösen, der nach 20 Minuten das def_EinbauModul5 channel0 wieder ausschaltet (off). Das soll auch funktionieren, wann channel0 mit dem kabelgebundenen Taster eingeschaltet wurde; on-for-timer kann man ja nicht mit dem Taster auslösen.
Dazu habe ich zwischenzeitlich festgestellt, dass on-for-timer nur auf channel0 angewendet werden kann und nicht auf channel1.

Das ganze ist dazu gedacht: Morgens hänge ich Ipad, Notebook an deren Ladegerät. Das hinter die Steckdose verbaute Enocean-Modul kann ich mit einem Taster einschalten. Jetzt will ich nicht, dass die Ladegeräte bis abends eingeschaltet sind, sondern das Enocean-Modul soll durch FHEM gesteuert z.B. nach 2 Stunden den Strom ausschalten.

Vielen Dank
Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: Otto123 am 23 März 2021, 23:31:18
Dann mach doch einfach define n_dev_EinbauModul5 notify dev_EinbauModul5:channel0:.on sleep 7200;;set $NAME channel0 off

Kann das Modul Leistung messen?

Ich habe sowas ähnliches, wenn die Leistung größer 10 Watt ist startet der Vorgang, bei kleiner 1 Watt wird nach 60 sec wieder abgeschaltet:
defmod di_wm DOIF ([$SELF:"^running:.0$"]) (set PSD3_Sw off) DOELSEIF\
([PSD3_Pwr:power] > 10 )(setreading $SELF running 1) DOELSEIF \
([PSD3_Pwr:power] < 1 and [$SELF:running] eq '1')(sleep 1;;setreading $SELF running 0)\

attr di_wm cmdState Pause|on|off
attr di_wm room TestPower
attr di_wm wait 0:0:60
Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: AnBad am 24 März 2021, 06:23:05
Ok, zwei Fragen noch dazu:

sleep legt nur den notifyer zum "schlafen" und nicht das ganze FHEM?

Was hast Du für ein Modul, was die Leistung messen kann?

Ich habe ein das Modul NodOn SIN-2-2-01 EnOcean Unterputz Modul 2x1,1kW Schaltleistung 2 Kanäle. Wobei ich gerade sehe, dass das Ding nur eine Schaltleistung von 1100 Watt hat. D.h. da liegt ich wohl mit meinen Ladegeräten drüber und kann das so gar nicht bauen. Ergänzung: Habe gerade kontrolliert: Das Notbookladegerät hat 1.5 A und das Ladegerät Ipad/Iphone hat 1.8 A. Solle alles funktionieren.
Der von Eltako "Multifunktions-Stromstoßschalter 230V. 1+1 Schließer nicht potenzialfrei 10A/250V AC" würde wahrscheinlich die bessere Lösung sein? Gibt es noch ein anderes Modul?

Vielen Dank.
Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: MadMax-FHEM am 24 März 2021, 07:54:19
Ja so legt es fhem nicht lahm!

Siehe sleep in commandref.
D.h. wenn dem sleep ein fhem Befehl folgt (hier der off), dann kein Problem.

Ich glaube nicht, dass du mit einem Notebook/Handyladegerät 1100Watt schaffst!

Du musst bei den Ampere schon schauen auf welcher Seite ;)

Also:

5V 1,8A sind ganz was anderes als 230V 1,8A! ;)

Also ich nehme mal schwer an, dass das Handyladegerät so max. 10Watt verbrät.

Beim Notebook verm. 18V und 1,5A also sagen wir mal so 30/40Watt

Da bsit du mit beidem noch weit von den 1100Wat entfernt...

Ich denke mal Staubsuager, Fön etc. geht eher in die Richtung... ;)

Ah:
Zitat
Ergänzung: Habe gerade kontrolliert: Das Notbookladegerät hat 1.5 A und das Ladegerät Ipad/Iphone hat 1.8 A. Solle alles funktionieren.
Jep, sollte gehen ;)

Nein das NodOn hat keine Leistungsmessung. Habe ich selber...
Willst du getrennt schalten?
Oder nutzt du nur einen Kanal?

Wenn du nur einen Kanal nutzen willst, dann kannst du auch einen default-Kanal setzen und einfach: set NodOn on / off nutzen ohne, dass du den Kanal angeben musst.

Gruß, Joachim
Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: Otto123 am 24 März 2021, 08:28:24
Zitat von: AnBad am 24 März 2021, 06:23:05
sleep legt nur den notifyer zum "schlafen" und nicht das ganze FHEM?

Was hast Du für ein Modul, was die Leistung messen kann?
Moin,

es legt den Befehl in einen Zeitschalter analog zu einem at. Das notify reagiert sofort der Befehl danach kommt erst um die Zeit verzögert.

Mein Modul ist eine Homematic Zwischenstecker mit Leistungsmessung - ich habe kein enocean :)

Gruß Otto
Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: Sany am 24 März 2021, 09:25:26
Guten Morgen,

ZitatDer Notifyer soll nach dem Einschalten (on) von dev_EinbauModul5 channel0 einen Befehl auslösen, der nach 20 Minuten das def_EinbauModul5 channel0 wieder ausschaltet (off). Das soll auch funktionieren, wann channel0 mit dem kabelgebundenen Taster eingeschaltet wurde; on-for-timer kann man ja nicht mit dem Taster auslösen.
Dazu habe ich zwischenzeitlich festgestellt, dass on-for-timer nur auf channel0 angewendet werden kann und nicht auf channel1.

Das ganze ist dazu gedacht: Morgens hänge ich Ipad, Notebook an deren Ladegerät. Das hinter die Steckdose verbaute Enocean-Modul kann ich mit einem Taster einschalten. Jetzt will ich nicht, dass die Ladegeräte bis abends eingeschaltet sind, sondern das Enocean-Modul soll durch FHEM gesteuert z.B. nach 2 Stunden den Strom ausschalten.

Bitte mal den Eventmonitor öffnen, den Schaltkanal eintragen, von fhem aus schalten und direkt am Gerät schalten und das hier posten. Dann sieht man, welche Events deinen Wunsch auslösen können. Besser noch: die Zeile mit dem on-Befehl komplett markieren, oben auf create/modify.. klicken und dann je nach Lust und Laune notify oder DOIF auswählen und den dann gezeigten Befehl hier posten.
Ich würde ein DOIF nehmen, das sollte dann in etwa so aussehen:
defmod deinDOIF DOIF (["^dev_EinbauModul5$:^channel0:.on$"])
   (set dev_EinbauModul5 channel0 off)
attr deinDOIF do always
attr deinDOIF wait 7200

!!ungetestet, besonders der Event-trigger ist nur "geschätzt". Den lieferst Du.!!
Das macht folgendes: es lauscht auf den Event "dev_EinbauModul5 on", wenn dieser eintrifft wir nach 7200s der Ausschaltbefehl gesendet. Du sprichst zwar mal von 20min und von 2h, dass musst Du einfach als sekunden bei wait eintragen.
Wäre das was für Dich?

Titel: Antw:Aktion auslösen bei zwei Kanälen
Beitrag von: AnBad am 24 März 2021, 18:26:04
An alle vielen Dank. Sowohl als Notifyer und auch als DoIf funktioniert es jetzt prima! Tausend Dank.
PS: Muss ich das "Thema schließen" hier im Forum?