Skip to content
VolkerK62 edited this page Dec 22, 2024 · 10 revisions

Gelegentlich lassen sich individuelle Wünsche/Umstände nur durch "trickreiche Basteleien" erfüllen. Hier möchte ich derartige Lösungen dokumentieren.

Charger für einen Shelly mit mehreren Kontakten, die gleichzeitig geschaltet werden

Das Beispiel gilt für einen Gen1 Shelly. Die Api Aufrufen müssen bei neueren Shelly entsprechend angepasst werden.

go:
- vm: shelly
  script: |
    var relay string

chargers:
- name: test
  type: switchsocket
  enabled: 
    source: http
    uri: http://192.168.178.28/status
    jq: if .relays[0].ison == true then 1 else 0 end
  enable:
    source: go
    vm: shelly
    script: |
      if enable {
        relay = "on"
      } else {
        relay = "off"
      } 
      relay
    out:    
    - name: relay
      type: string
      config:
        source: http
        uri: http://192.168.178.28/relay/0?turn={{ .relay }}
    - name: relay
      type: string
      config:
        source: http
        uri: http://192.168.178.28/relay/1?turn={{ .relay }}
    - name: relay
      type: string
      config:
        source: http
        uri: http://192.168.178.28/relay/2?turn={{ .relay }}
  power:
    source: http
    uri: http://192.168.178.28/status 
    jq: .total_power
  features:
    - integrateddevice
    - heating
  standbypower: 50

Entladung eines steuerbaren Hausspeicher preisgesteuert oder manuell sperren

Wenn man nicht möchte, dass der Hausspeicher bei günstigem Netzstrom entladen wird, um die Energie für einen teureren Zeitraum zu behalten, kann man das mit einem Fake-Loadpoint erreichen. Bei diesem Loadpoint stellt man im Modus "PV" die gewünschte Preisgrenze ein. Wenn diese unterschritten wird, wird der Hausspeicher gesperrt.

Ebenso kann der Hausspeicher dadurch auch manuell gesperrt werden, indem man den Modus "schnell" auswählt.

chargers:
- name: bat_sperre
  type: template
  template: demo-charger
  status: C
  enabled: true

loadpoints:
- title: Bat_Sperre
  charger: bat_sperre
  mode: pv

steuerbaren Hausspeicher ohne dynamischen Tarif aus dem Netz laden

Das Netzladen des Hausspeicher setzt einen dynamischen Stromtarif voraus. Es geht auch ohne diesen, wenn man einen Zonen-Tarif (mit identischen Preisen) konfiguriert.

tariffs:
  currency: EUR
  grid:
    type: fixed
    price: 0.4
    zones:
    - days: Mo-Fr
      hours: 2-3
      price: 0.4

steuerbarer Hausspeicher als Custom Meter per MQTT

- name: battery
  type: custom
  power:
    source: mqtt
    topic: shellies/shellyem/emeter/1/power
    timeout: 60s
  soc:
    source: mqtt
    topic: Haus/Bat_SoC
    timeout: 60m
  capacity: 7.5
  batterymode:
    source: switch
    switch:
    - case: 1 # normal
      set:
        source: sequence
        set:
        - source: const
          value: 1
          set:
            source: mqtt
            topic: Haus/BAT
    - case: 2 # hold
      set:
        source: sequence
        set:
        - source: const
          value: 2
          set:
            source: mqtt
            topic: Haus/BAT
    - case: 3 # charge
      set:
        source: sequence
        set:
        - source: const
          value: 3
          set:
            source: mqtt
            topic: Haus/BAT

Temperatur-Hysterese für Wärmepumpe/Heizstab

Beim Betrieb einer Wärmepumpe/eines Heizstabes kann man über den Vehicle-Soc die Temperatur mit einbringen und diese als Ladeziel einstellen. Das hat aber den Nachteil, dass bei der kleinsten Abkühlung sofort nachgeladen wird. Das lässt sich mit einer Hysterese verhindern.

In dem Beispiel wird die gemessene Temperatur um 7 Grad erhöht, wenn nicht geheizt wird. Wenn geheizt wird, wird die "richtige" Temperatur angezeigt.

Das lässt sich im Prinzip, statt mit MQTT auch mit dem HTTP Plugin realisieren.

vehicles:
- name: WasserSG
  type: custom
  title: WasserSG
  icon: waterheater
  capacity: 10 # 300 Liter x 100 Grad x 1,16 Wh / 3,5 COP = 10kWh
  soc:
    source: calc
    add:
    - source: mqtt
      topic: Haus/Wasser_Temp
      timeout: 10m
    - source: mqtt # Temp Delta 7 Grad, wenn aus 
      topic: evcc/loadpoints/4/chargePower
      jq: if . > 10 then 0 else 7 end
      timeout: 10m

Start-Soc bei einem Offline-Fahrzeug eintragen

Die Eingabe des aktuellen Fahrzeug-Soc bei einem Offline Vehicle ist nicht direkt im WebUI möglich. Bei diesem "Trick" wird ein zweites Fahrzeug angelegt, dessen minSoc als Soc für das reale Fahrzeug hergenommen wird.

Vorgehen:

Am Loadpoint das "Fake" Fahrzeug auswählen. Unter "Plan-> Ankunft-> Min.Ladung %" den Soc des realen Fahrzeug auswählen. (Leider sind hier nur 5% Schritte möglich. Setzt man den Wert per API, ist der genaue Wert möglich.) Dann am Loadpoint das reale Fahrzeug auswählen.

Während des Ladens wird der Estimator den Soc entsprechend hochrechnen.

vehicles:
- name: mycar
  ## reales Fahrzeug
  type: custom
  title: Auto
  icon: car
  capacity: 60
  soc:
    source: http
    uri: http://localhost:7070/api/state
    jq: result.vehicles.mycar_soc.minSoc
    timeout: 60s
    
- name: mycar_soc 
  ##Fake Fahrzeug, nur zum Speichern von minSoc
  type: custom
  title: Fake_Auto
  soc:
    source: const
    value: 100
Clone this wiki locally