MQTT Power Limit für Hoymiles Inverter festlegen

Begonnen von Snocksman, 15 August 2024, 12:07:03

Vorheriges Thema - Nächstes Thema

Snocksman

Hallo zusammen,

ich tue mir gerade etwas schwer dabei eine (wahrscheinlich relativ einfache) Sache in FHEM / MQTT umzusetzen...

Ich habe eine Solaranlage, mit einem Hoymiles HMS-800W-2T Inverter... Die Daten des Inverters werden mit diesem Projekt in MQTT umgesetzt und an FHEM gesendet... Das funktioniert soweit auch.

Was ich nicht hin bekomme: Es besteht die Möglichkeit den Inverter zu limitieren, was ich aus FHEM heraus können möchte, aber leider bislang nicht hin bekomme...

Hier mal das Device in FHEM:
define Solaranlage_1 MQTT2_DEVICE dtuGateway_13254062
attr Solaranlage_1 readingList dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_grid_U/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv0_U/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv1_U/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_grid_I/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv0_I/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv1_I/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_grid_P/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv0_P/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv1_P/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_grid_dailyEnergy/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv0_dailyEnergy/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv1_dailyEnergy/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_grid_totalEnergy/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv0_totalEnergy/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_pv1_totalEnergy/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_inverter_Temp/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_inverter_PowerLimit/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_inverter_WifiRSSI/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_inverter_PowerLimit_Set/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:homeassistant/sensor/dtuGateway_13254062_time_stamp/config:.* { json2nameValue($EVENT) }\
dtuGateway_13254062:Solaranlage_1/grid/I:.* Grid_I\
dtuGateway_13254062:Solaranlage_1/grid/P:.* Grid_P\
dtuGateway_13254062:Solaranlage_1/grid/U:.* Grid_U\
dtuGateway_13254062:Solaranlage_1/grid/dailyEnergy:.* Grid_dailyEnergy\
dtuGateway_13254062:Solaranlage_1/grid/totalEnergy:.* Grid_totalEnergy\
dtuGateway_13254062:Solaranlage_1/inverter/PowerLimit:.* PowerLimit\
dtuGateway_13254062:Solaranlage_1/inverter/Temp:.* Temp\
dtuGateway_13254062:Solaranlage_1/inverter/WifiRSSI:.* WifiRSSI\
dtuGateway_13254062:Solaranlage_1/pv0/I:.* PV0_I\
dtuGateway_13254062:Solaranlage_1/pv0/P:.* PV0_P\
dtuGateway_13254062:Solaranlage_1/pv0/U:.* PV0_U\
dtuGateway_13254062:Solaranlage_1/pv0/dailyEnergy:.* PV0_dailyEnergy\
dtuGateway_13254062:Solaranlage_1/pv0/totalEnergy:.* PV0_totalEnergy\
dtuGateway_13254062:Solaranlage_1/pv1/I:.* PV1_I\
dtuGateway_13254062:Solaranlage_1/pv1/P:.* PV1_P\
dtuGateway_13254062:Solaranlage_1/pv1/U:.* PV1_U\
dtuGateway_13254062:Solaranlage_1/pv1/dailyEnergy:.* PV1_dailyEnergy\
dtuGateway_13254062:Solaranlage_1/pv1/totalEnergy:.* PV1_totalEnergy\
dtuGateway_13254062:Solaranlage_1/time/stamp:.* stamp
attr Solaranlage_1 room Solaranlage
attr Solaranlage_1 setList Power_Limit:slider,2.0,1,100.0,1 dtuGateway_13254062/inverter/PowerLimit_Set {"PowerLimit": $EVTPART1 }
attr Solaranlage_1 stateFormat Grid_P Watt
#   CFGFN     
#   CID        dtuGateway_13254062
#   DEF        dtuGateway_13254062
#   FUUID      66bceb46-f33f-e448-15a8-c280fbb9bad4bdfc
#   IODev      MQTT2_FHEM_Server
#   LASTInputDev MQTT2_FHEM_Server
#   MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.1.154_55620
#   MQTT2_FHEM_Server_MSGCNT 2662
#   MQTT2_FHEM_Server_TIME 2024-08-15 12:03:51
#   MSGCNT     2662
#   NAME       Solaranlage_1
#   NR         876
#   STATE      611.20 Watt
#   TYPE       MQTT2_DEVICE
#   eventCount 2708
#   OLDREADINGS:
#   READINGS:
#     2024-08-15 12:03:50   Grid_I          2.62
#     2024-08-15 12:03:50   Grid_P          611.20
#     2024-08-15 12:03:50   Grid_U          233.10
#     2024-08-15 12:03:50   Grid_dailyEnergy 1.192
#     2024-08-15 12:03:50   Grid_totalEnergy 24.688
#     2024-08-14 19:37:10   IODev           MQTT2_FHEM_Server
#     2024-08-15 12:03:51   PV0_I           7.68
#     2024-08-15 12:03:51   PV0_P           322.90
#     2024-08-15 12:03:51   PV0_U           42.00
#     2024-08-15 12:03:51   PV0_dailyEnergy 0.597
#     2024-08-15 12:03:51   PV0_totalEnergy 12.379
#     2024-08-15 12:03:51   PV1_I           7.66
#     2024-08-15 12:03:51   PV1_P           322.40
#     2024-08-15 12:03:51   PV1_U           42.00
#     2024-08-15 12:03:51   PV1_dailyEnergy 0.595
#     2024-08-15 12:03:51   PV1_totalEnergy 12.309
#     2024-08-15 12:03:50   PowerLimit      100
#     2024-08-15 12:03:50   Temp            37.40
#     2024-08-15 12:03:51   WifiRSSI        100
#     2024-08-15 11:28:28   device_class    timestamp
#     2024-08-15 11:28:28   device_configuration_url http://192.168.1.154
#     2024-08-15 11:28:28   device_hw_version 1.0
#     2024-08-15 11:28:28   device_identifiers dtuGateway_13254062
#     2024-08-15 11:28:28   device_manufacturer ohAnd
#     2024-08-15 11:28:28   device_model    dtuGateway ESP8266/ESP32
#     2024-08-15 11:28:28   device_name     HMS-xxxxW-2T (dtuGateway_13254062)
#     2024-08-15 11:28:28   device_sw_version 1.6.0009
#     2024-08-15 11:28:28   icon            mdi:car-speed-limiter
#     2024-08-15 11:28:28   name            Time stamp
#     2024-08-15 12:03:51   stamp           1723716231
#     2024-08-15 11:55:36   state           Power_Limit
#     2024-08-15 11:28:28   state_topic     Solaranlage_1/time/stamp
#     2024-08-14 19:37:42   subscriptions   Solaranlage_1/inverter/PowerLimit_Set
#     2024-08-15 11:28:28   unique_id       dtuGateway_13254062_time_stamp
#     2024-08-15 11:28:28   unit_of_measurement %
#     2024-08-15 11:28:28   value_template  {{ as_datetime(value) }}
#
setstate Solaranlage_1 611.20 Watt
setstate Solaranlage_1 2024-08-15 12:03:50 Grid_I 2.62
setstate Solaranlage_1 2024-08-15 12:03:50 Grid_P 611.20
setstate Solaranlage_1 2024-08-15 12:03:50 Grid_U 233.10
setstate Solaranlage_1 2024-08-15 12:03:50 Grid_dailyEnergy 1.192
setstate Solaranlage_1 2024-08-15 12:03:50 Grid_totalEnergy 24.688
setstate Solaranlage_1 2024-08-14 19:37:10 IODev MQTT2_FHEM_Server
setstate Solaranlage_1 2024-08-15 12:03:51 PV0_I 7.68
setstate Solaranlage_1 2024-08-15 12:03:51 PV0_P 322.90
setstate Solaranlage_1 2024-08-15 12:03:51 PV0_U 42.00
setstate Solaranlage_1 2024-08-15 12:03:51 PV0_dailyEnergy 0.597
setstate Solaranlage_1 2024-08-15 12:03:51 PV0_totalEnergy 12.379
setstate Solaranlage_1 2024-08-15 12:03:51 PV1_I 7.66
setstate Solaranlage_1 2024-08-15 12:03:51 PV1_P 322.40
setstate Solaranlage_1 2024-08-15 12:03:51 PV1_U 42.00
setstate Solaranlage_1 2024-08-15 12:03:51 PV1_dailyEnergy 0.595
setstate Solaranlage_1 2024-08-15 12:03:51 PV1_totalEnergy 12.309
setstate Solaranlage_1 2024-08-15 12:03:50 PowerLimit 100
setstate Solaranlage_1 2024-08-15 12:03:50 Temp 37.40
setstate Solaranlage_1 2024-08-15 12:03:51 WifiRSSI 100
setstate Solaranlage_1 2024-08-15 11:28:28 device_class timestamp
setstate Solaranlage_1 2024-08-15 11:28:28 device_configuration_url http://192.168.1.154
setstate Solaranlage_1 2024-08-15 11:28:28 device_hw_version 1.0
setstate Solaranlage_1 2024-08-15 11:28:28 device_identifiers dtuGateway_13254062
setstate Solaranlage_1 2024-08-15 11:28:28 device_manufacturer ohAnd
setstate Solaranlage_1 2024-08-15 11:28:28 device_model dtuGateway ESP8266/ESP32
setstate Solaranlage_1 2024-08-15 11:28:28 device_name HMS-xxxxW-2T (dtuGateway_13254062)
setstate Solaranlage_1 2024-08-15 11:28:28 device_sw_version 1.6.0009
setstate Solaranlage_1 2024-08-15 11:28:28 icon mdi:car-speed-limiter
setstate Solaranlage_1 2024-08-15 11:28:28 name Time stamp
setstate Solaranlage_1 2024-08-15 12:03:51 stamp 1723716231
setstate Solaranlage_1 2024-08-15 11:55:36 state Power_Limit
setstate Solaranlage_1 2024-08-15 11:28:28 state_topic Solaranlage_1/time/stamp
setstate Solaranlage_1 2024-08-14 19:37:42 subscriptions Solaranlage_1/inverter/PowerLimit_Set
setstate Solaranlage_1 2024-08-15 11:28:28 unique_id dtuGateway_13254062_time_stamp
setstate Solaranlage_1 2024-08-15 11:28:28 unit_of_measurement %
setstate Solaranlage_1 2024-08-15 11:28:28 value_template {{ as_datetime(value) }}


Und hier noch ein Absatz dazu in der Github Doku des MQTT Gateways: Link

Wäre super, wenn mir jemand bei der Sache helfen könnte...

Snocksman

Hey, ganz viel rumprobiert und schließlich doch selbst hinbekommen...  8)

Den SetList Eintrag musste ich wie folgt ändern: Power_Limit:slider,2.0,1,100.0,1 $DEVICETOPIC/inverter/PowerLimit_Set $EVTPART1

Dazu habe ich aber noch eine kleine Frage... Wenn ich den Slider auf z.B. 80% gestellt habe und dann mit einen Klick auf set das Gewünschte Power-Limit an den Inverter geschickt habe, springt der Slider wieder zurück auf den Anfangswert 2 (1 frisst der Inverter nicht, deswegen die 2). Gibt es eine Möglichkeit, dass der Slider auf dem zuletzt eingestellten Wert stehen bleibt ?

TomLee

#2
Hallo,

kommt denn ein Wert von dem Gateway zurück und wie sieht der genau aus, hat der evtl. Kommastellen ? Schau in welchem Reading und benenne den setter so oder falls Kommastellen zurückkommen konfiguriere den slider entsprechen.
Oder zeig halt mal ein List ...

Gruß Thomas

Snocksman

OK, auch das habe ich gerade selbst hin bekommen... Ich wusste das alles mal, hab aber jetzt schon länger nichts MQTT-mäßiges an der Config selbst gemacht...

Entweder per jsonMap das Reading PowerLimit auf Power_Limit ändern, oder einfach (wie ich es jetzt gemacht habe) den Eintrag in der setList von Power_Limit auf PowerLimit ändern.