Wechselrichter Hoymiles HM-600 mit FHEM verbinden anstelle mit WLAN Stick DTU-W1

Begonnen von josburg, 25 Mai 2021, 18:03:41

Vorheriges Thema - Nächstes Thema

Beta-User

Moin zusammen,


nachdem hier jemand Probleme mit sehr viel Load hatte, hier mal zumindest meine (etwas bereinigte) aktuelle Fassung für einen der Inverter - Ahoy ist so eingestellt, dass JSON gesendet wird.

Bin mal gespannt, was das an load-Reduzierung in dem betreffenden Thread bringt ;) .

defmod Inverter_O_Mitte MQTT2_DEVICE inverter_O_Mitte
attr Inverter_O_Mitte alias Ost Mitte
attr Inverter_O_Mitte devStateIcon {FHEM::attrT_Ahoy_Utils::devStateIcon($name)}
attr Inverter_O_Mitte group Solar Inverter
attr Inverter_O_Mitte icon measure_photovoltaic_inst
attr Inverter_O_Mitte jsonMap 1_I_DC:I_DC1 1_P_DC:P_DC1 1_U_DC:U_DC1 1_Irradiation:Irradiation1 1_YieldDay:YieldDay1 1_YieldTotal:YieldTotal1 2_I_DC:I_DC2 2_P_DC:P_DC2 2_U_DC:U_DC2 2_Irradiation:Irradiation2 2_YieldDay:YieldDay2 2_YieldTotal:YieldTotal2 3_I_DC:I_DC3 3_P_DC:P_DC3 3_U_DC:U_DC3 3_Irradiation:Irradiation3 3_YieldDay:YieldDay3 3_YieldTotal:YieldTotal3 4_I_DC:I_DC4 4_P_DC:P_DC4 4_U_DC:U_DC4 4_Irradiation:Irradiation4 4_YieldDay:YieldDay4 4_YieldTotal:YieldTotal4 5_I_DC:I_DC5 5_P_DC:P_DC5 5_U_DC:U_DC5 5_Irradiation:Irradiation5 5_YieldDay:YieldDay5 5_YieldTotal:YieldTotal5 6_I_DC:I_DC6 6_P_DC:P_DC6 6_U_DC:U_DC6 6_Irradiation:Irradiation6 6_YieldDay:YieldDay6 6_YieldTotal:YieldTotal6 1_MaxPower:MaxPower1 2_MaxPower:MaxPower2 3_MaxPower:MaxPower3 4_MaxPower:MaxPower4 5_MaxPower:MaxPower5 6_MaxPower:MaxPower6 Temp:temperature
attr Inverter_O_Mitte model hoymiles_microinverter_inverter
attr Inverter_O_Mitte readingList inverter/O_Mitte/available:.* available\
  inverter/O_Mitte/last_success:.* last_success\
  inverter/O_Mitte/radio_stat:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  inverter/O_Mitte/dis_night_comm:.* dis_night_comm\
  inverter/O_Mitte/ack_pwr_limit:.* ack_pwr_limit\
  inverter/O_Mitte/firmware:.* { json2nameValue($EVENT) }\
  inverter/O_Mitte/hardware:.* { json2nameValue($EVENT) }\
  inverter/O_Mitte/ch0/active_PowerLimit:.* active_PowerLimit\
  inverter/O_Mitte/ch0/ALARM_MES_ID:.* ALARM_MES_ID\
  inverter/O_Mitte/ch0/LastAlarmCode:.* LastAlarmCode\
  inverter/O_Mitte/ch0/Efficiency:.* Efficiency\
  inverter/O_Mitte/ch0/YieldDay:.* YieldDay\
  inverter/O_Mitte/ch0/YieldTotal:.* YieldTotal\
  inverter/O_Mitte/alarm/cnt:.* alarmCnt\
  inverter/O_Mitte/alarm/[\d]+:.* { $TOPIC =~ m,alarm/([\d]+),;; { "alarm_${1}"=>$EVENT } }\
  inverter/O_Mitte/ch0/MaxTemp:.* MaxTemp\
  inverter/O_Mitte/ch1:.* { json2nameValue($EVENT,'1_',$JSONMAP) }\
  inverter/O_Mitte/ch2:.* { json2nameValue($EVENT,'2_',$JSONMAP) }\
  inverter/O_Mitte/ch3:.* { json2nameValue($EVENT,'3_',$JSONMAP) }\
  inverter/O_Mitte/ch4:.* { json2nameValue($EVENT,'4_',$JSONMAP) }\
  inverter/O_Mitte/ch0:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr Inverter_O_Mitte room Steuerung->Strom
attr Inverter_O_Mitte setList reboot:noArg inverter/ctrl/restart/2\
  limit inverter/ctrl/limit/2 $EVTPART1W\
  limit_pct:slider,2,1,100 inverter/ctrl/limit/2 $EVTPART1
attr Inverter_O_Mitte setStateList on off
attr Inverter_O_Mitte webCmd :
Durch das jsonMap bleiben dabei die bereits verwendeten Reading-Namen erhalten, man muss also "drumrum" nichts weiter anpassen.

Feedback ist willkommen, bei Gelegenheit wollte ich das auch mal in die attrTemplate einpflegen, bin aber auch überhaupt nicht traurig, wenn sich jemand anderes das mal anschaut und ggf. mit radio-Button die Option anbietet, die JSON-Variante statt der Klartext-Topics zu verwenden.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Maista

Hallo Beta-User,

Zitat von: Beta-User am 14 April 2025, 09:06:25  limit inverter/ctrl/limit/2 $EVTPART1W\

Sollte das eventl. "${EVTPART1}W" heissen?
Ansonsten würde die Variable "$EVTPART1W" heissen.

Gruss Gerd