Skip to content
VolkerK62 edited this page Jan 8, 2025 · 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

Das Topic "Haus/batMode" liefert in dem Beispiel den Case zurück und kann/soll individuell angepasst werden.

- name: battery
  type: custom
  power:
    source: mqtt
    topic: shellies/shellyem/emeter/1/power
    timeout: 60s
  soc:
    source: mqtt
    topic: Haus/batSoc
    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/batMode
    - case: 2 # hold
      set:
        source: sequence
        set:
        - source: const
          value: 2
          set:
            source: mqtt
            topic: Haus/batMode
    - case: 3 # charge
      set:
        source: sequence
        set:
        - source: const
          value: 3
          set:
            source: mqtt
            topic: Haus/batMode

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

Ein Offline Fahrzeug für wiederkehrende Ladepläne und/oder für automatische Mindestladung

Bei einem Offline Fahrzeug können keine wiederkehrenden Ladepläne angelegt werden. Auch ist es nicht möglich, nach dem anstecken automatisch eine vorgegebene Mindestmenge zu laden.

Wenn man allerdings ein Custom-Vehicle mit einem festen Soc (der nicht 0 sein darf) konfiguriert, geht beides.

Hier wird dann nicht die Energiemenge (kWh) vorgegeben, sondern die zu ladenden Prozente.

- name: my_car
  title: my_car
  type: custom
  capacity: 55
  icon: car
  phases: 3
  onIdentify:  
    mode: PV
    minCurrent: 6
    maxCurrent: 16
  soc:
    source: const
    value: 0.1
Clone this wiki locally