Moin zusammen.
Ich bin dabei meine eigene Regelung für die Abwasserpumpe zu erstellen.
Nun ist es so, dass bei der Programmierung erst auf Statusänderung reagiert wird.
Hier ein paar Beispiele:
- Level zum Einschalten der Pumpe erreicht, aber wird nicht eingeschaltet
- Eingang für Motorschutz oder Temperaturüberwachung sind low, kriege aber keine Fehlermeldung
Ich muss immer erst einen Signalwechsel vollziehen, also high zu low und wieder high oder Level unterschreiten und dann wieder überschreiten.
Hier mal mein Programm:
# analoger Eingang
sensor:
- platform: adc
pin: A0
name: "Pegelstand"
id: pegelstand
filters:
- calibrate_linear:
- 0.001 -> 100
- 1.000 -> 0
unit_of_measurement: "%"
accuracy_decimals: 0
update_interval: 10s
on_value_range:
- above: 90.0
then:
- switch.turn_on: awp
- delay: 120s
- if:
condition:
and:
- switch.is_on: awp
- sensor.in_range:
id: pegelstand
above: 71.0
then:
- logger.log: "Zeitüberschreitung"
- switch.turn_off: awp
- text_sensor.template.publish:
id: meldungen
state: !lambda 'return "Zeitüberschreitung";'
- below: 70.0
then:
- switch.turn_off: awp
- text_sensor.template.publish:
id: meldungen
state: !lambda 'return "alles ok";'
# digitale Eingänge
binary_sensor:
- platform: gpio
pin:
number: 14
mode:
input: true
name: "Motorschutz"
id: motorschutz
publish_initial_state: true
on_release:
- switch.turn_off: awp
- logger.log: "Motorschutz ausgelöst"
- text_sensor.template.publish:
id: meldungen
state: !lambda 'return "Motorschutz ausgelöst";'
on_press:
- text_sensor.template.publish:
id: meldungen
state: !lambda 'return "alles ok";'
- platform: gpio
pin:
number: 12
mode:
input: true
name: "Temp3031"
id: temp3031
publish_initial_state: true
on_release:
- delay: 10s
- switch.turn_off: awp
- logger.log: "Temperaturvorwarnung"
- text_sensor.template.publish:
id: meldungen
state: !lambda 'return "Temperaturvorwarnung";'
on_press:
- text_sensor.template.publish:
id: meldungen
state: !lambda 'return "alles ok";'
- platform: gpio
pin:
number: 13
mode:
input: true
name: "Übertemperatur"
id: temp3032
publish_initial_state: true
on_release:
- delay: 1s
- switch.turn_off: awp
- logger.log: "Übertemperatur"
- text_sensor.template.publish:
id: meldungen
state: !lambda 'return "Übertemperatur";'
on_press:
- text_sensor.template.publish:
id: meldungen
state: !lambda 'return "alles ok";'
# digitale Ausgänge
switch:
- platform: gpio
pin: D8
name: "AWP Ein"
id: awp
# api
text_sensor:
- platform: template
name: "Meldungen"
id: meldungen
update_interval: 10s
Bei meiner Poolsteuerung habe ich das gleiche Problem.
Wäre dankbar für den entscheidenden Tipp.
Gruß Thorsten