Seite 1 von 1
Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Di 18. Okt 2022, 16:04
von Snowrisk
Hallo,
ich habe eine Automatisierung erstellt, die eine Steckdose abschaltet, wenn in einem bestimmten Zeitraum die Leitung an der Dose unter 8W liegt.
Die Automatisierung funktioniert aber nur sporadisch, obwohl die Leistung an der Dose unter 8W liegt:
Code: Alles auswählen
alias: "Energiesparen: Schreibtisch aus"
description: Schreibtisch aus wenn Verbrauch unter 8 Watt nach 20:00 Uhr
trigger:
- below: 8
entity_id: sensor.shellyplugs_3_power
for:
hours: 0
minutes: 30
seconds: 0
platform: numeric_state
- platform: time
id: 600Uhr
at: "06:00:00"
- platform: state
entity_id:
- input_boolean.urlaub
to: "off"
id: Urlaub aus
condition: []
action:
- choose:
- conditions:
- condition: time
after: "20:00:00"
before: "03:00:00"
weekday:
- mon
- tue
- wed
- thu
- fri
- sat
- sun
- condition: numeric_state
entity_id: sensor.shellyplugs_3_power
below: 8
- condition: state
entity_id: switch.shellyplugs_3
state: "on"
sequence:
- type: turn_off
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
- conditions:
- condition: trigger
id: 600Uhr
- condition: device
type: is_off
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
- condition: state
entity_id: input_boolean.urlaub
state: "off"
sequence:
- type: turn_on
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
- conditions:
- condition: trigger
id: Urlaub aus
sequence:
- type: turn_on
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
mode: single
Ich denke, es liegt daran, dass manchmal schon weit vor 20:00 die Leistung für 30 min. unter 8 Watt lag und die Automatisierung daher nicht mehr ausgeführt wird - der Trigger ist halt schon "vorbei". Korrekt?
Wie kann ich so etwas abfangen?
Viele Grüße
Jens
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Mi 19. Okt 2022, 13:05
von carsten_h
Snowrisk hat geschrieben: ↑Di 18. Okt 2022, 16:04
Code: Alles auswählen
- condition: time
after: "20:00:00"
before: "03:00:00"
Mich wundert, daß es überhaupt funktioniert, denn in meinem jugendlichen Leichtsinn würde ich behaupten, daß diese Bedingung nie erfüllt sein kann, da eine Zeit nicht gleichzeitig nach 20 und vor 3 Uhr sein kann. Das geht einfach nicht, genau wie es nicht nach Sonnenuntergang und vor Sonnenaufgang gleichzeitig sein kann.
Das ist immer auf einen Tag bezogen!
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Mi 19. Okt 2022, 14:29
von Snowrisk
Was meinst Du genau? Eine der Bedingung soll sein, dass es nur zwischen 20:00 Uhr und 03:00 Uhr ausgeführt wird.
Oder klappt das über die 0 Uhr hinaus nicht und Du meintest das mit
Das ist immer auf einen Tag bezogen!
Muss ich es dann so machen?
Gilt das dann bis 0 Uhr?
VG
Jens
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Mi 19. Okt 2022, 14:37
von carsten_h
Snowrisk hat geschrieben: ↑Mi 19. Okt 2022, 14:29
Oder klappt das über die 0 Uhr hinaus nicht
Genau das!
Wenn dann muß das wie beim Sonnenunter/-aufgang mit ODER verknüpft werden.
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Mi 19. Okt 2022, 15:08
von Snowrisk
Also ändern in:
Code: Alles auswählen
condition: time
after: "21:00:00"
before: "00:00:00"
weekday:
- sun
- sat
- fri
- thu
- wed
- tue
- mon
Die Wochentage sind optional, oder?
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Mi 19. Okt 2022, 16:35
von carsten_h
Snowrisk hat geschrieben: ↑Mi 19. Okt 2022, 15:08
Das müsste auch noch wegbleiben können, denn das ist ja eigentlich klar.
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Fr 21. Okt 2022, 08:23
von Snowrisk
Ich habe die Condition geändert.
Klappt aber leider immer noch nur sporadisch - und zwar immer nur, wenn nach 21 Uhr kurz mehr Leistung (über 8 Watt)
gemessen wird.
Hat abgeschaltet:
- aus.jpg (82.28 KiB) 1188 mal betrachtet
Hat nicht abgeschaltet:
- nicht_aus.jpg (90.36 KiB) 1188 mal betrachtet
Ich vermute, dass, wenn vor 21 Uhr schon weniger als 8 Watt verbraucht werden, der entsprechende Trigger nicht mehr zieht - kann das sein?
Wie fange ich das am besten ab? Mit einem Helfer ginge ja oder gibt es eine "elegantere" Variante.
VG
Jens
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Fr 21. Okt 2022, 08:31
von carsten_h
Snowrisk hat geschrieben: ↑Fr 21. Okt 2022, 08:23
wenn vor 21 Uhr schon weniger als 8 Watt verbraucht werden, der entsprechende Trigger nicht mehr zieht
Der Auslöser wird natürlich nur ausgelöst, wenn die 8W unterschritten werden und zwar genau dann und nicht zu anderen Zeiten.
Das kannst Du sicherlich im Trace wunderbar sehen.
Wenn Du diesen Fall auch abfangen willst, mußt Du die 21Uhr auch als Auslöser nehmen und in der Bedingung der Automatisierung auch noch die unter 8W eintragen.
Dann würde also die Automatisierung zusätzlich um 21Uhr ausgelöst und überprüft, ob die 8W unterschritten sind.
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Fr 21. Okt 2022, 10:20
von Snowrisk
Ok. Ich probiers mal so aus (Trigger um 21:01):
Code: Alles auswählen
alias: "Energiesparen: Schreibtisch aus"
description: Schreibtisch aus wenn Verbrauch unter 8 Watt nach 21:00 Uhr
trigger:
- below: 8
entity_id: sensor.shellyplugs_3_power
for:
hours: 0
minutes: 30
seconds: 0
platform: numeric_state
- platform: time
id: 600Uhr
at: "06:00:00"
- platform: state
entity_id:
- input_boolean.urlaub
to: "off"
id: Urlaub aus
- platform: time
at: "21:01:00"
id: 2101Uhr
condition: []
action:
- choose:
- conditions:
- condition: time
after: "20:00:00"
before: "00:00:00"
weekday:
- mon
- tue
- wed
- thu
- fri
- sat
- sun
enabled: true
- condition: numeric_state
entity_id: sensor.shellyplugs_3_power
below: 8
- condition: state
entity_id: switch.shellyplugs_3
state: "on"
enabled: true
- condition: trigger
id: 2101Uhr
sequence:
- type: turn_off
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
- conditions:
- condition: trigger
id: 600Uhr
- condition: device
type: is_off
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
- condition: state
entity_id: input_boolean.urlaub
state: "off"
sequence:
- type: turn_on
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
- conditions:
- condition: trigger
id: Urlaub aus
sequence:
- type: turn_on
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
mode: single
VG
Jens
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Mi 26. Okt 2022, 19:25
von Osorkon
carsten_h hat geschrieben: ↑Mi 19. Okt 2022, 13:05
Mich wundert, daß es überhaupt funktioniert, denn in meinem jugendlichen Leichtsinn würde ich behaupten, daß diese Bedingung nie erfüllt sein kann, da eine Zeit nicht gleichzeitig nach 20 und vor 3 Uhr sein kann. Das geht einfach nicht, genau wie es nicht nach Sonnenuntergang und vor Sonnenaufgang gleichzeitig sein kann.
Mit der Bedingung ist alles in Ordnung.
Code: Alles auswählen
- condition: time
after: "20:00:00"
before: "03:00:00"
Es deckt die Zeit zwischen 20 Uhr und 03 Uhr ab. Dabei spielt der Tageswechsel keinen Rolle.
@carsten_h das Thema hatten wir glaube ich schon mal öfters.
Diesen Teil der Bedingung kannst Du weg lassen, da Du ja ohnehin Mo bis So berücksichtigen willst
Zum Verständnis, der Plug soll zwischen 20 Uhr und 03 Uhr abgeschaltet werden, wenn der Verbrauch 30min lang unter 8W fällt, richtig?
Du brauchst eigentlich nur einen zusätzlichen Auslöser 20Uhr in Kombination mit der Bedingung Leistung unter 8 Wat für 30 min.
Allerdings kann man den numerischen Zustand als Bedingung nicht mit der Zeit für x Minuten kombinieren.
Beim Zustand ist das wiederum möglich, frag mich nicht warum.
Möchtest Du den Zustand Leistung unter 8 W für 30 min oder länger als Bedingung nutzen, kommst Du um einen Variable bzw. Template Sensor nicht herum.
Gruß
Osorkon.
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Mi 26. Okt 2022, 20:49
von Snowrisk
@Osorkon
Möchtest Du den Zustand Leistung unter 8 W für 30 min oder länger als Bedingung nutzen, kommst Du um einen Variable bzw. Template Sensor nicht herum.
Wie meinst Du das, "eine Variable"
Templates..... Hab ich noch nie etwas mit gemacht. Muss ich mich erst einlesen.
VG
Jens
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Mi 26. Okt 2022, 21:47
von Osorkon
Snowrisk hat geschrieben: ↑Mi 26. Okt 2022, 20:49
Templates..... Hab ich noch nie etwas mit gemacht. Muss ich mich erst einlesen.
Hier mal ein trigger based binary sensor.
Dieser nimmt den Status "on" wenn 30 min lang power unter 8W
Und den Zustand "off", wenn power über 8W steigt.
Auszug aus der template.yaml
Code: Alles auswählen
- trigger:
- platform: numeric_state
entity_id:
sensor.shellyplugs_3_power
below: 8
for:
hours: 0
minutes: 30
seconds: 0
id: "on"
- platform: numeric_state
entity_id:
sensor.shellyplugs_3_power
above: 8
id: "off"
binary_sensor:
- name: "Standby"
state: "{{ trigger.id }}"
unique_id: standby_shellyplugs_3_power
name und unique_id, kannst Du natürlich frei wählen
Wann der Zustand on bzw. off ausgegeben wird, kannst Du über die id steuern.
Diesen Sensor kannst Du jetzt als Bedingung in Deiner Automatisierung verwenden.
Als Hinweis, der Zustand von trigger basierenden Sensoren wird bei Home Assistant Neustart nicht wiederhergestellt.
Das heißt , dieser hat dann erst den Zustand unbekannt, bis einer der 2 Trigger auslöst.
Gruß
Osorkon
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Do 27. Okt 2022, 08:47
von Snowrisk
@Osorkon
Ich habe das Template eingefügt:
Code: Alles auswählen
- trigger:
- platform: numeric_state
entity_id: sensor.shellyplugs_3_power
below: 8
for:
hours: 0
minutes: 30
seconds: 0
id: "on"
- platform: numeric_state
entity_id: sensor.shellyplugs_3_power
above: 8
id: "off"
binary_sensor:
- name: "Silke Schreibtisch StandBy"
state: "{{ trigger.id }}"
unique_id: silke_schreibtisch_power]
Die Automatisierung habe ich geändert. Passt das so?
Code: Alles auswählen
alias: "Energiesparen: Silke Schreibtisch aus"
description: Schreibtisch aus wenn Verbrauch unter 8 Watt nach 20:00 Uhr
trigger:
- platform: time
id: 600Uhr
at: "06:00:00"
- platform: state
entity_id:
- input_boolean.urlaub
to: "off"
id: Urlaub aus
condition: []
action:
- choose:
- conditions:
- condition: time
after: "20:00:00"
before: "03:00:00"
weekday: []
- condition: state
entity_id: switch.shellyplugs_3
state: "on"
- condition: state
entity_id: binary_sensor.silke_schreibtisch
state: "on"
sequence:
- type: turn_off
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
- conditions:
- condition: trigger
id: 600Uhr
- condition: state
entity_id: input_boolean.urlaub
state: "off"
sequence:
- type: turn_on
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
- conditions:
- condition: trigger
id: Urlaub aus
sequence:
- type: turn_on
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
mode: single
Was meintest Du mit Trigger 20 Uhr? Zusätzlich zum Zeitraum?
VG Jens
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Do 27. Okt 2022, 11:11
von Osorkon
Was war jetzt die Aufgabenstellung?
Wenn zwischen 20 Uhr und 3 Uhr die Leistung der Steckdose für 30 min unter 8W fällt, soll die Steckdose ausgeschaltet werden.
Auslöser: Leistung fällt unter 8W für 30 min.
Wenn um 20 Uhr die Leistung der Steckdose bereits länger als 30 min unter dem Wert 8 gelegen hat, soll die Steckdose ausgeschaltet werden
Auslöser Uhrzeit 20 Uhr. Hier kommt der template Sensor als Bedingung zum Einsatz.
Um 6 Uhr, wenn Urlaub = off, soll die Steckdose eingeschaltet werden
Auslöser Uhrzeit 6 Uhr
Wenn Urlaub wechselt von on zu off, soll die Steckdose eingeschaltet werden
Auslöser status Urlaub wechselt von on zu off. Bis dato hast Du hier keine Uhrzeit hier als Bedingung berücksichtig. (habe ich in meiner Automatisierung auch nicht) D.h. wechselt der Zustand Urlaub von on zu off im Zeitraum zwischen 20 Uhr und 6 Uhr, wird die Steckdose eingeschaltet.
Wenn das die Aufgabenstellung ist, sehe meine Automatisierung so aus:
Code: Alles auswählen
alias: "Energiesparen: Silke Schreibtisch aus"
description: Schreibtisch aus wenn Verbrauch unter 8 Watt nach 20:00 Uhr
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.shellyplugs_3_power
for:
hours: 0
minutes: 30
seconds: 0
below: 8
id: "off"
- platform: time
at: "20:00:00"
id: "off"
- platform: time
at: "06:00:00"
id: "on"
- platform: state
entity_id:
- input_boolean.urlaub
from: "on"
to: "off"
id: "on"
condition: []
action:
- choose:
- conditions:
- condition: trigger
id: "off"
- condition: time
after: "20:00:00"
before: "03:00:00"
- condition: state
entity_id: binary_sensor.silke_schreibtisch
state: "on"
sequence:
- service: switch.turn_off
data: {}
target:
entity_id: sensor.shellyplugs_3_power
- conditions:
- condition: trigger
id: "on"
- condition: state
entity_id: input_boolean.urlaub
state: "off"
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: sensor.shellyplugs_3_power
Hast Du den Trigger Urlaub wechselt von on zu off bewusst ausgelassen?
Also das Einschalten der Steckdose, wenn ihr aus dem Urlaub zurück kommt.
Gruß
Osorkon
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Do 27. Okt 2022, 11:29
von Snowrisk
Wenn das die Aufgabenstellung ist, sehe meine Automatisierung so aus:
Genau.
Kann ich eine Trigger-ID mehrfach vergeben? Ich dachte bisher, die muss eindeutig sein
Hast Du den Trigger Urlaub wechselt von on zu off bewusst ausgelassen?
Also das Einschalten der Steckdose, wenn ihr aus dem Urlaub zurück kommt.
War in dem vorigen Beitrag (Code: Automatisierung) doch drin?
Der Teil hier:
Trigger:
Code: Alles auswählen
trigger:
- platform: state
entity_id:
- input_boolean.urlaub
to: "off"
id: Urlaub aus
Condition:
Code: Alles auswählen
- conditions:
- condition: trigger
id: Urlaub aus
sequence:
- type: turn_on
device_id: 047c93d9b6168f3257b340308c0ede00
entity_id: switch.shellyplugs_3
domain: switch
Oder meinst Du das "direkte" Einschalten der Steckdose, wenn ich den Urlaubsmodus ausschalte?
Das habe ich tatsächlich vergessen, sollte aber, wenn ich es richtig lese, in Deinem Code drin sein.
VG
Jens
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Do 27. Okt 2022, 16:21
von Osorkon
Snowrisk hat geschrieben: ↑Do 27. Okt 2022, 11:29
Kann ich eine Trigger-ID mehrfach vergeben?
Ja, kannst Du.
Ich meine diesen Teil. Wenn Du nach 20 Uhr und vor 6 Uhr den Urlaubs Modus auf aus stellst. Wird die Steckdose eingeschaltet.
Code: Alles auswählen
- conditions:
- condition: trigger
id: "on"
- condition: state
entity_id: input_boolean.urlaub
state: "off"
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: sensor.shellyplugs_3_power
Hier könnte man noch die Bedingung nur zwischen 6 Uhr und 20 Uhr einfügen.
Code: Alles auswählen
- conditions:
- condition: trigger
id: "on"
- condition: state
entity_id: input_boolean.urlaub
state: "off"
- condition: time
after: "06:00:00"
before: "20:00:00"
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: sensor.shellyplugs_3_power
Snowrisk hat geschrieben: ↑Do 27. Okt 2022, 11:29
Oder meinst Du das "direkte" Einschalten der Steckdose, wenn ich den Urlaubsmodus ausschalte?
Das habe ich tatsächlich vergessen, sollte aber, wenn ich es richtig lese, in Deinem Code drin sein.
Das ausschalten der Steckdose, wenn Urlaub Modus wechselt zu On, würde noch fehlen.
Den als Zusätzlichen Trigger hinzufügen, mit einer neuen ID (nicht "off"), z.B. "off_urlaub" und einen neue Option mit der Bedingung Trigger = off_urlaub und Aktion switch ausschalten.
Dann wäre das die neue Automatisierung:
Code: Alles auswählen
alias: "Energiesparen: Silke Schreibtisch aus"
description: Schreibtisch aus wenn Verbrauch unter 8 Watt nach 20:00 Uhr
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.shellyplugs_3_power
for:
hours: 0
minutes: 30
seconds: 0
below: 8
id: "off"
- platform: time
at: "20:00:00"
id: "off"
- platform: time
at: "06:00:00"
id: "on"
- platform: state
entity_id:
- input_boolean.urlaub
from: "on"
to: "off"
id: "on"
- platform: state
entity_id:
- input_boolean.urlaub
from: "off"
to: "on"
id: "off-urlaub"
condition: []
action:
- choose:
- conditions:
- condition: trigger
id: "off"
- condition: time
after: "20:00:00"
before: "03:00:00"
- condition: state
entity_id: binary_sensor.silke_schreibtisch
state: "on"
sequence:
- service: switch.turn_off
data: {}
target:
entity_id: sensor.shellyplugs_3_power
- conditions:
- condition: trigger
id: "on"
- condition: time
after: "06:00:00"
before: "20:00:00"
- condition: state
entity_id: input_boolean.urlaub
state: "off"
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: sensor.shellyplugs_3_power
- conditions:
- condition: trigger
id: "off_urlaub"
sequence:
- service: switch.turn_off
data: {}
target:
entity_id: sensor.shellyplugs_3_power
Gruß
Osorkon
Re: Steckdose bei Unterschreitung einer bestimmten Leistung abschalten
Verfasst: Fr 28. Okt 2022, 07:36
von Snowrisk
Danke. Funktioniert besser als meine
Noch eine Frage bzgl. der Mehrfachnutzung einer ID.
Ich sehe die mehrfach vergebene ID dann aber in der visuellen Benutzeroberfläche in der Aktion auch mehrfach.
Z.B. wenn die ID "off" 2-mal vergeben ist, sehe ich die in der Aktion "Ausgelöst durch ID" auch 2-mal.
Welche ich dann auswähle, ist egal?