Nach AhoyDTU Update zwei MQTT2 devices

Begonnen von teichtaucher, 09 Dezember 2024, 21:39:09

Vorheriges Thema - Nächstes Thema

teichtaucher

Hallo,
ich habe eine AhoyDTU am Laufen, die über MQTT mit FHEM kommuniziert. Hat soweit auch immer gut funktioniert. Weil mir ein paar Features gefehlt haben, habe ich heute die AhoyDTU aktualisiert. Seitdem habe ich diese zweimal in FHEM.

Die alte:

Internals:
   CID        AHOY_DTU
   DEF        AHOY_DTU
   FUUID      640b7af7-f33f-2bd4-77c6-257336e083642ec0
   IODev      gl.gw.mqttBroker
   LASTInputDev gl.gw.mqttBroker
   MSGCNT     513755
   NAME       MQTT2_AHOY_DTU
   NR         304
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 513755
   gl.gw.mqttBroker_CONN gl.gw.mqttBroker_192.168.178.50_64405
   gl.gw.mqttBroker_MSGCNT 513755
   gl.gw.mqttBroker_TIME 2024-12-09 21:35:24
   READINGS:
     2024-10-10 16:23:08   IODev           gl.gw.mqttBroker
     2024-12-09 09:47:55   P_AC            53.8
     2024-12-09 21:35:24   P_AC_Avg        53.800
     2024-12-09 09:47:55   P_DC            56.6
     2024-12-09 09:47:55   YieldDay        28
     2024-12-09 09:47:55   YieldTotal      3229.8
     2023-03-10 19:49:01   attrTemplateVersion 20200812
     2024-12-09 08:24:25   available       2
     2024-12-09 00:00:11   comm_start      1733726516
     2024-12-09 00:00:11   comm_stop       1733759555
     2024-12-09 21:18:24   device          AHOY-DTU
     2024-12-09 00:00:11   dis_night_comm  false
     2024-12-09 21:35:24   free_heap       12824
     2024-12-09 08:24:25   last_success    1733729061
     2024-12-09 09:48:33   mqtt            not connected
     2024-12-09 08:24:25   status          2
     2024-12-09 00:00:11   sunrise         1733728316
     2024-12-09 00:00:11   sunset          1733757755
     2024-12-09 21:35:24   uptime          1029
     2024-12-09 21:18:24   version         0.8.140
     2024-12-09 09:47:22   wifi_rssi       -75
Attributes:
   autocreate 1
   bridgeRegexp inverter/([^/]+)/ch[0-9]+/.*:.* "inverter_$1"
   icon       solar
   model      hoymiles_microinverter_hub_bridge
   readingList inverter/version:.* version
  inverter/free_heap:.* free_heap
  inverter/uptime:.* uptime
  inverter/device:.* device
AHOY_DTU:inverter/wifi_rssi:.* wifi_rssi
AHOY_DTU:inverter/SolarGaestehaus/available:.* available
AHOY_DTU:inverter/SolarGaestehaus/last_success:.* last_success
AHOY_DTU:inverter/status:.* status
AHOY_DTU:inverter/mqtt:.* mqtt
AHOY_DTU:inverter/sunrise:.* sunrise
AHOY_DTU:inverter/sunset:.* sunset
AHOY_DTU:inverter/comm_start:.* comm_start
AHOY_DTU:inverter/comm_stop:.* comm_stop
AHOY_DTU:inverter/dis_night_comm:.* dis_night_comm
AHOY_DTU:inverter/total/P_AC:.* P_AC
AHOY_DTU:inverter/total/YieldTotal:.* YieldTotal
AHOY_DTU:inverter/total/YieldDay:.* YieldDay
AHOY_DTU:inverter/total/P_DC:.* P_DC
   room       GH_Oben,MQTT2_DEVICE
   setStateList on off
   userReadings P_AC_Avg {movingAverage("MQTT2_AHOY_DTU","P_AC",300)}

Und hier die neue:


 
Internals:
   CFGFN     
   CID        AHOY_DTU_B5E4DA
   DEF        AHOY_DTU_B5E4DA
   FUUID      6756aee9-f33f-ff23-d77e-439e5e2b8071d241
   IODev      gl.gw.mqttBroker
   LASTInputDev gl.gw.mqttBroker
   MSGCNT     12688
   NAME       MQTT2_AHOY_DTU_B5E4DA
   NR         86402
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 12720
   gl.gw.mqttBroker_CONN gl.gw.mqttBroker_192.168.178.50_64405
   gl.gw.mqttBroker_MSGCNT 12688
   gl.gw.mqttBroker_TIME 2024-12-09 21:36:24
   READINGS:
     2024-12-09 09:48:41   IODev           gl.gw.mqttBroker
     2024-12-09 16:32:10   MaxPower        279.2
     2024-12-09 16:32:10   P_AC            0
     2024-12-09 16:32:10   P_DC            1
     2024-12-09 16:32:10   YieldDay        608
     2024-12-09 16:32:10   YieldTotal      3230.38
     2024-12-09 16:47:10   available       0
     2024-12-09 09:55:54   bootloader      100
     2024-12-09 09:55:54   build_hour_min  1821
     2024-12-09 09:55:54   build_month_day 1224
     2024-12-09 09:55:54   build_year      2021
     2024-12-09 09:56:24   cnt             5
     2024-12-09 09:56:25   code            2
     2024-12-09 21:18:25   comm_disabled   true
     2024-12-09 21:18:25   comm_start      1733816578
     2024-12-09 21:18:25   comm_stop       1733845947
     2024-12-09 21:18:25   dis_night_comm  true
     2024-12-09 09:56:25   end             1733730648
     2024-12-09 16:32:10   fail            5
     2024-12-09 09:56:09   grid_profile_code 2560
     2024-12-09 09:56:09   grid_profile_version 8193
     2024-12-09 21:36:24   heap_frag       11
     2024-12-09 21:18:24   ip_addr         192.168.178.50
     2024-12-09 16:32:10   last_success    1733758328
     2024-12-09 16:32:10   lossDtuRx       1
     2024-12-09 16:32:10   lossDtuTx       42
     2024-12-09 16:32:10   lossIvRx        2
     2024-12-09 16:32:10   lossIvTx        14
     2024-12-09 21:18:24   mqtt            connected
     2024-12-09 16:32:10   no_answer       0
     2024-12-09 09:56:09   part            269627392
     2024-12-09 16:32:10   retransmits     233
     2024-12-09 09:56:25   start           1733730648
     2024-12-09 16:47:10   status          0
     2024-12-09 09:56:25   str             Time calibration
     2024-12-09 16:32:10   success         1747
     2024-12-09 21:18:25   sunrise         1733814778
     2024-12-09 21:18:25   sunset          1733844147
     2024-12-09 16:32:10   tx              1752
     2024-12-09 09:56:09   version         266
     2024-12-09 21:36:24   wifi_rssi       -72
Attributes:
   readingList AHOY_DTU_B5E4DA:inverter/ip_addr:.* ip_addr
AHOY_DTU_B5E4DA:inverter/wifi_rssi:.* wifi_rssi
AHOY_DTU_B5E4DA:inverter/heap_frag:.* heap_frag
AHOY_DTU_B5E4DA:inverter/mqtt:.* mqtt
AHOY_DTU_B5E4DA:inverter/sunrise:.* sunrise
AHOY_DTU_B5E4DA:inverter/sunset:.* sunset
AHOY_DTU_B5E4DA:inverter/comm_start:.* comm_start
AHOY_DTU_B5E4DA:inverter/comm_stop:.* comm_stop
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/dis_night_comm:.* dis_night_comm
AHOY_DTU_B5E4DA:inverter/comm_disabled:.* comm_disabled
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/radio_stat:.* { json2nameValue($EVENT) }
AHOY_DTU_B5E4DA:inverter/total/P_AC:.* P_AC
AHOY_DTU_B5E4DA:inverter/total/YieldTotal:.* YieldTotal
AHOY_DTU_B5E4DA:inverter/total/YieldDay:.* YieldDay
AHOY_DTU_B5E4DA:inverter/total/P_DC:.* P_DC
AHOY_DTU_B5E4DA:inverter/total/MaxPower:.* MaxPower
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/available:.* available
AHOY_DTU_B5E4DA:inverter/status:.* status
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/last_success:.* last_success
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/firmware:.* { json2nameValue($EVENT) }
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/hardware:.* { json2nameValue($EVENT) }
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/alarm/cnt:.* cnt
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/alarm/0:.* { json2nameValue($EVENT) }
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/alarm/1:.* { json2nameValue($EVENT) }
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/alarm/2:.* { json2nameValue($EVENT) }
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/alarm/3:.* { json2nameValue($EVENT) }
AHOY_DTU_B5E4DA:inverter/SolarGaestehaus/alarm/4:.* { json2nameValue($EVENT) }
   room       GH_Oben,MQTT2_DEVICE
Ich vermute das ganze ist so entstanden weil nach dem Update neue Werte mit übertragen wurden.

Wie bekomme ich das ganze wieder in einem Device anzeigt. Mein erster Gedanke: ich lösche beide und beim nächsten Update der AhoyDTU wird wieder per autocreate die AhoyDTU mit den aktuellen Readings neu angelegt.

Oder liege ich da falsch?

Beta-User

CID-Prefix aus der readingList löschen.

Siehe auch Wiki (erste Schritte bzw. Praxisbeispiele).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

teichtaucher

Was meinst du damit? Das "AHOY_DTU_B5E4DA" bzw "AHOY_DTU" in der readingList komplett rauslöschen? Oder nur auf einen einheitlichen Stand bringen?

Beta-User

#3
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#L%C3%B6schen_der_ClientID_aus_der_readingList_usw.

Nachtrag: Zwischenzeitlich kann Ahoy auch JSON; das würde ich empfehlen einzuschalten (bei Gelegenheit liefere ich noch Code dazu via attrTemplate), das verringert nämlich die Last für FHEM deutlich, so dass die unnötigen updates für dein ungetriggertes userReading auch weniger werden... (besser: trigger setzen!).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

teichtaucher

Soll ich dann JSON in Ahoy aktivieren? Soll ich das Device dann nochmal komplett neu per autocreate von FHEM anlegen lassen?

Beta-User

Zitat von: teichtaucher am 10 Dezember 2024, 08:47:27Soll ich dann JSON in Ahoy aktivieren? Soll ich das Device dann nochmal komplett neu per autocreate von FHEM anlegen lassen?
Also: JSON ist deutlich effizienter, erfordert aber mehr Arbeit drumrum, und zwar sowohl an der bridge (deine beiden gezeigten Devices, von denen eines überflüssig ist) wie auch an den einzelnen Invertern (du mußt nochmal ein Device haben für deinen Inverter).

Im Moment kann ich dazu nur Bausteinchen liefern, und wenn du dich nicht damit beschäftigst, wirst du immer "komische" Effekte haben.

Hier mal ein "JSON"-Type (4ch-) Inverter (auszugsweise, Zeilenumbrüche bitte selbst nachtragen; die jsonMap erzeugt die bekannten Readings):
attr Inverter_O_Nord 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_Nord readingList inverter/O_Nord/available:.* available
....   
   
    inverter/O_Nord/alarm/[\d]+:.* { $TOPIC =~ m,alarm/([\d]+),; { "alarm_${1}"=>$EVENT } }
inverter/O_Nord/ch0/MaxTemp:.* MaxTemp
inverter/O_Nord/ch1:.* { json2nameValue($EVENT,'1_',$JSONMAP) }
inverter/O_Nord/ch2:.* { json2nameValue($EVENT,'2_',$JSONMAP) }
inverter/O_Nord/ch3:.* { json2nameValue($EVENT,'3_',$JSONMAP) }
inverter/O_Nord/ch4:.* { json2nameValue($EVENT,'4_',$JSONMAP) }
inverter/O_Nord/ch0:.* { json2nameValue($EVENT,'',$JSONMAP)

Und hier die Bridge (allerdings manuell bereinigt, weiß nicht, ob ich für die letzte Version alles "erwischt" habe):
attr AHOY_DTU readingList inverter/total:.* { json2nameValue($EVENT) }
    inverter/uptime:.* uptime
    inverter/wifi_rssi:.* wifi_rssi
    inverter/free_heap:.* free_heap
    inverter/status:.* status
    inverter/mqtt:.* mqtt
    inverter/version:.* version
    inverter/device:.* device
    inverter/ip_addr:.* ip_addr
    inverter/sunrise:.* sunrise
    inverter/sunset:.* sunset
    inverter/comm_start:.* comm_start
    inverter/comm_stop:.* comm_stop
    inverter/comm_disabled:.* comm_disabled
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

teichtaucher

OK, danke. Dann probiere ich mal ein bisschen rum.