Steckdose ausschalten, wenn eine gewisse Zeit unter gewisser Stromstärke

Begonnen von -kw, 22 Juli 2019, 19:03:26

Vorheriges Thema - Nächstes Thema

-kw

Hallo :)

Ich habe die Sichfunktion genutzt und auch schon sehr viel gelesen, doch leider steige ich noch nicht durch :(
Ich hoffe, ihr könnt mir helfen?

Ich habe eine WLAN-Funksteckdose (HS110), an der mein Drucker hängt. Leider vergesse ich oft, den nach dem drucken wieder auszumachen. Deswegen möchte ich gerne eine Regeln definieren, die die Steckdose ausschaltet, wenn


  • Die Steckdose für mind. 2min an und
  • Der Strom seit mind. 30 Sekunden unter 0,2A ist

Ich vermute, dass man das über ein DOIF realisiert:

define switchTrigger DOIF ([HS110:current] < 0.2) (set HS110 off)
DOELSE
(set HS110 on)

attr switchTrigger wait 30


Jedoch wird dann nur der momentane Wert alle 30 Sekunden geprüft und nicht der durchgängige Verlauf.

Ich bin mir sicher, dass das geht, ich weiß aber nicht wie.  :-[
Könnte mir das bitte jemand erklären? Danke!  ;)

Peteruser

Ubuntu+Debian FHEM + ESPEasy + Homematic + ConBee + DUROFERN

gloob

So überwache ich meinen 3D Drucker. Sollte sich leicht anpassen lassen:

defmod CR_10_Fertig DOIF ([HM_HMIP_PSM_0001D3C99C5D88:6.POWER] > 5 and [?CR_10_Fertig] =~ "cmd_4|initialize|initialized")(set teleBot message "CR-10 ist an.")\
DOELSEIF ([HM_HMIP_PSM_0001D3C99C5D88:6.POWER] > 15 and [?CR_10_Fertig] eq "cmd_1")(set teleBot message "CR-10 läuft.")\
DOELSEIF ([HM_HMIP_PSM_0001D3C99C5D88:6.POWER] > 15 and [?CR_10_Fertig] eq "cmd_2")(set teleBot message "CR-10 ist fertig.", set HM_HMIP_PSM_0001D3C99C5D88 off)\
DOELSEIF ([HM_HMIP_PSM_0001D3C99C5D88:6.POWER] < 5 and [?CR_10_Fertig] =~ "cmd_3|cmd_1")(set teleBot message "CR-10 ist aus.")
attr CR_10_Fertig do resetwait
attr CR_10_Fertig room 3D_Drucker
attr CR_10_Fertig wait 0:0:600:0
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

-kw

Zitat von: gloob am 22 Juli 2019, 20:25:41
So überwache ich meinen 3D Drucker. Sollte sich leicht anpassen lassen:

Vielen Dank erstmal dafür!
Eine Frage habe ich dazu: Was haben die cmd_1, cmd_2 usw zu bedeuten? Sind das Gerätespezifische Status?

@Peteruser:
Danke für den Link, ich werde das mal in Ruhe durcharbeiten :)

-kw

Soo,

ich habe ein wenig rumgespielt und tatsächlich war der Link von Peteruser sehr hilfreich!

Ich habe es zunächst mit meinem Geschirrspüler gemacht (Problem, bleibt das gleiche): Wenn mind 65min power < 1, dann ausschalten und eine Telegram-Benachrichtigung senden.

Folgendes:

#Steckdose für Geschirrspüler
define HS110_Geschirrspueler TPLinkHS110 192.168.1.10
attr HS110_Geschirrspueler event-min-interval 20

#TelegramBot
define telegramBot TelegramBot

#Merker, ob Geschirrspüler einen hohen Verbrauch hat, oder sich im Stndby befindet.
define GeschirrspuelerHoherVerbrauch dummy
attr GeschirrspuelerHoherVerbrauch event-on-change-reading state

#Merker auf ON setzen, wenn Geschirrspüler an + Power > 1
define GeschirrspuelerVerbrauchAn notify HS110_Geschirrspueler:power.* {\
fhem (\
"set GeschirrspuelerHoherVerbrauch on;;\
setstate GeschirrspuelerAutoStandby defined"\
) if (\
ReadingsVal("HS110_Geschirrspueler","power","") > 1 &&\
Value("HS110_Geschirrspueler") eq "on"\
)\
}
#Merker auf OFF setzen, wenn Geschirrspüler an + Power < 1
define GeschirrspuelerVerbrauchAus notify HS110_Geschirrspueler:power.* {\
fhem ("\
set GeschirrspuelerHoherVerbrauch off;; \
")\
if (ReadingsVal("HS110_Geschirrspueler","power","") <= 1 && Value("HS110_Geschirrspueler") eq "on")\
}
attr GeschirrspuelerVerbrauchAus room _Küche

#Watchdog: Wenn GeschirrspuelerHoherVerbrauch 1h5min auf OFF, dann Steckdose aus + 2 Telegram-Nachrichten
define GeschirrspuelerAutoStandby watchdog GeschirrspuelerHoherVerbrauch:off 01:05 \
GeschirrspuelerHoherVerbrauch:on \
set HS110_Geschirrspueler off;; \
set telegramBot message Geschirrspüler aus;; \
set telegramBot cmdSend { plotAsPng('SVG_Geschirrspueler_Verlauf_1') };;
attr GeschirrspuelerAutoStandby regexp1WontReactivate 1
attr GeschirrspuelerAutoStandby room _Küche


Ich habe es noch nicht vollständig getestet, das müsste es aber sein :) Und viel wichtiger: Ich habe es verstanden!

Eine Frage noch:
setstate GeschirrspuelerAutoStandby defined
Ich habe es so verstanden, dass es den Watchdog zurücksetzt. Ist das richtig?

gloob

Ich kann mein DOIF auch gerne erklären:

Zitatdefmod CR_10_Fertig DOIF ([HM_HMIP_PSM_0001D3C99C5D88:6.POWER] > 5 and [?CR_10_Fertig] =~ "cmd_4|initialize|initialized")(set teleBot message "CR-10 ist an.")\
DOELSEIF ([HM_HMIP_PSM_0001D3C99C5D88:6.POWER] > 15 and [?CR_10_Fertig] eq "cmd_1")(set teleBot message "CR-10 läuft.")\
DOELSEIF ([HM_HMIP_PSM_0001D3C99C5D88:6.POWER] > 15 and [?CR_10_Fertig] eq "cmd_2")(set teleBot message "CR-10 ist fertig.", set HM_HMIP_PSM_0001D3C99C5D88 off)\
DOELSEIF ([HM_HMIP_PSM_0001D3C99C5D88:6.POWER] < 5 and [?CR_10_Fertig] =~ "cmd_3|cmd_1")(set teleBot message "CR-10 ist aus.")
attr CR_10_Fertig do resetwait
attr CR_10_Fertig room 3D_Drucker
attr CR_10_Fertig wait 0:0:600:0

Wenn Power größer als 5 ist und der Drucker aus war oder das DOIF "initialized", wird das erste cmd des DOIF ausgeführt und der Drucker befindet sich im Status "an".
Danach wird geprüft, wenn Power > 15 und der Drucker "an" ist, dann läuft der Drucker und druckt. cmd_2 wird ausgeführt, der Drucker befindet sich dann im Status "Läuft".
Wenn Power innerhalb von 600 Sekunden nicht mehr größer als 15 ist, wird cmd_3 ausgeführt und der Drucker befindet sich im Status "Fertig".
Ist Power < 5 und der Drucker war "An" oder "Fertig" wird er aus geschaltet über cmd_4.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Brice

Zitat von: -kw am 23 Juli 2019, 17:58:42
Eine Frage noch:
setstate GeschirrspuelerAutoStandby defined
Ich habe es so verstanden, dass es den Watchdog zurücksetzt. Ist das richtig?
attr GeschirrspuelerAutoStandby  autoRestart 1
ist der Weg, um den Watchdog zurückzusetzen. Dieses setstate <watchdog> defined war nie dokumentiert.
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

-kw

@Brice:
Alles klar, danke :)

@gloob:
Danke nochmal für die Erklärung =)