eine entität mit if else setzen

hallo,

in der entität "sensor.stromzkeller_zv_stromzahler_gesamt" wird der aktuelle kWh wert vom Zähler gegeben. Ich will jetzt in die virtuelle Entität "strom_vom_netz" diesen Wert schreiben.
Aber nur, wenn die boolean entität "switch.stromzahler" auf on ist.

Leider geht das nicht, denn im energy dashboard kommt dann, dass die entität "strom_vom_netz" fehlerhaft ist.

Kann mir da jemand helfen ? Wo ist da der Fehler ?

das ist im file templates.yaml programmiert.
Es gibt keinen Fehler in der sytax, zumindest meldet Home assistant nix.

Code:
- sensor:
   name: "Strom vom Netz"
         unique_id: strom_vom_netz
         icon: mdi:pulse    
         unit_of_measurement: 'kWh'
         device_class: energy
         state_class: total
         state: >
            {% if is_state('switch.stromzkeller', 'on') %}      
              sensor.stromzkeller_zv_stromzahler_gesamt                                          
            #{% else %}
              #down
           {% endif %}
 
Probier mal den sensor.stromzkeller_zv_stromzahler_gesamt so einzubauen:
{{(states('sensor.stromzkeller_zv_stromzahler_gesamt') | float(0))}}

Grüße
 
leider negativ.

ich hab das auch über node red probiert zu lösen, aber ich kenne mich da noch Null aus.
Auch automation kann ich noch nicht.

Ich will den kWh Wert eines Sensors auf einen virtuellen sensor übertragen, wenn ein boolean Sensor ON ist.
Den virtuellen Sensor überschreiben, nix addieren oder so.
 
Hallo,

YAML:
  - sensor:
    - name: "Strom vom Netz"
      unique_id: strom_vom_netz
      icon: mdi:pulse  
      unit_of_measurement: 'kWh'
      device_class: energy
      state_class: total
      state: >
        {% if is_state('switch.stromzkeller', 'on') %}    
        {{ states('stromzkeller_zv_stromzahler_gesamt') | float }}
        {% else %}
        0
        {% endif %}

Aus:
1680367026627.png
Ein:
1680367069963.png
 
Zuletzt bearbeitet:
@Steevee
vielen Dank für die Hilfe. Ich habe das so programmiert.

das geht mit dem realen Sensor. Ich hatte da auch einen virtuellen Sensor genommen. Viele Köche verderben den Brei. Das war zuviel des guten.

Vielen Dank nochmal für die tolle Hilfe.
 
Zuletzt bearbeitet:
Hallo,

das geht noch nicht zufriedenstellend.

Ich will im energie Dashboard zwei entitäten setzen. Einmal "Netzverbrauch" und einmal "zurück ins Netz"

Es gibt mehrere Möglichkeiten wie man das machen kannt. Ich bekomme eine boolsche entität, die man gibt, was gerade am laufen ist. Strom in das Netz oder Strombezug vom Netz. Dazu habe ich jede Minute ein Zahl zahl kwh von der Minute.

Wer mir helfen kann wie ich das gescheit aufsummiert bekomme, bitte posten.Das Problem kann auch sein, dass die entität "stromzkeller_zv_stromzahler_gesamt" sich nicht jede Minute auf Null stellt.

Code:
- name: "Strom vom Netz"
      unique_id: strom_vom_netz
      icon: mdi:pulse
      unit_of_measurement: 'kWh'
      device_class: energy
      state_class: total
      state: >
        {% if is_state('switch.stromzkeller', 'on') %} 
{{ states('stromzkeller_zv_stromzahler_gesamt') | float }}
{% else %}
0
{% endif %}

ich habe alle Einstellungen bei "State_class" ausprobiert, keine war zufriedenstellend. Das kommt bei den virtuellen entitäten raus. Kann auch sein, dass das alles falsch im energy Dashboard summiert wird.

Das ist der code im esp8266: Jede Minute wird das an Home Assistant gemeldet.

Code:
- platform: copy
    source_id: pulse_zurueck_total
    unit_of_measurement: 'kWh'
    name: 'zr Stromzähler gesamt'
    accuracy_decimals: 3
    filters:
      - multiply: 0.01041666666666 # (1/96 pulses per kWh)  <---- mein Zähler macht 96U/kwh
 

Anhänge

  • Screenshot (45).png
    Screenshot (45).png
    24,3 KB · Aufrufe: 1
  • Screenshot (46).png
    Screenshot (46).png
    20,8 KB · Aufrufe: 1
  • Screenshot (47).png
    Screenshot (47).png
    19,4 KB · Aufrufe: 1
Update:
das scheint zu funktionieren:

der code im esp8266:
Code:
- platform: copy                                 # <--- hier werden die Pulse pro Minute in kwh umgerechnet 
    source_id: pulse_vorwaerts                   
    name: "zv pulse kwh pro Minute"               
    unit_of_measurement: 'kWh'                     # die Summe, die über EINE Minute gezählt wird, wird in kwh umgerechnet 
    accuracy_decimals: 3                         
    filters:
      - multiply: 0.01041666666666 # (1/96 pulses per kWh)  <---- mein Zähler macht 96U/kwh

der template code:
Code:
- name: "Strom vom Netz"
       unique_id: strom_vom_netz
       icon: mdi:pulse 
       unit_of_measurement: 'kWh'
       device_class: energy
       state_class: total_increasing
       state: >
         {% if is_state('switch.stromzkeller_laufrichtung2', 'off') %}   
         {{ states('sensor.stromzkeller_zv_pulse_kwh_pro_minute') | float }}
         {% else %}
         0
         {% endif %}

     - name: "Strom ins Netz"
       unique_id: strom_ins_netz
       icon: mdi:pulse 
       unit_of_measurement: 'kWh'
       device_class: energy
       state_class: total_increasing
       state: >
         {% if is_state('switch.stromzkeller_laufrichtung2', 'on') %}   
         {{ states('sensor.stromzkeller_zv_pulse_kwh_pro_minute') | float }}
         {% else %}
         0
         {% endif %}

im esp8266 wir jede Minute neu die kwh Leistung an home assistant gegeben. in den virtuellen entitäten wird das jetzt korrekt ausgewertet bzw. erfasst. So geht das dann an dasenergie Dashboard --> Leitung vom Netz und Leistung in das Netz.

der switch "switch.stromzkeller_laufrichtung2" ist boolean. 1 = vorwärts ; 0 = zurück.
Da gibt es eine gewiefte prograsmmierung, dass das gut funtioniert.
bei bedarf ein persönliche Nachricht schicken. ich bin aber nicht jeden Tag hier online.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.488
Beiträge
46.125
Mitglieder
4.116
Neuestes Mitglied
DrumBems
Zurück
Oben