-
-
Notifications
You must be signed in to change notification settings - Fork 762
aaa Lifehacks
Gelegentlich lassen sich individuelle Wünsche/Umstände nur durch "trickreiche Basteleien" erfüllen. Hier möchte ich derartige Lösungen dokumentieren.
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
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
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
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
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
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
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