FHEM und EVCC per MQTT

Begonnen von Humbs, 01 März 2025, 16:20:08

Vorheriges Thema - Nächstes Thema

Humbs

Hallo zusammen,

eine Frage zum Thema Zusammenspiel von FHEM und EVCC.

Eigentlich erledigt FHEM alle Haus Automatisierungs Aufgaben, aber den Ladestrom der Wallbox dem PV Überschuss nachzuführen würde ich gerne EVCC überlassen.
Da habe ich für FHEM noch nichts taugliches gefunden. Oder jemand hat einen Hinweis?

Beide Dienste laufen klaglos auf dem selben rpi und in der evcc.yaml ist ein Part:

mqtt:
  broker: 192.168.11.20:1883
  topic: evcc
  clientid: evcc_d83addb4ceac

Den FHEM per

define evcc MQTT2_DEVICE evcc_d83addb4ceac
attr evcc readingList evcc_d83addb4ceac:evcc/updated:.* updated\
[....]
attr evcc room Garage

wurderbar ausliest.

EVCC kann aber nicht nachregeln ohne ein Energy Meter.

FHEM liest den Stromzähler per OBIS SML Infrarot Sensor aus, der ist per USB angebunden.
Das klappt sehr gut und jede Sekunde wird das reading "power" aktualisert.

Die KEBA Wallbox kommuniziert mit EVCC auch einwandfrei.
FHEM kann auch den Lademodus der Wallbox ändern durch ein "set MQTT2_FHEM_Server evcc/loadpoints/1/mode/set now oder pv"

Woran ich scheitere ist die übergabe des Messwerts vom Stromzähler zu EVCC

Wie kann ich EVCC das "power" reading vom IR Sensor übergeben ? Als Grid Meter Messwert?

Bin für Ideen dankbar.

Ralli

#1
Du kannst in evcc auch Zählerwerte per mqtt einlesen. Also publiziere das reading "power" sowie die anderen erforderlichen Messwerte in deinen Mqtt-Server und lasse evcc die Werte von dort übernehmen.

https://docs.evcc.io/docs/reference/plugins#mqtt-lesenschreiben

Zum Beispiel:

meters:
- name: HM20
  type: custom
  power:
    source: mqtt
    topic: SMA/HM20/Saldo_Wirkleistung
    timeout: 30s # don't accept values older than timeout
    scale: -1
    # scale: 0.001 # floating point factor applied to result, e.g. for Wh to kWh conversion
  currents:
    - source: mqtt
      topic: SMA/HM20/L1_Strom
      timeout: 30s # don't accept values older than timeout
    - source: mqtt
      topic: SMA/HM20/L2_Strom
      timeout: 30s # don't accept values older than timeout
    - source: mqtt
      topic: SMA/HM20/L3_Strom
      timeout: 30s # don't accept values older than timeout
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Humbs

#2
Hallo Ralli,

danke für Deinen Hinweis.

Das custom Meter akzeptiert der evcc auch, scheint zu passen da im Log steht:

[site ] ERROR 2025/03/02 20:46:27 grid power: outdated

Wohl ein Problem mit dem publizieren:

set MQTT2_FHEM_Server publish evcc/site/grid1/set 1000
set MQTT2_FHEM_Server publish SMA/HM20/Saldo_Wirkleistung/set 1000

keine Reaktion in EVCC

Ergänzung:
set MQTT2_FHEM_Server publish evcc/site/residualPower/set 10
-> kommt in evcc an, funktioniert

Humbs

Gelöst:

Es funktioniert in FHEM mit:

set MQTT2_FHEM_Server publish fhem/Stromzaehler/gridpower 200
bzw:
define EVU_Zaehler_to_mqtt at +*00:00:03 { my $d= ReadingsVal("Stromzaehler","power",0);; fhem("set MQTT2_FHEM_Server publish fhem/Stromzaehler/gridpower $d")}

Und in evcc mit:

meters:
- name: grid1
  type: custom
  power:
    source: mqtt
    topic: fhem/Stromzaehler/gridpower