OpenWB - MQTT2 client configuration

Begonnen von ritter_runkel, 31 Juli 2021, 19:07:02

Vorheriges Thema - Nächstes Thema

ritter_runkel

Hallo Gemeinde,
ich habe eine OpenWB und versuche in FHEM die MQTT-Daten der Box einzulesen. Dazu habe ich einen MQTT2-Client angelegt:

Internals:
   BUF       
   CFGFN     
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        192.168.100.98:1883
   DeviceName 192.168.100.98:1883
   FD         43
   FUUID      610571a0-f33f-0f04-c3dd-761a1865593f6d09
   NAME       openWB_MQTT_client
   NR         12138
   PARTIAL   
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   openWB_MQTT_client
   lastMsgTime 1627750931.23353
   nextOpenDelay 5
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-07-31 18:57:10   state           opened
Attributes:
   autocreate simple
   group      MQTT
   subscriptions openWB/#


und ein MQTT2_Device:

Internals:
   CFGFN     
   DEF       
   DEVICETOPIC openWB_MQTT_Device
   FUUID      61055dcb-f33f-0f04-882d-f039a93779035c88
   IODev      openWB_MQTT_client
   NAME       openWB_MQTT_Device
   NR         11602
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2021-07-31 18:59:56   IODev           openWB_MQTT_client
     2021-07-31 18:16:41   attrTemplateVersion 20210406
Attributes:
   autocreate 1
   group      MQTT
   icon       building_carport_socket


Ich sehe aber keine Readings im "openWB_MQTT_Device". mit dem MacOS Client "MQTT fx" werden die Tonics der Box angezeigt.

Kann mir jemand sagen was ich hier falsch mache?

Grüße und lieben Dank vorab!
Erik
FHEM auf Raspberry Pi 2B
2x eService 1WireHu, 7x DS1820, 2x Multisensoren Wiregate AMS 2.11 für Temperatur DS1820, relativer Luftfeuchte HIH4031, zwei IO-Ports DS2438, Analog-Eingang 0-10 V (bzw. 0-20 mA) DS2413
FritzDECT; HUE; 5xFibaro RollerShutter, Rauchmelder

Beta-User

Ohne passende CID bekommt dieses m2-device "nichts" automatisch.
Was liefert
list IODev=openWB_MQTT_client
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

ritter_runkel

Guten Morgen,
das List bringt folgendes Ergebnis:

Internals:
   CFGFN     
   DEF       
   DEVICETOPIC openWB_MQTT_Device
   FUUID      61055dcb-f33f-0f04-882d-f039a93779035c88
   IODev      openWB_MQTT_client
   NAME       openWB_MQTT_Device
   NR         11602
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2021-07-31 18:59:56   IODev           openWB_MQTT_client
     2021-07-31 18:16:41   attrTemplateVersion 20210406
Attributes:
   autocreate 1
   group      MQTT
   icon       building_carport_socket


Beste Grüße aus Leipzig
Erik
FHEM auf Raspberry Pi 2B
2x eService 1WireHu, 7x DS1820, 2x Multisensoren Wiregate AMS 2.11 für Temperatur DS1820, relativer Luftfeuchte HIH4031, zwei IO-Ports DS2438, Analog-Eingang 0-10 V (bzw. 0-20 mA) DS2413
FritzDECT; HUE; 5xFibaro RollerShutter, Rauchmelder

Beta-User

Lösche mal das subsciptions-Attribut.
Ansonsten: gibt es irgendwo eine doku zu der mqtt-Schnittstelle?
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

rudolfkoenig

ZitatKann mir jemand sagen was ich hier falsch mache?
Ja: MQTT2_CLIENT verwenden statt MQTT2_SERVER, und darauf hoffen, dass Geraete automatisch angelegt werden.

Beim MQTT2_CLIENT muss man einen MQTT2_DEVICE als Bridge konfiguireren, damit es automatisch laeuft, das erfordert aber Kenntnis der angeschlossenen Geraete. Es gibt Bridge-Templates mit gesammelten Wissen. Ohne Bridge, falls das autocreate Attribut gesetzt ist und(!) ein autocreate Instanz existiert, wird alles in ein neu angelegtes MQTT2_DEVICE gekippt.

Ohne autocreate muss (kann?) man die MQTT Topics sammeln (z.Bsp. mit "attr openWB_MQTT_client rawEvents 1" und Event monitor), und das readingsList Attribut beim passenden MQTT2_DEVICE selbst setzen.

MQTT2_SERVER (statt MQTT2_CLIENT) erleichtert Vieles, ist aber auch nicht perfekt, insb. bei Geraeten die staendig neue ClientIDs erfinden.

ritter_runkel

Hallo Zusammen,
erstmal herzlichen Dank für die Hilfe.
Ich habe das "DEVICE" gelöscht und aus den Daten die der Event Monitor auswirft ein neues Gerät angelegt und dieses in den autocreate-Modus versetzt.
...und jetzt nicht erschrecken ;-) die Wallbox ist eine Quatschtante:

...das muss ich mir erstmal anschauen und dann sortieren. Alles brauche ich sicher nicht.
Grüße aus Leipzig.....
Erik


defmod MQTT2_openWB MQTT2_DEVICE openWB
attr MQTT2_openWB autocreate 0
attr MQTT2_openWB devicetopic openWB
attr MQTT2_openWB icon building_carport_socket
attr MQTT2_openWB model openWB
attr MQTT2_openWB readingList openWB:openWB/lp/1/VPhase1:.* lp_1_VPhase1\
openWB:openWB/set/houseBattery/faultState:.* faultState\
openWB:openWB/set/houseBattery/faultStr:.* faultStr\
openWB:openWB/housebattery/faultStr:.* faultStr\
openWB:openWB/housebattery/faultState:.* faultState\
openWB:openWB/hook/1/boolHookConfigured:.* hook_1_boolHookConfigured\
openWB:openWB/hook/2/boolHookConfigured:.* hook_2_boolHookConfigured\
openWB:openWB/hook/3/boolHookConfigured:.* hook_3_boolHookConfigured\
openWB:openWB/system/Uptime:.* Uptime\
openWB:openWB/system/Date:.* Date\
openWB:openWB/system/Timestamp:.* Timestamp\
openWB:openWB/system/lastlivevalues:.* lastlivevalues\
openWB:openWB/global/DailyYieldHausverbrauchKwh:.* DailyYieldHausverbrauchKwh\
openWB:openWB/global/WHouseConsumption:.* WHouseConsumption\
openWB:openWB/global/cpuTemp:.* cpuTemp\
openWB:openWB/global/strLastmanagementActive:.* strLastmanagementActive\
openWB:openWB/pv/DailyYieldKwh:.* DailyYieldKwh\
openWB:openWB/graph/lastlivevalues:.* lastlivevalues\
openWB:openWB/graph/alllivevalues:.* alllivevalues\
openWB:openWB/graph/1alllivevalues:.* 1alllivevalues\
openWB:openWB/graph/2alllivevalues:.* 2alllivevalues\
openWB:openWB/graph/3alllivevalues:.* 3alllivevalues\
openWB:openWB/graph/4alllivevalues:.* 4alllivevalues\
openWB:openWB/graph/5alllivevalues:.* 5alllivevalues\
openWB:openWB/graph/6alllivevalues:.* 6alllivevalues\
openWB:openWB/graph/7alllivevalues:.* 7alllivevalues\
openWB:openWB/graph/8alllivevalues:.* 8alllivevalues\
openWB:openWB/graph/boolDisplayHouseConsumption:.* boolDisplayHouseConsumption\
openWB:openWB/graph/boolDisplayLoad1:.* boolDisplayLoad1\
openWB:openWB/graph/boolDisplayLoad2:.* boolDisplayLoad2\
openWB:openWB/graph/boolDisplayLp1Soc:.* boolDisplayLp1Soc\
openWB:openWB/graph/boolDisplayLp2Soc:.* boolDisplayLp2Soc\
openWB:openWB/graph/boolDisplayLp1:.* boolDisplayLp1\
openWB:openWB/graph/boolDisplayLp2:.* boolDisplayLp2\
openWB:openWB/graph/boolDisplayLp3:.* boolDisplayLp3\
openWB:openWB/graph/boolDisplayLp4:.* boolDisplayLp4\
openWB:openWB/graph/boolDisplayLp5:.* boolDisplayLp5\
openWB:openWB/graph/boolDisplayLp6:.* boolDisplayLp6\
openWB:openWB/graph/boolDisplayLp7:.* boolDisplayLp7\
openWB:openWB/graph/boolDisplayLp8:.* boolDisplayLp8\
openWB:openWB/graph/boolDisplayLpAll:.* boolDisplayLpAll\
openWB:openWB/graph/boolDisplaySpeicherSoc:.* boolDisplaySpeicherSoc\
openWB:openWB/graph/boolDisplaySpeicher:.* boolDisplaySpeicher\
openWB:openWB/graph/boolDisplayEvu:.* boolDisplayEvu\
openWB:openWB/graph/boolDisplayLegend:.* boolDisplayLegend\
openWB:openWB/graph/boolDisplayPv:.* boolDisplayPv\
openWB:openWB/graph/11alllivevalues:.* 11alllivevalues\
openWB:openWB/graph/9alllivevalues:.* 9alllivevalues\
openWB:openWB/graph/13alllivevalues:.* 13alllivevalues\
openWB:openWB/graph/12alllivevalues:.* 12alllivevalues\
openWB:openWB/graph/15alllivevalues:.* 15alllivevalues\
openWB:openWB/graph/10alllivevalues:.* 10alllivevalues\
openWB:openWB/graph/16alllivevalues:.* 16alllivevalues\
openWB:openWB/graph/14alllivevalues:.* 14alllivevalues\
openWB:openWB/graph/boolDisplayLiveGraph:.* boolDisplayLiveGraph\
openWB:openWB/global/ChargeMode:.* ChargeMode\
openWB:openWB/global/WAllChargePoints:.* WAllChargePoints\
openWB:openWB/global/awattar/boolAwattarEnabled:.* boolAwattarEnabled\
openWB:openWB/global/awattar/ActualPriceForCharging:.* ActualPriceForCharging\
openWB:openWB/global/awattar/MaxPriceForCharging:.* MaxPriceForCharging\
openWB:openWB/global/boolRse:.* boolRse\
openWB:openWB/global/DailyYieldAllChargePointsKwh:.* DailyYieldAllChargePointsKwh\
openWB:openWB/global/rfidConfigured:.* rfidConfigured\
openWB:openWB/global/kWhCounterAllChargePoints:.* kWhCounterAllChargePoints\
openWB:openWB/global/ETProvider/modulePath:.* modulePath\
openWB:openWB/lp/1/W:.* lp_1_W\
openWB:openWB/lp/1/boolChargePointConfigured:.* lp_1_boolChargePointConfigured\
openWB:openWB/lp/1/\x25Soc:.* lp_1__Soc\
openWB:openWB/lp/1/kWhDailyCharged:.* lp_1_kWhDailyCharged\
openWB:openWB/lp/1/TimeRemaining:.* lp_1_TimeRemaining\
openWB:openWB/lp/1/kmCharged:.* lp_1_kmCharged\
openWB:openWB/lp/1/boolSocConfigured:.* lp_1_boolSocConfigured\
openWB:openWB/lp/1/boolDirectModeChargekWh:.* lp_1_boolDirectModeChargekWh\
openWB:openWB/lp/1/boolDirectChargeModeSoc:.* lp_1_boolDirectChargeModeSoc\
openWB:openWB/lp/1/strChargePointName:.* lp_1_strChargePointName\
openWB:openWB/lp/1/boolFinishAtTimeChargeActive:.* lp_1_boolFinishAtTimeChargeActive\
openWB:openWB/lp/1/boolChargeAtNight:.* lp_1_boolChargeAtNight\
openWB:openWB/lp/1/energyConsumptionPer100km:.* lp_1_energyConsumptionPer100km\
openWB:openWB/lp/1/kWhCounter:.* lp_1_kWhCounter\
openWB:openWB/lp/1/VPhase2:.* lp_1_VPhase2\
openWB:openWB/lp/1/VPhase3:.* lp_1_VPhase3\
openWB:openWB/lp/1/AutolockStatus:.* lp_1_AutolockStatus\
openWB:openWB/lp/1/countPhasesInUse:.* lp_1_countPhasesInUse\
openWB:openWB/lp/1/kWhActualCharged:.* lp_1_kWhActualCharged\
openWB:openWB/lp/1/ChargeStatus:.* lp_1_ChargeStatus\
openWB:openWB/lp/1/kWhChargedSincePlugged:.* lp_1_kWhChargedSincePlugged\
openWB:openWB/lp/1/PfPhase2:.* lp_1_PfPhase2\
openWB:openWB/lp/1/PfPhase3:.* lp_1_PfPhase3\
openWB:openWB/lp/1/PfPhase1:.* lp_1_PfPhase1\
openWB:openWB/lp/1/AutolockConfigured:.* lp_1_AutolockConfigured\
openWB:openWB/lp/1/boolPlugStat:.* lp_1_boolPlugStat\
openWB:openWB/lp/1/AConfigured:.* lp_1_AConfigured\
openWB:openWB/lp/1/APhase3:.* lp_1_APhase3\
openWB:openWB/lp/1/APhase2:.* lp_1_APhase2\
openWB:openWB/lp/1/ChargePointEnabled:.* lp_1_ChargePointEnabled\
openWB:openWB/lp/1/APhase1:.* lp_1_APhase1\
openWB:openWB/lp/1/boolChargeStat:.* lp_1_boolChargeStat\
openWB:openWB/lp/1/lastRfId:.* lp_1_lastRfId\
openWB:openWB/lp/1/pluggedladungakt:.* lp_1_pluggedladungakt\
openWB:openWB/lp/1/plugStartkWh:.* lp_1_plugStartkWh\
openWB:openWB/lp/1/boolSocManual:.* lp_1_boolSocManual\
openWB:openWB/lp/1/MeterSerialNumber:.* lp_1_MeterSerialNumber\
openWB:openWB/lp/2/VPhase2:.* lp_2_VPhase2\
openWB:openWB/lp/2/kWhDailyCharged:.* lp_2_kWhDailyCharged\
openWB:openWB/lp/2/TimeRemaining:.* lp_2_TimeRemaining\
openWB:openWB/lp/2/kmCharged:.* lp_2_kmCharged\
openWB:openWB/lp/2/boolChargePointConfigured:.* lp_2_boolChargePointConfigured\
openWB:openWB/lp/2/boolSocConfigured:.* lp_2_boolSocConfigured\
openWB:openWB/lp/2/boolDirectModeChargekWh:.* lp_2_boolDirectModeChargekWh\
openWB:openWB/lp/2/boolDirectChargeModeSoc:.* lp_2_boolDirectChargeModeSoc\
openWB:openWB/lp/2/strChargePointName:.* lp_2_strChargePointName\
openWB:openWB/lp/2/boolChargeAtNight:.* lp_2_boolChargeAtNight\
openWB:openWB/lp/2/energyConsumptionPer100km:.* lp_2_energyConsumptionPer100km\
openWB:openWB/lp/2/countPhasesInUse:.* lp_2_countPhasesInUse\
openWB:openWB/lp/2/kWhCounter:.* lp_2_kWhCounter\
openWB:openWB/lp/2/APhase1:.* lp_2_APhase1\
openWB:openWB/lp/2/APhase2:.* lp_2_APhase2\
openWB:openWB/lp/2/APhase3:.* lp_2_APhase3\
openWB:openWB/lp/2/boolPlugStat:.* lp_2_boolPlugStat\
openWB:openWB/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled\
openWB:openWB/lp/2/AutolockConfigured:.* lp_2_AutolockConfigured\
openWB:openWB/lp/2/kWhChargedSincePlugged:.* lp_2_kWhChargedSincePlugged\
openWB:openWB/lp/2/AConfigured:.* lp_2_AConfigured\
openWB:openWB/lp/2/ChargeStatus:.* lp_2_ChargeStatus\
openWB:openWB/lp/2/AutolockStatus:.* lp_2_AutolockStatus\
openWB:openWB/lp/2/boolChargeStat:.* lp_2_boolChargeStat\
openWB:openWB/lp/2/kWhActualCharged:.* lp_2_kWhActualCharged\
openWB:openWB/lp/2/VPhase3:.* lp_2_VPhase3\
openWB:openWB/lp/2/VPhase1:.* lp_2_VPhase1\
openWB:openWB/lp/2/lastRfId:.* lp_2_lastRfId\
openWB:openWB/lp/2/plugStartkWh:.* lp_2_plugStartkWh\
openWB:openWB/lp/2/pluggedladungakt:.* lp_2_pluggedladungakt\
openWB:openWB/lp/3/W:.* lp_3_W\
openWB:openWB/lp/3/kWhDailyCharged:.* lp_3_kWhDailyCharged\
openWB:openWB/lp/3/TimeRemaining:.* lp_3_TimeRemaining\
openWB:openWB/lp/3/kmCharged:.* lp_3_kmCharged\
openWB:openWB/lp/3/boolChargePointConfigured:.* lp_3_boolChargePointConfigured\
openWB:openWB/lp/3/boolDirectModeChargekWh:.* lp_3_boolDirectModeChargekWh\
openWB:openWB/lp/3/strChargePointName:.* lp_3_strChargePointName\
openWB:openWB/lp/3/energyConsumptionPer100km:.* lp_3_energyConsumptionPer100km\
openWB:openWB/lp/3/AConfigured:.* lp_3_AConfigured\
openWB:openWB/lp/3/AutolockStatus:.* lp_3_AutolockStatus\
openWB:openWB/lp/3/boolChargeStat:.* lp_3_boolChargeStat\
openWB:openWB/lp/3/kWhActualCharged:.* lp_3_kWhActualCharged\
openWB:openWB/lp/3/VPhase2:.* lp_3_VPhase2\
openWB:openWB/lp/3/VPhase3:.* lp_3_VPhase3\
openWB:openWB/lp/3/VPhase1:.* lp_3_VPhase1\
openWB:openWB/lp/3/kWhChargedSincePlugged:.* lp_3_kWhChargedSincePlugged\
openWB:openWB/lp/3/kWhCounter:.* lp_3_kWhCounter\
openWB:openWB/lp/3/APhase1:.* lp_3_APhase1\
openWB:openWB/lp/3/APhase3:.* lp_3_APhase3\
openWB:openWB/lp/3/APhase2:.* lp_3_APhase2\
openWB:openWB/lp/3/AutolockConfigured:.* lp_3_AutolockConfigured\
openWB:openWB/lp/3/boolPlugStat:.* lp_3_boolPlugStat\
openWB:openWB/lp/3/ChargePointEnabled:.* lp_3_ChargePointEnabled\
openWB:openWB/lp/3/ChargeStatus:.* lp_3_ChargeStatus\
openWB:openWB/lp/3/countPhasesInUse:.* lp_3_countPhasesInUse\
openWB:openWB/lp/3/pluggedladungakt:.* lp_3_pluggedladungakt\
openWB:openWB/lp/3/plugStartkWh:.* lp_3_plugStartkWh\
openWB:openWB/lp/4/boolChargePointConfigured:.* lp_4_boolChargePointConfigured\
openWB:openWB/lp/4/boolDirectModeChargekWh:.* lp_4_boolDirectModeChargekWh\
openWB:openWB/lp/4/strChargePointName:.* lp_4_strChargePointName\
openWB:openWB/lp/4/AConfigured:.* lp_4_AConfigured\
openWB:openWB/lp/4/TimeRemaining:.* lp_4_TimeRemaining\
openWB:openWB/lp/4/AutolockConfigured:.* lp_4_AutolockConfigured\
openWB:openWB/lp/4/boolPlugStat:.* lp_4_boolPlugStat\
openWB:openWB/lp/4/kWhCounter:.* lp_4_kWhCounter\
openWB:openWB/lp/4/APhase2:.* lp_4_APhase2\
openWB:openWB/lp/4/APhase3:.* lp_4_APhase3\
openWB:openWB/lp/4/APhase1:.* lp_4_APhase1\
openWB:openWB/lp/4/VPhase1:.* lp_4_VPhase1\
openWB:openWB/lp/4/boolChargeStat:.* lp_4_boolChargeStat\
openWB:openWB/lp/4/VPhase3:.* lp_4_VPhase3\
openWB:openWB/lp/4/VPhase2:.* lp_4_VPhase2\
openWB:openWB/lp/4/countPhasesInUse:.* lp_4_countPhasesInUse\
openWB:openWB/lp/4/kWhChargedSincePlugged:.* lp_4_kWhChargedSincePlugged\
openWB:openWB/lp/4/kWhActualCharged:.* lp_4_kWhActualCharged\
openWB:openWB/lp/4/ChargeStatus:.* lp_4_ChargeStatus\
openWB:openWB/lp/4/AutolockStatus:.* lp_4_AutolockStatus\
openWB:openWB/lp/4/W:.* lp_4_W\
openWB:openWB/lp/4/ChargePointEnabled:.* lp_4_ChargePointEnabled\
openWB:openWB/lp/4/plugStartkWh:.* lp_4_plugStartkWh\
openWB:openWB/lp/4/pluggedladungakt:.* lp_4_pluggedladungakt\
openWB:openWB/lp/5/boolChargePointConfigured:.* lp_5_boolChargePointConfigured\
openWB:openWB/lp/5/boolDirectModeChargekWh:.* lp_5_boolDirectModeChargekWh\
openWB:openWB/lp/5/strChargePointName:.* lp_5_strChargePointName\
openWB:openWB/lp/5/AConfigured:.* lp_5_AConfigured\
openWB:openWB/lp/5/APhase3:.* lp_5_APhase3\
openWB:openWB/lp/5/boolPlugStat:.* lp_5_boolPlugStat\
openWB:openWB/lp/5/APhase2:.* lp_5_APhase2\
openWB:openWB/lp/5/APhase1:.* lp_5_APhase1\
openWB:openWB/lp/5/kWhChargedSincePlugged:.* lp_5_kWhChargedSincePlugged\
openWB:openWB/lp/5/boolChargeStat:.* lp_5_boolChargeStat\
openWB:openWB/lp/5/ChargePointEnabled:.* lp_5_ChargePointEnabled\
openWB:openWB/lp/5/kWhActualCharged:.* lp_5_kWhActualCharged\
openWB:openWB/lp/5/ChargeStatus:.* lp_5_ChargeStatus\
openWB:openWB/lp/5/AutolockConfigured:.* lp_5_AutolockConfigured\
openWB:openWB/lp/5/AutolockStatus:.* lp_5_AutolockStatus\
openWB:openWB/lp/5/TimeRemaining:.* lp_5_TimeRemaining\
openWB:openWB/lp/5/W:.* lp_5_W\
openWB:openWB/lp/5/VPhase1:.* lp_5_VPhase1\
openWB:openWB/lp/5/VPhase2:.* lp_5_VPhase2\
openWB:openWB/lp/5/VPhase3:.* lp_5_VPhase3\
openWB:openWB/lp/5/kWhCounter:.* lp_5_kWhCounter\
openWB:openWB/lp/5/countPhasesInUse:.* lp_5_countPhasesInUse\
openWB:openWB/lp/5/plugStartkWh:.* lp_5_plugStartkWh\
openWB:openWB/lp/5/pluggedladungakt:.* lp_5_pluggedladungakt\
openWB:openWB/lp/6/boolChargePointConfigured:.* lp_6_boolChargePointConfigured\
openWB:openWB/lp/6/boolDirectModeChargekWh:.* lp_6_boolDirectModeChargekWh\
openWB:openWB/lp/6/strChargePointName:.* lp_6_strChargePointName\
openWB:openWB/lp/6/kWhCounter:.* lp_6_kWhCounter\
openWB:openWB/lp/6/AutolockConfigured:.* lp_6_AutolockConfigured\
openWB:openWB/lp/6/VPhase3:.* lp_6_VPhase3\
openWB:openWB/lp/6/VPhase2:.* lp_6_VPhase2\
openWB:openWB/lp/6/VPhase1:.* lp_6_VPhase1\
openWB:openWB/lp/6/boolChargeStat:.* lp_6_boolChargeStat\
openWB:openWB/lp/6/AutolockStatus:.* lp_6_AutolockStatus\
openWB:openWB/lp/6/AConfigured:.* lp_6_AConfigured\
openWB:openWB/lp/6/W:.* lp_6_W\
openWB:openWB/lp/6/countPhasesInUse:.* lp_6_countPhasesInUse\
openWB:openWB/lp/6/boolPlugStat:.* lp_6_boolPlugStat\
openWB:openWB/lp/6/kWhChargedSincePlugged:.* lp_6_kWhChargedSincePlugged\
openWB:openWB/lp/6/TimeRemaining:.* lp_6_TimeRemaining\
openWB:openWB/lp/6/APhase1:.* lp_6_APhase1\
openWB:openWB/lp/6/kWhActualCharged:.* lp_6_kWhActualCharged\
openWB:openWB/lp/6/APhase2:.* lp_6_APhase2\
openWB:openWB/lp/6/APhase3:.* lp_6_APhase3\
openWB:openWB/lp/6/ChargePointEnabled:.* lp_6_ChargePointEnabled\
openWB:openWB/lp/6/ChargeStatus:.* lp_6_ChargeStatus\
openWB:openWB/lp/6/pluggedladungakt:.* lp_6_pluggedladungakt\
openWB:openWB/lp/6/plugStartkWh:.* lp_6_plugStartkWh\
openWB:openWB/lp/7/boolChargePointConfigured:.* lp_7_boolChargePointConfigured\
openWB:openWB/lp/7/boolDirectModeChargekWh:.* lp_7_boolDirectModeChargekWh\
openWB:openWB/lp/7/strChargePointName:.* lp_7_strChargePointName\
openWB:openWB/lp/7/AutolockStatus:.* lp_7_AutolockStatus\
openWB:openWB/lp/7/AutolockConfigured:.* lp_7_AutolockConfigured\
openWB:openWB/lp/7/kWhActualCharged:.* lp_7_kWhActualCharged\
openWB:openWB/lp/7/ChargePointEnabled:.* lp_7_ChargePointEnabled\
openWB:openWB/lp/7/kWhCounter:.* lp_7_kWhCounter\
openWB:openWB/lp/7/kWhChargedSincePlugged:.* lp_7_kWhChargedSincePlugged\
openWB:openWB/lp/7/countPhasesInUse:.* lp_7_countPhasesInUse\
openWB:openWB/lp/7/boolPlugStat:.* lp_7_boolPlugStat\
openWB:openWB/lp/7/VPhase2:.* lp_7_VPhase2\
openWB:openWB/lp/7/VPhase3:.* lp_7_VPhase3\
openWB:openWB/lp/7/VPhase1:.* lp_7_VPhase1\
openWB:openWB/lp/7/boolChargeStat:.* lp_7_boolChargeStat\
openWB:openWB/lp/7/APhase1:.* lp_7_APhase1\
openWB:openWB/lp/7/APhase3:.* lp_7_APhase3\
openWB:openWB/lp/7/APhase2:.* lp_7_APhase2\
openWB:openWB/lp/7/ChargeStatus:.* lp_7_ChargeStatus\
openWB:openWB/lp/7/TimeRemaining:.* lp_7_TimeRemaining\
openWB:openWB/lp/7/AConfigured:.* lp_7_AConfigured\
openWB:openWB/lp/7/W:.* lp_7_W\
openWB:openWB/lp/7/plugStartkWh:.* lp_7_plugStartkWh\
openWB:openWB/lp/7/pluggedladungakt:.* lp_7_pluggedladungakt\
openWB:openWB/lp/8/boolChargePointConfigured:.* lp_8_boolChargePointConfigured\
openWB:openWB/lp/8/boolDirectModeChargekWh:.* lp_8_boolDirectModeChargekWh\
openWB:openWB/lp/8/strChargePointName:.* lp_8_strChargePointName\
openWB:openWB/lp/8/ChargePointEnabled:.* lp_8_ChargePointEnabled\
openWB:openWB/lp/8/VPhase1:.* lp_8_VPhase1\
openWB:openWB/lp/8/boolChargeStat:.* lp_8_boolChargeStat\
openWB:openWB/lp/8/VPhase3:.* lp_8_VPhase3\
openWB:openWB/lp/8/VPhase2:.* lp_8_VPhase2\
openWB:openWB/lp/8/kWhCounter:.* lp_8_kWhCounter\
openWB:openWB/lp/8/kWhChargedSincePlugged:.* lp_8_kWhChargedSincePlugged\
openWB:openWB/lp/8/AutolockStatus:.* lp_8_AutolockStatus\
openWB:openWB/lp/8/boolPlugStat:.* lp_8_boolPlugStat\
openWB:openWB/lp/8/countPhasesInUse:.* lp_8_countPhasesInUse\
openWB:openWB/lp/8/ChargeStatus:.* lp_8_ChargeStatus\
openWB:openWB/lp/8/APhase2:.* lp_8_APhase2\
openWB:openWB/lp/8/APhase3:.* lp_8_APhase3\
openWB:openWB/lp/8/APhase1:.* lp_8_APhase1\
openWB:openWB/lp/8/AutolockConfigured:.* lp_8_AutolockConfigured\
openWB:openWB/lp/8/TimeRemaining:.* lp_8_TimeRemaining\
openWB:openWB/lp/8/W:.* lp_8_W\
openWB:openWB/lp/8/kWhActualCharged:.* lp_8_kWhActualCharged\
openWB:openWB/lp/8/AConfigured:.* lp_8_AConfigured\
openWB:openWB/lp/8/plugStartkWh:.* lp_8_plugStartkWh\
openWB:openWB/lp/8/pluggedladungakt:.* lp_8_pluggedladungakt\
openWB:openWB/strLastmanagementActive:.* strLastmanagementActive\
openWB:openWB/system/Version:.* Version\
openWB:openWB/system/IpAddress:.* IpAddress\
openWB:openWB/system/lastRfId:.* lastRfId\
openWB:openWB/system/updateInProgress:.* updateInProgress\
openWB:openWB/system/ConfiguredChargePoints:.* ConfiguredChargePoints\
openWB:openWB/system/randomSleep:.* randomSleep\
openWB:openWB/system/wizzardDone:.* wizzardDone\
openWB:openWB/system/priceForKWh:.* priceForKWh\
openWB:openWB/system/reloadDisplay:.* reloadDisplay\
openWB:openWB/system/DayGraphData1:.* DayGraphData1\
openWB:openWB/system/DayGraphData2:.* DayGraphData2\
openWB:openWB/system/DayGraphData3:.* DayGraphData3\
openWB:openWB/system/DayGraphData4:.* DayGraphData4\
openWB:openWB/system/DayGraphData5:.* DayGraphData5\
openWB:openWB/system/DayGraphData6:.* DayGraphData6\
openWB:openWB/system/DayGraphData7:.* DayGraphData7\
openWB:openWB/system/DayGraphData8:.* DayGraphData8\
openWB:openWB/system/DayGraphData9:.* DayGraphData9\
openWB:openWB/system/DayGraphData10:.* DayGraphData10\
openWB:openWB/system/DayGraphData11:.* DayGraphData11\
openWB:openWB/system/DayGraphData12:.* DayGraphData12\
openWB:openWB/system/MonthGraphData1:.* MonthGraphData1\
openWB:openWB/system/MonthGraphData2:.* MonthGraphData2\
openWB:openWB/system/MonthGraphData3:.* MonthGraphData3\
openWB:openWB/system/MonthGraphData4:.* MonthGraphData4\
openWB:openWB/system/MonthGraphData5:.* MonthGraphData5\
openWB:openWB/system/MonthGraphData6:.* MonthGraphData6\
openWB:openWB/system/MonthGraphData7:.* MonthGraphData7\
openWB:openWB/system/MonthGraphData8:.* MonthGraphData8\
openWB:openWB/system/MonthGraphData9:.* MonthGraphData9\
openWB:openWB/system/MonthGraphData10:.* MonthGraphData10\
openWB:openWB/system/MonthGraphData11:.* MonthGraphData11\
openWB:openWB/system/MonthGraphData12:.* MonthGraphData12\
openWB:openWB/system/MonthLadelogData1:.* MonthLadelogData1\
openWB:openWB/system/MonthLadelogData2:.* MonthLadelogData2\
openWB:openWB/system/MonthLadelogData3:.* MonthLadelogData3\
openWB:openWB/system/MonthLadelogData4:.* MonthLadelogData4\
openWB:openWB/system/MonthLadelogData5:.* MonthLadelogData5\
openWB:openWB/system/MonthLadelogData6:.* MonthLadelogData6\
openWB:openWB/system/MonthLadelogData7:.* MonthLadelogData7\
openWB:openWB/system/MonthLadelogData8:.* MonthLadelogData8\
openWB:openWB/system/MonthLadelogData9:.* MonthLadelogData9\
openWB:openWB/system/MonthLadelogData10:.* MonthLadelogData10\
openWB:openWB/system/MonthLadelogData11:.* MonthLadelogData11\
openWB:openWB/system/MonthLadelogData12:.* MonthLadelogData12\
openWB:openWB/SmartHome/Devices/7/RunningTimeToday:.* Devices_7_RunningTimeToday\
openWB:openWB/SmartHome/Devices/7/DailyYieldKwh:.* Devices_7_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/7/Watt:.* Devices_7_Watt\
openWB:openWB/SmartHome/Devices/7/OnCountNor:.* Devices_7_OnCountNor\
openWB:openWB/SmartHome/Devices/7/OnCntStandby:.* Devices_7_OnCntStandby\
openWB:openWB/SmartHome/Devices/7/Status:.* Devices_7_Status\
openWB:openWB/SmartHome/Devices/5/RunningTimeToday:.* Devices_5_RunningTimeToday\
openWB:openWB/SmartHome/Devices/5/DailyYieldKwh:.* Devices_5_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/5/Watt:.* Devices_5_Watt\
openWB:openWB/SmartHome/Devices/5/OnCountNor:.* Devices_5_OnCountNor\
openWB:openWB/SmartHome/Devices/5/OnCntStandby:.* Devices_5_OnCntStandby\
openWB:openWB/SmartHome/Devices/5/Status:.* Devices_5_Status\
openWB:openWB/SmartHome/Devices/3/RunningTimeToday:.* Devices_3_RunningTimeToday\
openWB:openWB/SmartHome/Devices/3/DailyYieldKwh:.* Devices_3_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/3/Watt:.* Devices_3_Watt\
openWB:openWB/SmartHome/Devices/3/OnCountNor:.* Devices_3_OnCountNor\
openWB:openWB/SmartHome/Devices/3/OnCntStandby:.* Devices_3_OnCntStandby\
openWB:openWB/SmartHome/Devices/3/Status:.* Devices_3_Status\
openWB:openWB/SmartHome/Devices/4/DailyYieldKwh:.* Devices_4_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/4/RunningTimeToday:.* Devices_4_RunningTimeToday\
openWB:openWB/SmartHome/Devices/4/Watt:.* Devices_4_Watt\
openWB:openWB/SmartHome/Devices/4/OnCountNor:.* Devices_4_OnCountNor\
openWB:openWB/SmartHome/Devices/4/OnCntStandby:.* Devices_4_OnCntStandby\
openWB:openWB/SmartHome/Devices/4/Status:.* Devices_4_Status\
openWB:openWB/SmartHome/Devices/1/DailyYieldKwh:.* Devices_1_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/1/RunningTimeToday:.* Devices_1_RunningTimeToday\
openWB:openWB/SmartHome/Devices/1/Watt:.* Devices_1_Watt\
openWB:openWB/SmartHome/Devices/1/OnCountNor:.* Devices_1_OnCountNor\
openWB:openWB/SmartHome/Devices/1/OnCntStandby:.* Devices_1_OnCntStandby\
openWB:openWB/SmartHome/Devices/1/Status:.* Devices_1_Status\
openWB:openWB/SmartHome/Devices/2/DailyYieldKwh:.* Devices_2_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/2/RunningTimeToday:.* Devices_2_RunningTimeToday\
openWB:openWB/SmartHome/Devices/2/Watt:.* Devices_2_Watt\
openWB:openWB/SmartHome/Devices/2/OnCountNor:.* Devices_2_OnCountNor\
openWB:openWB/SmartHome/Devices/2/OnCntStandby:.* Devices_2_OnCntStandby\
openWB:openWB/SmartHome/Devices/2/Status:.* Devices_2_Status\
openWB:openWB/SmartHome/Devices/6/RunningTimeToday:.* Devices_6_RunningTimeToday\
openWB:openWB/SmartHome/Devices/6/DailyYieldKwh:.* Devices_6_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/6/Watt:.* Devices_6_Watt\
openWB:openWB/SmartHome/Devices/6/OnCountNor:.* Devices_6_OnCountNor\
openWB:openWB/SmartHome/Devices/6/OnCntStandby:.* Devices_6_OnCntStandby\
openWB:openWB/SmartHome/Devices/6/Status:.* Devices_6_Status\
openWB:openWB/SmartHome/Devices/8/DailyYieldKwh:.* Devices_8_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/8/RunningTimeToday:.* Devices_8_RunningTimeToday\
openWB:openWB/SmartHome/Devices/8/Watt:.* Devices_8_Watt\
openWB:openWB/SmartHome/Devices/8/OnCountNor:.* Devices_8_OnCountNor\
openWB:openWB/SmartHome/Devices/8/OnCntStandby:.* Devices_8_OnCntStandby\
openWB:openWB/SmartHome/Devices/8/Status:.* Devices_8_Status\
openWB:openWB/SmartHome/Devices/9/DailyYieldKwh:.* Devices_9_DailyYieldKwh\
openWB:openWB/SmartHome/Devices/9/RunningTimeToday:.* Devices_9_RunningTimeToday\
openWB:openWB/SmartHome/Devices/9/Watt:.* Devices_9_Watt\
openWB:openWB/SmartHome/Devices/9/OnCountNor:.* Devices_9_OnCountNor\
openWB:openWB/SmartHome/Devices/9/OnCntStandby:.* Devices_9_OnCntStandby\
openWB:openWB/SmartHome/Devices/9/Status:.* Devices_9_Status\
openWB:openWB/SmartHome/Status/uberschuss:.* uberschuss\
openWB:openWB/SmartHome/Status/uberschussoffset:.* uberschussoffset\
openWB:openWB/evu/W:.* W\
openWB:openWB/evu/WhImported:.* WhImported\
openWB:openWB/evu/VPhase2:.* VPhase2\
openWB:openWB/evu/VPhase3:.* VPhase3\
openWB:openWB/evu/VPhase1:.* VPhase1\
openWB:openWB/evu/WhExported:.* WhExported\
openWB:openWB/evu/APhase1:.* APhase1\
openWB:openWB/evu/APhase3:.* APhase3\
openWB:openWB/evu/APhase2:.* APhase2\
openWB:openWB/evu/WPhase3:.* WPhase3\
openWB:openWB/evu/WPhase2:.* WPhase2\
openWB:openWB/evu/WPhase1:.* WPhase1\
openWB:openWB/evu/PfPhase1:.* PfPhase1\
openWB:openWB/evu/PfPhase2:.* PfPhase2\
openWB:openWB/evu/PfPhase3:.* PfPhase3\
openWB:openWB/evu/WAverage:.* WAverage\
openWB:openWB/evu/ASchieflast:.* ASchieflast\
openWB:openWB/evu/Hz:.* Hz\
openWB:openWB/evu/DailyYieldExportKwh:.* DailyYieldExportKwh\
openWB:openWB/evu/DailyYieldImportKwh:.* DailyYieldImportKwh\
openWB:openWB/hook/1/boolHookStatus:.* hook_1_boolHookStatus\
openWB:openWB/hook/2/boolHookStatus:.* hook_2_boolHookStatus\
openWB:openWB/hook/3/boolHookStatus:.* hook_3_boolHookStatus\
openWB:openWB/housebattery/boolHouseBatteryConfigured:.* boolHouseBatteryConfigured\
openWB:openWB/housebattery/WhExported:.* WhExported\
openWB:openWB/housebattery/WhImported:.* WhImported\
openWB:openWB/housebattery/DailyYieldExportKwh:.* DailyYieldExportKwh\
openWB:openWB/housebattery/DailyYieldImportKwh:.* DailyYieldImportKwh\
openWB:openWB/housebattery/W:.* W\
openWB:openWB/housebattery/\x25Soc:.* _Soc\
openWB:openWB/boolChargeAtNight_direct:.* boolChargeAtNight_direct\
openWB:openWB/boolChargeAtNight_nurpv:.* boolChargeAtNight_nurpv\
openWB:openWB/boolChargeAtNight_minpv:.* boolChargeAtNight_minpv\
openWB:openWB/boolDisplayHouseConsumption:.* boolDisplayHouseConsumption\
openWB:openWB/boolDisplayDailyCharged:.* boolDisplayDailyCharged\
openWB:openWB/boolEvuSmoothedActive:.* boolEvuSmoothedActive\
openWB:openWB/pv/bool70PVDynActive:.* bool70PVDynActive\
openWB:openWB/pv/W70PVDyn:.* W70PVDyn\
openWB:openWB/pv/WhCounter:.* WhCounter\
openWB:openWB/pv/bool70PVDynStatus:.* bool70PVDynStatus\
openWB:openWB/pv/CounterTillStartPvCharging:.* CounterTillStartPvCharging\
openWB:openWB/pv/W:.* W\
openWB:openWB/pv/1/boolPVConfigured:.* pv_1_boolPVConfigured\
openWB:openWB/pv/1/DailyYieldKwh:.* pv_1_DailyYieldKwh\
openWB:openWB/pv/1/MonthlyYieldKwh:.* pv_1_MonthlyYieldKwh\
openWB:openWB/pv/1/W:.* pv_1_W\
openWB:openWB/pv/1/YearlyYieldKwh:.* pv_1_YearlyYieldKwh\
openWB:openWB/pv/1/WhCounter:.* pv_1_WhCounter\
openWB:openWB/pv/2/boolPVConfigured:.* pv_2_boolPVConfigured\
openWB:openWB/pv/2/YearlyYieldKwh:.* pv_2_YearlyYieldKwh\
openWB:openWB/pv/2/WhCounter:.* pv_2_WhCounter\
openWB:openWB/pv/2/DailyYieldKwh:.* pv_2_DailyYieldKwh\
openWB:openWB/pv/2/W:.* pv_2_W\
openWB:openWB/pv/2/MonthlyYieldKwh:.* pv_2_MonthlyYieldKwh\
openWB:openWB/pv/MonthlyYieldKwh:.* MonthlyYieldKwh\
openWB:openWB/pv/YearlyYieldKwh:.* YearlyYieldKwh\
openWB:openWB/config/get/pv/nurpv70dynact:.* nurpv70dynact\
openWB:openWB/config/get/pv/nurpv70dynw:.* nurpv70dynw\
openWB:openWB/config/get/pv/priorityModeEVBattery:.* priorityModeEVBattery\
openWB:openWB/config/get/pv/lp/1/minSocAlwaysToChargeTo:.* lp_1_minSocAlwaysToChargeTo\
openWB:openWB/config/get/pv/lp/1/maxSoc:.* lp_1_maxSoc\
openWB:openWB/config/get/pv/lp/1/minSocAlwaysToChargeToCurrent:.* lp_1_minSocAlwaysToChargeToCurrent\
openWB:openWB/config/get/pv/lp/1/maxSocToChargeTo:.* lp_1_maxSocToChargeTo\
openWB:openWB/config/get/pv/lp/1/minCurrent:.* lp_1_minCurrent\
openWB:openWB/config/get/pv/lp/1/socLimitation:.* lp_1_socLimitation\
openWB:openWB/config/get/pv/lp/2/minCurrent:.* lp_2_minCurrent\
openWB:openWB/config/get/pv/lp/2/maxSoc:.* lp_2_maxSoc\
openWB:openWB/config/get/pv/lp/2/socLimitation:.* lp_2_socLimitation\
openWB:openWB/config/get/pv/socStopChargeAtMinPv:.* socStopChargeAtMinPv\
openWB:openWB/config/get/pv/regulationPoint:.* regulationPoint\
openWB:openWB/config/get/pv/minBatteryDischargeSocAtBattPriority:.* minBatteryDischargeSocAtBattPriority\
openWB:openWB/config/get/pv/minBatteryChargePowerAtEvPriority:.* minBatteryChargePowerAtEvPriority\
openWB:openWB/config/get/pv/minFeedinPowerBeforeStart:.* minFeedinPowerBeforeStart\
openWB:openWB/config/get/pv/boolAdaptiveCharging:.* boolAdaptiveCharging\
openWB:openWB/config/get/pv/adaptiveChargingFactor:.* adaptiveChargingFactor\
openWB:openWB/config/get/pv/batteryDischargePowerAtBattPriority:.* batteryDischargePowerAtBattPriority\
openWB:openWB/config/get/pv/boolShowPriorityIconInTheme:.* boolShowPriorityIconInTheme\
openWB:openWB/config/get/pv/maxPowerConsumptionBeforeStop:.* maxPowerConsumptionBeforeStop\
openWB:openWB/config/get/pv/stopDelay:.* stopDelay\
openWB:openWB/config/get/pv/chargeSubmode:.* chargeSubmode\
openWB:openWB/config/get/pv/minCurrentMinPv:.* minCurrentMinPv\
openWB:openWB/config/get/pv/socStartChargeAtMinPv:.* socStartChargeAtMinPv\
openWB:openWB/config/get/pv/startDelay:.* startDelay\
openWB:openWB/config/get/sofort/lp/5/energyToCharge:.* lp_5_energyToCharge\
openWB:openWB/config/get/sofort/lp/5/chargeLimitation:.* lp_5_chargeLimitation\
openWB:openWB/config/get/sofort/lp/5/current:.* lp_5_current\
openWB:openWB/config/get/sofort/lp/2/energyToCharge:.* lp_2_energyToCharge\
openWB:openWB/config/get/sofort/lp/2/chargeLimitation:.* lp_2_chargeLimitation\
openWB:openWB/config/get/sofort/lp/2/socToChargeTo:.* lp_2_socToChargeTo\
openWB:openWB/config/get/sofort/lp/2/current:.* lp_2_current\
openWB:openWB/config/get/sofort/lp/6/energyToCharge:.* lp_6_energyToCharge\
openWB:openWB/config/get/sofort/lp/6/chargeLimitation:.* lp_6_chargeLimitation\
openWB:openWB/config/get/sofort/lp/6/current:.* lp_6_current\
openWB:openWB/config/get/sofort/lp/8/chargeLimitation:.* lp_8_chargeLimitation\
openWB:openWB/config/get/sofort/lp/8/energyToCharge:.* lp_8_energyToCharge\
openWB:openWB/config/get/sofort/lp/8/current:.* lp_8_current\
openWB:openWB/config/get/sofort/lp/1/socToChargeTo:.* lp_1_socToChargeTo\
openWB:openWB/config/get/sofort/lp/1/energyToCharge:.* lp_1_energyToCharge\
openWB:openWB/config/get/sofort/lp/1/chargeLimitation:.* lp_1_chargeLimitation\
openWB:openWB/config/get/sofort/lp/1/current:.* lp_1_current\
openWB:openWB/config/get/sofort/lp/3/energyToCharge:.* lp_3_energyToCharge\
openWB:openWB/config/get/sofort/lp/3/chargeLimitation:.* lp_3_chargeLimitation\
openWB:openWB/config/get/sofort/lp/3/current:.* lp_3_current\
openWB:openWB/config/get/sofort/lp/7/chargeLimitation:.* lp_7_chargeLimitation\
openWB:openWB/config/get/sofort/lp/7/energyToCharge:.* lp_7_energyToCharge\
openWB:openWB/config/get/sofort/lp/7/current:.* lp_7_current\
openWB:openWB/config/get/sofort/lp/4/chargeLimitation:.* lp_4_chargeLimitation\
openWB:openWB/config/get/sofort/lp/4/energyToCharge:.* lp_4_energyToCharge\
openWB:openWB/config/get/sofort/lp/4/current:.* lp_4_current\
openWB:openWB/config/get/global/minEVSECurrentAllowed:.* minEVSECurrentAllowed\
openWB:openWB/config/get/global/maxEVSECurrentAllowed:.* maxEVSECurrentAllowed\
openWB:openWB/config/get/global/dataProtectionAcknoledged:.* dataProtectionAcknoledged\
openWB:openWB/config/get/global/slaveMode:.* slaveMode\
openWB:openWB/config/get/SmartHome/Devices/9/mode:.* Devices_9_mode\
openWB:openWB/config/get/SmartHome/Devices/9/device_configured:.* Devices_9_device_configured\
openWB:openWB/config/get/SmartHome/Devices/2/mode:.* Devices_2_mode\
openWB:openWB/config/get/SmartHome/Devices/2/device_configured:.* Devices_2_device_configured\
openWB:openWB/config/get/SmartHome/Devices/5/mode:.* Devices_5_mode\
openWB:openWB/config/get/SmartHome/Devices/5/device_configured:.* Devices_5_device_configured\
openWB:openWB/config/get/SmartHome/Devices/3/mode:.* Devices_3_mode\
openWB:openWB/config/get/SmartHome/Devices/3/device_configured:.* Devices_3_device_configured\
openWB:openWB/config/get/SmartHome/Devices/4/mode:.* Devices_4_mode\
openWB:openWB/config/get/SmartHome/Devices/4/device_configured:.* Devices_4_device_configured\
openWB:openWB/config/get/SmartHome/Devices/8/mode:.* Devices_8_mode\
openWB:openWB/config/get/SmartHome/Devices/8/device_configured:.* Devices_8_device_configured\
openWB:openWB/config/get/SmartHome/Devices/7/mode:.* Devices_7_mode\
openWB:openWB/config/get/SmartHome/Devices/7/device_configured:.* Devices_7_device_configured\
openWB:openWB/config/get/SmartHome/Devices/1/mode:.* Devices_1_mode\
openWB:openWB/config/get/SmartHome/Devices/1/device_configured:.* Devices_1_device_configured\
openWB:openWB/config/get/SmartHome/Devices/6/mode:.* Devices_6_mode\
openWB:openWB/config/get/SmartHome/Devices/6/device_configured:.* Devices_6_device_configured\
openWB:openWB/config/get/u1p3p/standbyPhases:.* standbyPhases\
openWB:openWB/config/get/u1p3p/sofortPhases:.* sofortPhases\
openWB:openWB/config/get/u1p3p/nachtPhases:.* nachtPhases\
openWB:openWB/config/get/u1p3p/minundpvPhases:.* minundpvPhases\
openWB:openWB/config/get/u1p3p/nurpvPhases:.* nurpvPhases\
openWB:openWB/config/get/u1p3p/isConfigured:.* isConfigured\
openWB:openWB/config/get/display/chartBatteryMinMax:.* chartBatteryMinMax\
openWB:openWB/config/get/display/chartLp/7/max:.* chartLp_7_max\
openWB:openWB/config/get/display/chartLp/5/max:.* chartLp_5_max\
openWB:openWB/config/get/display/chartLp/8/max:.* chartLp_8_max\
openWB:openWB/config/get/display/chartLp/3/max:.* chartLp_3_max\
openWB:openWB/config/get/display/chartLp/6/max:.* chartLp_6_max\
openWB:openWB/config/get/display/chartLp/1/max:.* chartLp_1_max\
openWB:openWB/config/get/display/chartLp/2/max:.* chartLp_2_max\
openWB:openWB/config/get/display/chartLp/4/max:.* chartLp_4_max\
openWB:openWB/config/get/display/showHouseConsumption:.* showHouseConsumption\
openWB:openWB/config/get/display/chartEvuMinMax:.* chartEvuMinMax\
openWB:openWB/config/get/display/chartHouseConsumptionMax:.* chartHouseConsumptionMax\
openWB:openWB/config/get/display/chartPvMax:.* chartPvMax\
openWB:openWB/Verbraucher/1/Name:.* Verbraucher_1_Name\
openWB:openWB/Verbraucher/1/Configured:.* Verbraucher_1_Configured\
openWB:openWB/Verbraucher/1/Watt:.* Verbraucher_1_Watt\
openWB:openWB/Verbraucher/1/WhImported:.* Verbraucher_1_WhImported\
openWB:openWB/Verbraucher/1/WhExported:.* Verbraucher_1_WhExported\
openWB:openWB/Verbraucher/1/DailyYieldImportkWh:.* Verbraucher_1_DailyYieldImportkWh\
openWB:openWB/Verbraucher/1/DailyYieldExportkWh:.* Verbraucher_1_DailyYieldExportkWh\
openWB:openWB/Verbraucher/2/Configured:.* Verbraucher_2_Configured\
openWB:openWB/Verbraucher/2/Name:.* Verbraucher_2_Name\
openWB:openWB/Verbraucher/2/WhImported:.* Verbraucher_2_WhImported\
openWB:openWB/Verbraucher/2/Watt:.* Verbraucher_2_Watt\
openWB:openWB/Verbraucher/2/WhExported:.* Verbraucher_2_WhExported\
openWB:openWB/Verbraucher/2/DailyYieldImportkWh:.* Verbraucher_2_DailyYieldImportkWh\
openWB:openWB/Verbraucher/2/DailyYieldExportkWh:.* Verbraucher_2_DailyYieldExportkWh\
openWB:openWB/boolChargeAtNight_standby:.* boolChargeAtNight_standby\
openWB:openWB/set/graph/RequestDayGraph:.* RequestDayGraph\
openWB:openWB/set/graph/RequestMonthGraph:.* RequestMonthGraph\
openWB:openWB/set/graph/RequestMonthLadelog:.* RequestMonthLadelog\
openWB:openWB/lp/2/W:.* lp_2_W\
openWB:openWB/SmartHome/Devices/1/TemperatureSensor0:.* Devices_1_TemperatureSensor0\
openWB:openWB/SmartHome/Devices/1/TemperatureSensor1:.* Devices_1_TemperatureSensor1\
openWB:openWB/SmartHome/Devices/1/TemperatureSensor2:.* Devices_1_TemperatureSensor2\
openWB:openWB/SmartHome/Devices/2/TemperatureSensor0:.* Devices_2_TemperatureSensor0\
openWB:openWB/SmartHome/Devices/2/TemperatureSensor1:.* Devices_2_TemperatureSensor1\
openWB:openWB/SmartHome/Devices/2/TemperatureSensor2:.* Devices_2_TemperatureSensor2\
openWB:openWB/global/awattar/pricelist:.* pricelist\
openWB:openWB/set/system/reloadDisplay:.* reloadDisplay\
openWB:openWB/set/system/topicSender:.* topicSender\
openWB:openWB/set/ChargeMode:.* ChargeMode\
openWB:openWB/ChargeStatus:.* ChargeStatus\
openWB:openWB/lp/2/\x25Soc:.* lp_2__Soc
FHEM auf Raspberry Pi 2B
2x eService 1WireHu, 7x DS1820, 2x Multisensoren Wiregate AMS 2.11 für Temperatur DS1820, relativer Luftfeuchte HIH4031, zwei IO-Ports DS2438, Analog-Eingang 0-10 V (bzw. 0-20 mA) DS2413
FritzDECT; HUE; 5xFibaro RollerShutter, Rauchmelder

Beta-User

Doku ist hier zu finden: https://openwb.de/forum/viewtopic.php?t=577. Da ist auch zu finden, welche schreibbaren Topics vorhanden sind.

openWB bringt wohl einen eigenen MQTT-Server mit, man kann aber anscheinend zusätzlich auch einen weiteren angeben.

Generell scheinen alle Wallboxen wohl "gesprächig" zu sein - hier jetzt halt mal in der Variante mit vielen Topics. Es wäre interessant zu wissen, was auf welchem Topic wie häufig aktualisiert wird, aber da du das TYPE=autocreate-Gerät wohl ausgeschaltet hast, wird da auch nichts automatisch angelegt.
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

kjmEjfu

also ich habe hier https://forum.fhem.de/index.php/topic,94494.msg1146078.html#msg1146078 einen Entwurf für ein Template gepostet.

Den MQTT2-Client habe ich ziemlich unproblematisch angelegt:

defmod openWB_Client MQTT2_CLIENT 192.168.178.101:1883
attr openWB_Client autocreate simple
attr openWB_Client room MQTT


Vielleicht hilft dir das?
Migriere derzeit zu Home Assistant

ch.eick

Hallo zusammen,
ich habe nun die openWB dank Eurer Vorarbeit mit MQTT2 und autocreate an FHEM angebunden. Mein Gott, quatscht die Box viel Zeugs ;-)

Hat daraus nun bereits jemand ein ansprechendes Device gebaut, mit dem man die gängigsten Dinge sehen und setzen kann?
Z.B. ein stateFormat oder ein schönes DOIF mit uiTable drum herum?

Könnte ich alle anderen Informationen einfach entfernen und gar nicht erst einlesen?
Der Hintergrung ist, dass ich ja bereits die WRs und alles drum herum integriert habe und nun kommen die Ganzen Daten nochmal von der openWB.

Für mich ist das Fahrzeug an der WB ja nur ein weiterer Großverbraucher, mit etwas mehr Inteligenz drum herum.

Mein Ziel ist es einfach nur die Ladeleistung zu lesen und später dann auch noch vorgaben zu ändern, die z.B. vom Kalender abhängen.
Mit der Kia e-Niro Anbindung hoffe ich dann die Standheizung und Klimatisierung nutzen zu können, aber das ist ja nicht Sache der WB.

VG
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

ZitatKönnte ich alle anderen Informationen einfach entfernen und gar nicht erst einlesen?

Klar. Da wir es hier mit MQTT2_CLIENT als IO zu tun haben, vermutlich aber nur so, dass du die "unerwünschten" Topics aktiv ausschaltest, z.B. indem du an eine leere Perl-Funktion übergibst. Das ganze kann man dann mit regex in der readingList kombinieren, um die Zahl der Zeilen etwas übersichtlicher zu halten. Beispiel (auszugsweise):

attr MQTT2_openWB readingList openWB:openWB/lp/1/VPhase1:.* lp_1_VPhase1\
openWB/set/.*:.* {}\
openWB/housebattery/fault.*:.* {}\
[...]
openWB/pv/DailyYieldKwh:.* DailyYieldKwh\
[...]


Alternativ (da der CLIENT ja nur für die Box genutzt wird): autocreate (Attribut) am Device und am IO ausschalten, wenn alles da ist, was man haben will und den Rest löschen.
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

ch.eick

Zitat von: Beta-User am 18 Oktober 2021, 12:12:53
Klar. Da wir es hier mit MQTT2_CLIENT als IO zu tun haben, vermutlich aber nur so, dass du die "unerwünschten" Topics aktiv ausschaltest, z.B. indem du an eine leere Perl-Funktion übergibst. Das ganze kann man dann mit regex in der readingList kombinieren, um die Zahl der Zeilen etwas übersichtlicher zu halten. Beispiel (auszugsweise):

attr MQTT2_openWB readingList openWB:openWB/lp/1/VPhase1:.* lp_1_VPhase1\
openWB/set/.*:.* {}\
openWB/housebattery/fault.*:.* {}\
[...]
openWB/pv/DailyYieldKwh:.* DailyYieldKwh\
[...]


Alternativ (da der CLIENT ja nur für die Box genutzt wird): autocreate (Attribut) am Device und am IO ausschalten, wenn alles da ist, was man haben will und den Rest löschen.
Okay, so hatte ich mir das auch schon vorgestellt.

Und noch eins,

durch das autocreate wurde das Device automatisch als MQTT2_WB_1_MQTT2 angelegt, kann ich den Namen noch beeinflussen?
Eventuell, wenn ich die readingList bereinigt  habe ein neues Device mit meinem Namen erzeugen und das alte dann löschen?

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

rudolfkoenig

ZitatDa wir es hier mit MQTT2_CLIENT als IO zu tun haben, vermutlich aber nur so, dass du die "unerwünschten" Topics aktiv ausschaltest, [...]
Alternativ setzt man subscriptions auf die gewuenschten Topics.

Beta-User

#12
Hmm, mir wäre kein Hinderungsgrund bekannt, warum man nicht - wie sonst auch - einfach "rename x y" verwenden dürfte - das zieht ggf. FileLog-Definitionen auch gleich noch mit um...

Aber selbstredend geht es auch, eine Kopie zu erstellen, genauso ist es zulässig, die automatisch erstellten Reading-Namen zu ändern:
openWB/pv/DailyYieldKwh:.* myNiceReadingName\

Falls es da einen minimierten Vorschlag gibt, der zu euren allgemeinen Darstellungen paßt, nehme ich das gerne in die attrTemplate-Liste auf...
(und packe da ggf. auch direkt den Vorschlag von Rudi mit rein, mit einem reduzierten Satz subscriptions zu arbeiten.)
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

ch.eick

Zitat von: Beta-User am 18 Oktober 2021, 12:27:02
Hmm, mFalls es da einen minimierten Vorschlag gibt, der zu euren allgemeinen Darstellungen paßt, nehme ich das gerne in die attrTemplate-Liste auf...
(und packe da ggf. auch direkt den Vorschlag von Rudi mit rein, mit einem reduzierten Satz subscriptions zu arbeiten.)
Da könnte ich mich nur alsAnwender hinten dran hängen, da ich momentan null Kenntnisse darüber habe.

Einige Werte kann man ja wohl auch setzen, gibt es dazu bereits eine Device Definition? Das würde die restlichen offenen Fragen zur openWB noch ergänzen.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

Zitat von: ch.eick am 18 Oktober 2021, 12:50:18
Da könnte ich mich nur alsAnwender hinten dran hängen, da ich momentan null Kenntnisse darüber habe.
Benötigt wird eigentlich nur ein "gutes" Device als RAW (bzw. ggf. dann noch ein gut konfiguriertes MQTT2_CLIENT-IO).

ZitatEinige Werte kann man ja wohl auch setzen, gibt es dazu bereits eine Device Definition? Das würde die restlichen offenen Fragen zur openWB noch ergänzen.
setList- (und ggf. getList-) Einträge können wir gerne ergänzen. Wenn du Infos über Topic und Payload lieferst, können wir das (exemplarisch) mal durchexerzieren, ist nicht schwer...
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

ch.eick

#15
Zitat von: Beta-User am 18 Oktober 2021, 12:55:00
Benötigt wird eigentlich nur ein "gutes" Device als RAW (bzw. ggf. dann noch ein gut konfiguriertes MQTT2_CLIENT-IO).
setList- (und ggf. getList-) Einträge können wir gerne ergänzen. Wenn du Infos über Topic und Payload lieferst, können wir das (exemplarisch) mal durchexerzieren, ist nicht schwer...
Solange sich kein weiterer Anwender mit seinem Device hier outed werde ich natürlich mein Device weiter einrichten und es hier dann vorstellen. Das Auto kommt am Freitag und dann geht es weiter :-)
Mir schwegt da etwas mit FHEMWEB Oberfläche vor. Ich habe auch bereits zwei Ladepunkte, wobei der zweite ohne Display ist und ein späterer Verwender ja auch sein Ladeprogramm wählen können muss. Schauen wir mal, was da so alles noch an Ideen kommt.

Vielen Dank Euch beiden erstmal
     Christian

EDIT: Ich habe jetzt zuerst mal alles was augenscheinlich bei mir nicht vorkommt aus dem readingList entfernt.


:openWB/graph                                    das scheinen Werte für die Steuerung zum Zeichnen von Graphen zu sein
:openWB/system/[Day|Month]GraphData
:openWB/set/graph


:openWB/lp größer 2                              da ich nur zwei Ladepunkete habe
:openWB/config/get/sofort/lp größer 2

:openWB/SmartHome                                da meine WB keine SmartHome Steuerung machen soll
:openWB/config/get/SmartHome

und siehe da, Ruhe is :-) :-)

Was mir dabei natürlich schon aufgefallen ist, das man die openWB natürlich als Zentrale für sein PV-Management einsetzen kann. Die Box unterstützt ja bereits viele Konstellationen von Energiemanagern, Wechselrichten und Speichern. Sollte man da noch nichts selber im FHEM gebaut haben, kann man die openWB alles schön aufbereiten lassen und dann nur die WB abfragen. Somit spart man sich das Auslesen mehrerer einzelner Geräte und bekommt alles über einen Kanal mit MQTT2 geliefert.
Bei mir siehr es natürlich anders aus, da schon 2 Jahre PV-Monitoring vorhanden sind und auch eine Speichersteuerung über die openWB sicherlich nicht gehen wird.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kjmEjfu

Zitat von: Beta-User am 18 Oktober 2021, 12:55:00
Benötigt wird eigentlich nur ein "gutes" Device als RAW (bzw. ggf. dann noch ein gut konfiguriertes MQTT2_CLIENT-IO).
setList- (und ggf. getList-) Einträge können wir gerne ergänzen. Wenn du Infos über Topic und Payload lieferst, können wir das (exemplarisch) mal durchexerzieren, ist nicht schwer...

Naja, ich hatte ja schon mal einen Entwurf bereit gestellt: https://forum.fhem.de/index.php/topic,94494.msg1146078.html#msg1146078

Zitat von: ch.eick am 18 Oktober 2021, 13:11:05
Was mir dabei natürlich schon aufgefallen ist, das man die openWB natürlich als Zentrale für sein PV-Management einsetzen kann. Die Box unterstützt ja bereits viele Konstellationen von Energiemanagern, Wechselrichten und Speichern. Sollte man da noch nichts selber im FHEM gebaut haben, kann man die openWB alles schön aufbereiten lassen und dann nur die WB abfragen. Somit spart man sich das Auslesen mehrerer einzelner Geräte und bekommt alles über einen Kanal mit MQTT2 geliefert.

und das ist halt das "Problem" bei einem Template.
Einige werden die Wallbox nur als reine Wallbox nutzen und daher primär ein paar Daten auslesen und den Lademodus beeinflussen wollen.
Andere nutzen die vollen Möglichkeiten der openWB, haben dann dort die gesamte Optimierung des Eigenverbrauchs hinterlegt und möchten daher zusätzliche Infos sehen bzw. auch Übersteuerungsmöglichkeiten in FHEM nutzen.
Daher müsste man vermutlich eher in Richtung von zwei Templates denken.

Da openWB mittlerweile echt viele Optimierungen von Haus aus kann (zumindest mit der aktuellen Nightly und mit der 2.0er Software demnächst noch mehr/flexibler) werde ich das auch dorthin auslagern statt mir in FHEM was zu basteln. Das dies für ch.eick eher nicht der Weg ist, kann ich durchaus nachvollziehen, hat ja schon sehr viel Arbeit innerhalb von FHEM investiert.
Migriere derzeit zu Home Assistant

ch.eick

Zitat von: kjmEjfu am 19 Oktober 2021, 13:23:27
Naja, ich hatte ja schon mal einen Entwurf bereit gestellt: https://forum.fhem.de/index.php/topic,94494.msg1146078.html#msg1146078

und das ist halt das "Problem" bei einem Template.
Einige werden die Wallbox nur als reine Wallbox nutzen und daher primär ein paar Daten auslesen und den Lademodus beeinflussen wollen.
Andere nutzen die vollen Möglichkeiten der openWB, haben dann dort die gesamte Optimierung des Eigenverbrauchs hinterlegt und möchten daher zusätzliche Infos sehen bzw. auch Übersteuerungsmöglichkeiten in FHEM nutzen.
Daher müsste man vermutlich eher in Richtung von zwei Templates denken.

Da openWB mittlerweile echt viele Optimierungen von Haus aus kann (zumindest mit der aktuellen Nightly und mit der 2.0er Software demnächst noch mehr/flexibler) werde ich das auch dorthin auslagern statt mir in FHEM was zu basteln. Das dies für ch.eick eher nicht der Weg ist, kann ich durchaus nachvollziehen, hat ja schon sehr viel Arbeit innerhalb von FHEM investiert.
Hallo und danke für die Rückmeldung.

Ich denke auch, dass es zwei Templates werden sollte.
Eins wäre ein reiner Verbraucher und das zweite eine Zentrale für die PV-Anlage.

Generell bevorzuge ich natürlich fertige Geräte, die Aufgaben aus FHEM fern halten und dann auch autark laufen.
Somit möchte auch ich die openWB als Zentrale für das Fahrzeug einsetzen, wenn dies möglich ist. Leider kann ich die Möglichkeiten noch nicht abschätzen, ob ich z.B. Standheizung und Klimatisierung beim Kia e-Niro über die openWB ansteuern kann. Das vorgeben eines Ladeprogramms wird ja wohl möglich sein, so wie ich die MQTT Register gesehen habe.

Gibt es da schon eine FHEM Device Oberfläche, z.B. mit DOIF und uiTable?
Meine Frau wird warscheinlich nur den Stecker rein stecken und nicht an der Box in der Garage das gewünschte Ladeverhalten am Ladepunkt 1 oder 2 auswählen :-)

Wie ist da Eure Implementierung der openWB und was ist praktikabel?

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

Zitat von: kjmEjfu am 19 Oktober 2021, 13:23:27
Naja, ich hatte ja schon mal einen Entwurf bereit gestellt: https://forum.fhem.de/index.php/topic,94494.msg1146078.html#msg1146078
Sorry, hatte ich nicht mehr auf dem Schirm. Wäre vielleicht gut, wenn wir auf der Basis dann hier (?) weiterdiskutieren (s.u.).

Zitat
Daher müsste man vermutlich eher in Richtung von zwei Templates denken.
Entweder das, oder man macht die Auswahl (via "RADIO-Options") im Template/durch User-Wahl.
Wichtiger ist erst mal, (einigermaßen) "fertigen" Code zu haben.

Zitat
Da openWB mittlerweile echt viele Optimierungen von Haus aus kann (zumindest mit der aktuellen Nightly und mit der 2.0er Software demnächst noch mehr/flexibler) werde ich das auch dorthin auslagern statt mir in FHEM was zu basteln.
Zu dem ursprünglichen Vorschlag gab' ja ein paar Fragen/offene Punkte, was wohl auch der Grund war, warum ich das damals nicht einfach übernommen hatte. Gibt's denn zwischenzeitlich dazu sowas wie einen konsolidierten Zwischenstand (gerne auf "nightly"-Basis)?
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

kjmEjfu

Zitat von: ch.eick am 19 Oktober 2021, 13:33:48
Somit möchte auch ich die openWB als Zentrale für das Fahrzeug einsetzen, wenn dies möglich ist. Leider kann ich die Möglichkeiten noch nicht abschätzen, ob ich z.B. Standheizung und Klimatisierung beim Kia e-Niro über die openWB ansteuern kann. Das vorgeben eines Ladeprogramms wird ja wohl möglich sein, so wie ich die MQTT Register gesehen habe.

Soweit ich das gesehen habe, kann aktuell noch kein e-Auto per openWB "ferngesteuert" werden.
Man sieht es ja bei den SoC Modulen, da ist so viel Bewegungen drin. Auch weil die Hersteller dauernd was ändern und dann Lösungen nicht mehr funktionieren.

Allerdings scheint mir der aktuelle Fokus der openWB-Community tatsächlich die Optimierung des Eigenverbrauchs zu sein, deshalb viel Ausbau bei der Ansteuerung von Smarthome-Geräten und Heizungen. PV-Anlagen und Speicher sind ja schon länger gut unterstützt.
Komfortfunktionen fürs Auto scheinen derzeit nicht so nachgefragt. Wobei natürlich auch die ernsthafte Frage ist: wenn es eine gute App fürs Auto gibt, wieso sollte ich dann Standheizung/Klimatisierung per openWB einstellen?
Beispiel von meinem e-Up: die We Connect ID App startet innerhalb von 2-3 Sekunden und mit zwei Klicks starte ich die manuelle Klimatisierung. Schneller habe ich auch keine Weboberfläche offen (ob nun openWB oder FHEM). Und die morgendlichen festen Vorklimatisierungszeiten habe ich fest eingestellt, die ändern sich ja nicht (außer wegen Urlaub).

Zitat von: ch.eick am 19 Oktober 2021, 13:33:48
Gibt es da schon eine FHEM Device Oberfläche, z.B. mit DOIF und uiTable?
Meine Frau wird warscheinlich nur den Stecker rein stecken und nicht an der Box in der Garage das gewünschte Ladeverhalten am Ladepunkt 1 oder 2 auswählen :-)
Wie ist da Eure Implementierung der openWB und was ist praktikabel?

Aaaaaaaaaaaaaalso, aus meiner Sicht hat die openWB aktuell noch das Problem, dass sie nach Ladepunkten trennt und nicht nach Autos. Das heißt, du konfigurierst z.B. für den Ladepunkt 1 das SoC-Modul "Auto XXX". Für den Ladepunkt 2 dann das SoC-Modul "Auto ZZZ". Weil die "alte" Logik davon ausgeht, dass du immer mit dem gleichen Auto am gleichen Ladepunkt bist. Deshalb kann man das auch nicht per MQTT o.ä. einfach umstellen.
Mit der openWB 2.0 Software (auch Sommerupdate genannt) soll das flexibler werden.
Dementsprechend ist das bei mir auch aktuell so hinterlegt.
Dazu bin ich grundsätzlich im Lademodus "Min + PV". Das reicht bei uns für das tägliche Laden völlig aus.
Zusätzlich habe ich noch in der FlexUI einen Button verbaut, der die Lademodus auf "Sofort" wechseln kann (und natürlich wieder zurück zu "Min + PV"). Der ist bisher vielleicht 1x genutzt worden, weil es an der openWB (also am Gerät selber) viel schneller geht.

Somit also aktuelle, praktikable Lösung: immer der gleiche Lademodus bei hinterlegtem SoC-Modul. Vorklimatisierung fix im Auto (per App) programmiert. Und somit wird nur noch angesteckt, den Rest regelt die openWB. Morgens ist auf 80% geladen, egal ob die PV nun ausreichend gebracht hat oder nicht. Im letzteren Fall wird per "Nachtladen" halt der Hausstrom genommen.
Meine Frau ist zufrieden mit der Lösung, weil sie nichts mehr einstellen muss und automatisch optimal geladen wird.

Speicher haben wir keinen. Daher fehlt mir da die Erfahrung. Soll aber auch sehr gut integriert sein.
Migriere derzeit zu Home Assistant

kjmEjfu

#20
Zitat von: Beta-User am 19 Oktober 2021, 13:47:02
Zu dem ursprünglichen Vorschlag gab' ja ein paar Fragen/offene Punkte, was wohl auch der Grund war, warum ich das damals nicht einfach übernommen hatte. Gibt's denn zwischenzeitlich dazu sowas wie einen konsolidierten Zwischenstand (gerne auf "nightly"-Basis)?

Also eigentlich sollte ja immer Sommer ein großes Update auf openWB 2.0 rauskommen. Keine Ahnung wie bei denen Sommer definiert ist ;-) Aber bisher ist das noch nicht zu sehen. Soweit mir bekannt ist, ist auch noch keine Beta verfügbar.
Das ist insofern etwas unschön, weil davon ausgegangen wird, das mit openWB 2.0 auch die MQTT Topics verändert werden.

Deshalb hatte ich an der Stelle auch nichts mehr weiter gemacht.
Wenn aber jetzt natürlich mehr Leute die openWB im Einsatz haben, macht es trotzdem Sinn auch schon jetzt ein allgemeines Template zur Verfügung zu stellen. (Im Wiki wurde ja auch schon was hinterlegt https://wiki.fhem.de/wiki/OpenWB)

Mein aktuelles Device (bei 2 produktiven Ladepunkten) sieht so aus:

defmod openWB MQTT2_DEVICE openWB_Client
attr openWB IODev openWB_Client
attr openWB autocreate 0
attr openWB devicetopic openWB
attr openWB icon building_carport_socket
attr openWB readingList $DEVICETOPIC/global/WHouseConsumption:.* WHouseConsumption\
$DEVICETOPIC/global/WAllChargePoints:.* WAllChargePoints\
$DEVICETOPIC/global/ChargeMode:.* {my %h=(0=>'SofortLaden',1=>'MinPV',2=>'NurPV',3=>'Stop',4=>'Standby');; return {ChargeMode=>$h{$EVENT}}}\
\
$DEVICETOPIC/system/Date:.* Date\
$DEVICETOPIC/system/Timestamp:.* Timestamp\
$DEVICETOPIC/system/Uptime:.* Uptime\
$DEVICETOPIC/system/IpAddress:.* IPAddress\
$DEVICETOPIC/system/Version:.* Version\
$DEVICETOPIC/system/lastRfId lastRfID\
\
$DEVICETOPIC/evu/ASchieflast:.* ASchieflast\
$DEVICETOPIC/evu/Hz:.* Hz\
$DEVICETOPIC/evu/APhase1:.* APhase1\
$DEVICETOPIC/evu/APhase2:.* APhase2\
$DEVICETOPIC/evu/APhase3:.* APhase3\
$DEVICETOPIC/evu/PfPhase1:.* PfPhase1\
$DEVICETOPIC/evu/PfPhase2:.* PfPhase2\
$DEVICETOPIC/evu/PfPhase3:.* PfPhase3\
$DEVICETOPIC/evu/VPhase1:.* VPhase1\
$DEVICETOPIC/evu/VPhase2:.* VPhase2\
$DEVICETOPIC/evu/VPhase3:.* VPhase3\
$DEVICETOPIC/evu/WPhase1:.* WPhase1\
$DEVICETOPIC/evu/WPhase2:.* WPhase2\
$DEVICETOPIC/evu/WPhase3:.* WPhase3\
$DEVICETOPIC/evu/W:.* W_evu\
$DEVICETOPIC/evu/WhExported:.* WhExported\
\
$DEVICETOPIC/lp/1/P%Soc:.* lp_1_Pct_Soc\
$DEVICETOPIC/lp/1/%Soc:.* lp_1_current_Soc\
$DEVICETOPIC/lp/1/countPhasesInUse:.* lp_1_countPhasesInUse\
$DEVICETOPIC/lp/1/ChargePointEnabled:.* lp_1_ChargePointEnabled\
$DEVICETOPIC/lp/1/ChargeStatus:.* lp_1_ChargeStatus\
$DEVICETOPIC/lp/1/kWhChargedSincePlugged:.* lp_1_kWhChargedSincePlugged\
$DEVICETOPIC/lp/1/kWhActualCharged:.* lp_1_kWhActualCharged\
$DEVICETOPIC/lp/1/kWhCounter:.* lp_1_kWhCounter\
$DEVICETOPIC/lp/1/strChargePointName:.* lp_1_strChargePointName\
$DEVICETOPIC/lp/1/TimeRemaining:.* lp_1_TimeRemaining\
\
$DEVICETOPIC/lp/1/VPhase1:.* lp_1_VPhase1\
$DEVICETOPIC/lp/1/VPhase2:.* lp_1_VPhase2\
$DEVICETOPIC/lp/1/VPhase3:.* lp_1_VPhase3\
$DEVICETOPIC/lp/1/APhase1:.* lp_1_APhase1\
$DEVICETOPIC/lp/1/APhase2:.* lp_1_APhase2\
$DEVICETOPIC/lp/1/APhase3:.* lp_1_APhase3\
$DEVICETOPIC/lp/1/W:.* lp_1_W\
\
$DEVICETOPIC/lp/1/boolPlugStat:.* {my %h=(0=>'no Plug',1=>'Plugged in');; return {lp_1_PlugStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/1/boolChargeStat:.* {my %h=(0=>'not loading',1=>'loading');; return {lp_1_ChargeStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/1/AConfigured:.* lp_1_AConfigured\
\
$DEVICETOPIC/lp/2/P%Soc:.* lp_2_Pct_Soc\
$DEVICETOPIC/lp/2/%Soc:.* lp_2_current_Soc\
$DEVICETOPIC/lp/2/countPhasesInUse:.* lp_2_countPhasesInUse\
$DEVICETOPIC/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled\
$DEVICETOPIC/lp/2/ChargeStatus:.* lp_2_ChargeStatus\
$DEVICETOPIC/lp/2/kWhChargedSincePlugged:.* lp_2_kWhChargedSincePlugged\
$DEVICETOPIC/lp/2/kWhActualCharged:.* lp_2_kWhActualCharged\
$DEVICETOPIC/lp/2/kWhCounter:.* lp_2_kWhCounter\
$DEVICETOPIC/lp/2/strChargePointName:.* lp_2_strChargePointName\
$DEVICETOPIC/lp/2/TimeRemaining:.* lp_2_TimeRemaining\
\
$DEVICETOPIC/lp/2/VPhase1:.* lp_2_VPhase1\
$DEVICETOPIC/lp/2/VPhase2:.* lp_2_VPhase2\
$DEVICETOPIC/lp/2/VPhase3:.* lp_2_VPhase3\
$DEVICETOPIC/lp/2/APhase1:.* lp_2_APhase1\
$DEVICETOPIC/lp/2/APhase2:.* lp_2_APhase2\
$DEVICETOPIC/lp/2/APhase3:.* lp_2_APhase3\
$DEVICETOPIC/lp/2/W:.* lp_2_W\
\
$DEVICETOPIC/lp/2/boolPlugStat:.* {my %h=(0=>'no Plug',1=>'Plugged in');; return {lp_2_PlugStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/2/boolChargeStat:.* {my %h=(0=>'not loading',1=>'loading');; return {lp_2_ChargeStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/2/AConfigured:.* lp_2_AConfigured
attr openWB room 00_Autocreate
attr openWB setList Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');;qq($DEVICETOPIC/set/ChargeMode $h{$EVTPART1}) }\
DirectChargeSubMode:Aus,kWh_Laden,SoC_Laden { my %h=(Aus=>'0',kWh_Laden=>'1',SoC_Laden=>'2');;qq($DEVICETOPIC/set/lp1/DirectChargeSubMode $h{$EVTPART1}) }
attr openWB stateFormat Lademodus: ChargeMode | Ladestatus Lp1: lp_1_ChargeStatus | verbleibende Ladezeit Lp1: lp_1_TimeRemaining <br> Ladestatus Lp2: lp_2_ChargeStatus | verbleibende Ladezeit Lp2: lp_2_TimeRemaining


Ich habe also nur stumpf gemappt.
Allerdings habe ich auch Pfade wie graph, SmartHome, housebattery, pv, config, Verbraucher komplett ignoriert.
Migriere derzeit zu Home Assistant

ch.eick

Zitat von: kjmEjfu am 19 Oktober 2021, 14:13:22
Also eigentlich sollte ja immer Sommer ein großes Update auf openWB 2.0 rauskommen. Keine Ahnung wie bei denen Sommer definiert ist ;-) Aber bisher ist das noch nicht zu sehen. Soweit mir bekannt ist, ist auch noch keine Beta verfügbar.
Das ist insofern etwas unschön, weil davon ausgegangen wird, das mit openWB 2.0 auch die MQTT Topics verändert werden.

Deshalb hatte ich an der Stelle auch nichts mehr weiter gemacht.
Wenn aber jetzt natürlich mehr Leute die openWB im Einsatz haben, macht es trotzdem Sinn auch schon jetzt ein allgemeines Template zur Verfügung zu stellen. (Im Wiki wurde ja auch schon was hinterlegt https://wiki.fhem.de/wiki/OpenWB)

Mein aktuelles Device (bei 2 produktiven Ladepunkten) sieht so aus:


< snip >


Ich habe also nur stumpf gemappt.
Allerdings habe ich auch Pfade wie graph, SmartHome, housebattery, pv, config, Verbraucher komplett ignoriert.

Okay, super

Das wäre ja genau meine Konfiguration, ebenfalls mit zwei Ladepunkten.
Die Bereinigung hatte ich auch schon gemacht, jedoch auch evu ignoriert, da ich ja ein PV-Monitoring bereits habe.
Ob man I und U Werte wirklich braucht wäre auch noch zu überlegen, mir reicht da meistens P aus Sicht eines Verbraucher Templates.
Selbst die Leistung der unterschiedlichen Phasen ist später nicht mehr relevant, da der Elektriker (ich selber) ja schon eine geplante Verteilung verdrahtet hat.

Bei den Luxuseinstellungen per APP bin ich bei Dir. Wenn die WB das noch nicht kann ist es auch okay. Der SOC kann wohl bei KIA bereits abgefragt werden.
Für Kia gibt es wohl noch eine Kopplung zum UVO für FHEM. Mal schauen was das ist.

Ich übernehme dann mal Deine Mappings, dann wären wir erstmal syncron ;-)

VG
    Christian

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo nochmal,

ich habe jetzt die Devinition übernommen, jedoch hatte ich mein Problem mit dem $DEVICETOPIC
Bei mir stand in der readingList , was durch das autocreate erzeugt worden ist folgendes

WB_1_MQTT2:openWB/global/WHouseConsumption:.* WHouseConsumption

Und bei Euch war vorne ein $DEVICETOPIC , aber ohne das ":openWB"
Nun habe ich das $DEVICETOPIC wieder durch den fixen String ersetzt und die Werte werden wieder gelesen.
Wenn ich den Lademodus an der openWB verändere wird dies im Chargemode sofort angezeigt und in den Test gemapped.

Alledings geht das setList nun noch nicht und ich weiß nicht was ich bei dem qq() eintragen soll. Das folgende tuts aufcedenfall so nicht.

Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');qq({WB_1_MQTT2:openWB/set/Chargemode $h{$EVTPART1}}) }


VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

Du mußt eigentlich nur ein Attribut setzen:
attr openWB devicetopic openWB
Den "ClientID"-Präfix kannst/solltest du rausnehmen, in Senderichtung geht der gar nicht, und in Empfangsrichtung sollte man soweiso dafür sorgen, dass jedes Gerät seine eigenen Topic-Strukturen erhält (sonst macht das Sinn, aber nur dann...).
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

ch.eick

Zitat von: Beta-User am 19 Oktober 2021, 16:42:56
Du mußt eigentlich nur ein Attribut setzen:
attr openWB devicetopic openWB
Den "ClientID"-Präfix kannst/solltest du rausnehmen, in Senderichtung geht der gar nicht, und in Empfangsrichtung sollte man soweiso dafür sorgen, dass jedes Gerät seine eigenen Topic-Strukturen erhält (sonst macht das Sinn, aber nur dann...).
Leider kann ich den Begrifflichkeiten noch nicht folgen.

Das ist bereits gesetzt, aber ohne das ":openWB" hat es nicht funktioniert.

DEVICETOPIC WB_1_MQTT2


Was ist der ClientID-Präfix ?
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kjmEjfu

Zitat von: ch.eick am 19 Oktober 2021, 14:34:24
Die Bereinigung hatte ich auch schon gemacht, jedoch auch evu ignoriert, da ich ja ein PV-Monitoring bereits habe.
Ob man I und U Werte wirklich braucht wäre auch noch zu überlegen, mir reicht da meistens P aus Sicht eines Verbraucher Templates.
Selbst die Leistung der unterschiedlichen Phasen ist später nicht mehr relevant, da der Elektriker (ich selber) ja schon eine geplante Verteilung verdrahtet hat.

Ich habe die Werte nur mit aufgenommen, weil es halt ging :-)
Wäre sicherlich eine Überlegung die optional zu machen, z.B. wenn FHEM kein passendes Modul bietet oder das nicht genutzt werden kann (Multicast vs. Standard-Docker o.ä.)

Zitat von: ch.eick am 19 Oktober 2021, 14:34:24
Bei den Luxuseinstellungen per APP bin ich bei Dir. Wenn die WB das noch nicht kann ist es auch okay. Der SOC kann wohl bei KIA bereits abgefragt werden.
Für Kia gibt es wohl noch eine Kopplung zum UVO für FHEM. Mal schauen was das ist.

Bzgl. SoC gibt es tatsächlich ein eigenes Modul für KIA, das scheint aber aktuell (mal wieder) von KIA durch irgendeine Änderung gekillt worden zu sein.
Ich bin beim EVCC (https://openwb.de/forum/viewtopic.php?f=12&t=3134) gelandet. Kostet allerdings 2,- Euro im Monat.

Für den e-UP habe ich auch ein Modul, dass mir die Daten nach FHEM lädt, aber mir fällt da gerade die Fantasie für einen sinnvoll Einsatz ;-)
Den SoC kriege ich von der openWB über den Ladepunkt, mehr Infos brauche ich eigentlich nicht wirklich.

Zitat von: ch.eick am 19 Oktober 2021, 14:34:24
Ich übernehme dann mal Deine Mappings, dann wären wir erstmal syncron ;-)

Perfekt :-)
Migriere derzeit zu Home Assistant

kjmEjfu

#26
Zitat von: ch.eick am 19 Oktober 2021, 16:35:26

Alledings geht das setList nun noch nicht und ich weiß nicht was ich bei dem qq() eintragen soll. Das folgende tuts aufcedenfall so nicht.

Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');qq({WB_1_MQTT2:openWB/set/Chargemode $h{$EVTPART1}}) }



Hab gerade einen Fehler drin gefunden. Änder mal in:

Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');qq($DEVICETOPIC/set/ChargeMode $h{$EVTPART1}) }
DirectChargeSubMode:Aus,kWh_Laden,SoC_Laden { my %h=(Aus=>'0',kWh_Laden=>'1',SoC_Laden=>'2');qq($DEVICETOPIC/set/lp1/DirectChargeSubMode $h{$EVTPART1}) }


Das attr "devicetopic" nutze ich, weil dann setList und readingList unabhängig davon sind unter welchem Pfad das ganze hängt.
Könnte ja auch sein, dass jemand nicht direkt auf die openWB geht, sondern von der openWB auf einen zentralen MQTT-Server überträgt und den dann abfragt.


Weitere Optionen für Ladeeinstellungen kann man hier finden: https://openwb.de/forum/viewtopic.php?p=23486#p23486
Allerdings:

openWB/config/set/pv/priorityModeEVBattery
Sub-Modus für Priorität beim PV-Laden: 0 = Haus-Akku, 1 = Auto


habe ich keine Notwendigkeit für gesehen. Sollte meiner Meinung nach in openWB konfiguriert werden, weil da eventuell noch andere Dinge dran hängen.

openWB/config/set/sofort/lp/1/energyToCharge
Anzahl kWh im Sofortladen-Modus "Energiemenge": ganzzahlige kWh


gilt dann, wenn man der DirectChargeSubMode auf kWh_Laden gesetzt wird und auch als Lademodus SofortLaden gewählt wird.

openWB/config/set/sofort/lp/1/socToChargeTo
Ziel-Soc im Sofortladen-Modus "EV-SoC"


quasi wie oben, nur mit SoC_Laden statt kWh_Laden.

Per Default nimmt die openWB aber, wenn man z.B. auf "SofortLaden" umstellt, den zuletzt gewählten SubMode mit der entsprechenden Einstellungen. Wenn das also "SoC_Laden" mit "80"% war, wird das wieder genutzt.
Deshalb hatte ich bisher keinen UseCase von FHEM aus. Aber könnte man natürlich noch einbauen, kA ob man dann den Wertebereich validieren müsste.
Migriere derzeit zu Home Assistant

Beta-User

Zitat von: ch.eick am 19 Oktober 2021, 16:56:40
Leider kann ich den Begrifflichkeiten noch nicht folgen.
Ich habe anders herum das Problem, dass ich kein aktuelles RAW habe und daher manchmal raten muss. Wenn der Device-Name nach der Umbenennung jetzt "WB_1_MQTT2" ist:

attr WB_1_MQTT2 devicetopic openWBDamit ist die Variable $DEVICETOPIC in den .*List-Attributen verfügbar und hat den Wert "openWB".

Zitat
Das ist bereits gesetzt, aber ohne das ":openWB" hat es nicht funktioniert.

DEVICETOPIC WB_1_MQTT2

Das ist wohl falsch, weil du (?) nicht den (in der Box vermutlich konfigurierbaren) "Basis-Topic" angegeben hast, sondern den (FHEM-) Device-Namen

Zitat
Was ist der ClientID-Präfix ?
Das, was in der readingList jeweils vor dem ersten Doppelpunkt zu finden war. Das sollte raus, und zwar samt des Trenners ( :) .

Zu "sollte": Wenn man das an diesen beiden Stellen so macht, ist die einzige anzupassende Angabe dann im Attribut "devicetopic", und man kann das beliebig zwischen Installationen verschieben, ganz egal, ob MQTT2_SERVER oder MQTT2_CLIENT im Einsatz ist oder eben dieser "Basis-Topic" geändert wurde.

Zitat von: kjmEjfu am 19 Oktober 2021, 17:05:49
Könnte ja auch sein, dass jemand nicht direkt auf die openWB geht, sondern von der openWB auf einen zentralen MQTT-Server überträgt und den dann abfragt.
Das ist mißverständlich: das betrifft die Frage der ClientID, nicht $DEVICETOPIC, s.o.
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

ch.eick

#28
Zitat
Bzgl. SoC gibt es tatsächlich ein eigenes Modul für KIA, das scheint aber aktuell (mal wieder) von KIA durch irgendeine Änderung gekillt worden zu sein.
Ich bin beim EVCC (https://openwb.de/forum/viewtopic.php?f=12&t=3134) gelandet. Kostet allerdings 2,- Euro im Monat.

Für den e-UP habe ich auch ein Modul, dass mir die Daten nach FHEM lädt, aber mir fällt da gerade die Fantasie für einen sinnvoll Einsatz ;-)
Den SoC kriege ich von der openWB über den Ladepunkt, mehr Infos brauche ich eigentlich nicht wirklich.
Das schau ich mir mal alles an, ich bin halt momentan etwas früh dran mit meinen Aktivitäten.

Das mit dem $DEVICETOPIC habe ich jetzt wieder als Variable drin, aber ohne das ":openWB" geht es nicht beim Lesen.
Das setList klappt auch nicht.

Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');qq({$DEVICETOPIC/set/Chargemode $h{$EVTPART1}}) }
DirectChargeSubMode:Aus,kWh_Laden,SoC_Laden { my %h=(Aus=>'0',kWh_Laden=>'1',SoC_Laden=>'2');qq({$DEVICETOPIC/set/lp1/DirectChargeSubMode $h{$EVTPART1}}) }


Hast Du da noch eine Idee?
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

#29
So Ihr zwei,
an der Funktionalität hat sich leider nichts geändert. Ich kann lesen, aber das setList geht nicht zur openWB.

Hier mal das RAW, oder möchtet Ihr lieber ein List

defmod WB_1 MQTT2_DEVICE WB_1_MQTT2
attr WB_1 DbLogExclude .*
attr WB_1 IODev WB_1_MQTT2
attr WB_1 alias WB_1
attr WB_1 autocreate 0
attr WB_1 comment Die openWB besteht aus zwei Ladepunkten.
attr WB_1 devicetopic openWB
attr WB_1 group PV Eigenverbrauch
attr WB_1 icon fuel
attr WB_1 readingList $DEVICETOPIC/global/WHouseConsumption:.* WHouseConsumption\
$DEVICETOPIC/global/WAllChargePoints:.* WAllChargePoints\
$DEVICETOPIC/global/ChargeMode:.* {my %h=(0=>'SofortLaden',1=>'MinPV',2=>'NurPV',3=>'Stop',4=>'Standby');; return {ChargeMode=>$h{$EVENT}}}\
\
$DEVICETOPIC/global/awattar/boolAwattarEnabled:.* boolAwattarEnabled\
$DEVICETOPIC/global/awattar/ActualPriceForCharging:.* ActualPriceForCharging\
$DEVICETOPIC/global/awattar/MaxPriceForCharging:.* MaxPriceForCharging\
$DEVICETOPIC/global/boolRse:.* boolRse\
$DEVICETOPIC/global/DailyYieldAllChargePointsKwh:.* DailyYieldAllChargePointsKwh\
$DEVICETOPIC/global/rfidConfigured:.* rfidConfigured\
$DEVICETOPIC/global/kWhCounterAllChargePoints:.* kWhCounterAllChargePoints\
$DEVICETOPIC/global/strLastmanagementActive:.* strLastmanagementActive\
$DEVICETOPIC/global/ETProvider/modulePath:.* modulePath\
$DEVICETOPIC/global/cpuTemp:.* cpuTemp\
\
$DEVICETOPIC/system/Uptime:.* Uptime\
$DEVICETOPIC/system/Date:.* Date\
$DEVICETOPIC/system/Timestamp:.* Timestamp\
$DEVICETOPIC/system/Version:.* Version\
$DEVICETOPIC/system/IpAddress:.* IpAddress\
$DEVICETOPIC/system/lastRfId:.* lastRfId\
$DEVICETOPIC/system/updateInProgress:.* updateInProgress\
$DEVICETOPIC/system/ConfiguredChargePoints:.* ConfiguredChargePoints\
$DEVICETOPIC/system/lastlivevalues:.* lastlivevalues\
$DEVICETOPIC/system/randomSleep:.* randomSleep\
$DEVICETOPIC/system/wizzardDone:.* wizzardDone\
$DEVICETOPIC/system/priceForKWh:.* priceForKWh\
$DEVICETOPIC/system/reloadDisplay:.* reloadDisplay\
\
$DEVICETOPIC/evu/ASchieflast:.* ASchieflast\
\
$DEVICETOPIC/lp/1/P%Soc:.* lp_1_Pct_Soc\
$DEVICETOPIC/lp/1/%Soc:.* lp_1_current_Soc\
$DEVICETOPIC/lp/1/\x25Soc:.* lp_1__Soc\
\
$DEVICETOPIC/lp/1/countPhasesInUse:.* lp_1_countPhasesInUse\
$DEVICETOPIC/lp/1/ChargePointEnabled:.* lp_1_ChargePointEnabled\
$DEVICETOPIC/lp/1/ChargeStatus:.* lp_1_ChargeStatus\
\
$DEVICETOPIC/lp/1/kWhDailyCharged:.* lp_1_kWhDailyCharged\
$DEVICETOPIC/lp/1/kWhCounter:.* lp_1_kWhCounter\
$DEVICETOPIC/lp/1/kWhActualCharged:.* lp_1_kWhActualCharged\
$DEVICETOPIC/lp/1/kWhChargedSincePlugged:.* lp_1_kWhChargedSincePlugged\
$DEVICETOPIC/lp/1/energyConsumptionPer100km:.* lp_1_energyConsumptionPer100km\
$DEVICETOPIC/lp/1/kmCharged:.* lp_1_kmCharged\
\
$DEVICETOPIC/lp/1/strChargePointName:.* lp_1_strChargePointName\
$DEVICETOPIC/lp/1/TimeRemaining:.* lp_1_TimeRemaining\
\
$DEVICETOPIC/lp/1/VPhase1:.* lp_1_VPhase1\
$DEVICETOPIC/lp/1/VPhase2:.* lp_1_VPhase2\
$DEVICETOPIC/lp/1/VPhase3:.* lp_1_VPhase3\
$DEVICETOPIC/lp/1/APhase1:.* lp_1_APhase1\
$DEVICETOPIC/lp/1/APhase2:.* lp_1_APhase2\
$DEVICETOPIC/lp/1/APhase3:.* lp_1_APhase3\
$DEVICETOPIC/lp/1/PfPhase2:.* lp_1_PfPhase2\
$DEVICETOPIC/lp/1/PfPhase3:.* lp_1_PfPhase3\
$DEVICETOPIC/lp/1/PfPhase1:.* lp_1_PfPhase1\
$DEVICETOPIC/lp/1/W:.* lp_1_W\
\
$DEVICETOPIC/lp/1/boolPlugStat:.* {my %h=(0=>'no Plug',1=>'Plugged in');; return {lp_1_PlugStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/1/boolChargeStat:.* {my %h=(0=>'not loading',1=>'loading');; return {lp_1_ChargeStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/1/AConfigured:.* lp_1_AConfigured\
\
$DEVICETOPIC/lp/1/boolChargePointConfigured:.* lp_1_boolChargePointConfigured\
$DEVICETOPIC/lp/1/boolSocConfigured:.* lp_1_boolSocConfigured\
$DEVICETOPIC/lp/1/boolDirectModeChargekWh:.* lp_1_boolDirectModeChargekWh\
$DEVICETOPIC/lp/1/boolDirectChargeModeSoc:.* lp_1_boolDirectChargeModeSoc\
$DEVICETOPIC/lp/1/boolFinishAtTimeChargeActive:.* lp_1_boolFinishAtTimeChargeActive\
$DEVICETOPIC/lp/1/boolChargeAtNight:.* lp_1_boolChargeAtNight\
$DEVICETOPIC/lp/1/boolSocManual:.* lp_1_boolSocManual\
\
$DEVICETOPIC/lp/1/AutolockStatus:.* lp_1_AutolockStatus\
$DEVICETOPIC/lp/1/AutolockConfigured:.* lp_1_AutolockConfigured\
\
$DEVICETOPIC/lp/1/lastRfId:.* lp_1_lastRfId\
$DEVICETOPIC/lp/1/pluggedladungakt:.* lp_1_pluggedladungakt\
$DEVICETOPIC/lp/1/plugStartkWh:.* lp_1_plugStartkWh\
$DEVICETOPIC/lp/1/MeterSerialNumber:.* lp_1_MeterSerialNumber\
\
\
$DEVICETOPIC/lp/2/P%Soc:.* lp_2_Pct_Soc\
$DEVICETOPIC/lp/2/%Soc:.* lp_2_current_Soc\
$DEVICETOPIC/lp/2/\x25Soc:.* lp_2__Soc\
\
$DEVICETOPIC/lp/2/countPhasesInUse:.* lp_2_countPhasesInUse\
$DEVICETOPIC/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled\
$DEVICETOPIC/lp/2/ChargeStatus:.* lp_2_ChargeStatus\
\
$DEVICETOPIC/lp/2/kWhDailyCharged:.* lp_2_kWhDailyCharged\
$DEVICETOPIC/lp/2/kWhCounter:.* lp_2_kWhCounter\
$DEVICETOPIC/lp/2/kWhActualCharged:.* lp_2_kWhActualCharged\
$DEVICETOPIC/lp/2/kWhChargedSincePlugged:.* lp_2_kWhChargedSincePlugged\
$DEVICETOPIC/lp/2/energyConsumptionPer100km:.* lp_2_energyConsumptionPer100km\
$DEVICETOPIC/lp/2/kmCharged:.* lp_2_kmCharged\
\
$DEVICETOPIC/lp/2/strChargePointName:.* lp_2_strChargePointName\
$DEVICETOPIC/lp/2/TimeRemaining:.* lp_2_TimeRemaining\
\
$DEVICETOPIC/lp/2/VPhase1:.* lp_2_VPhase1\
$DEVICETOPIC/lp/2/VPhase2:.* lp_2_VPhase2\
$DEVICETOPIC/lp/2/VPhase3:.* lp_2_VPhase3\
$DEVICETOPIC/lp/2/APhase1:.* lp_2_APhase1\
$DEVICETOPIC/lp/2/APhase2:.* lp_2_APhase2\
$DEVICETOPIC/lp/2/APhase3:.* lp_2_APhase3\
$DEVICETOPIC/lp/2/PfPhase2:.* lp_2_PfPhase2\
$DEVICETOPIC/lp/2/PfPhase3:.* lp_2_PfPhase3\
$DEVICETOPIC/lp/2/PfPhase1:.* lp_2_PfPhase1\
$DEVICETOPIC/lp/2/W:.* lp_2_W\
\
$DEVICETOPIC/lp/2/boolPlugStat:.* {my %h=(0=>'no Plug',1=>'Plugged in');; return {lp_2_PlugStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/2/boolChargeStat:.* {my %h=(0=>'not loading',1=>'loading');; return {lp_2_ChargeStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/2/AConfigured:.* lp_2_AConfigured\
\
$DEVICETOPIC/lp/2/boolChargePointConfigured:.* lp_2_boolChargePointConfigured\
$DEVICETOPIC/lp/2/boolSocConfigured:.* lp_2_boolSocConfigured\
$DEVICETOPIC/lp/2/boolDirectModeChargekWh:.* lp_2_boolDirectModeChargekWh\
$DEVICETOPIC/lp/2/boolDirectChargeModeSoc:.* lp_2_boolDirectChargeModeSoc\
$DEVICETOPIC/lp/2/boolFinishAtTimeChargeActive:.* lp_2_boolFinishAtTimeChargeActive\
$DEVICETOPIC/lp/2/boolChargeAtNight:.* lp_2_boolChargeAtNight\
$DEVICETOPIC/lp/2/boolSocManual:.* lp_2_boolSocManual\
\
$DEVICETOPIC/lp/2/AutolockStatus:.* lp_2_AutolockStatus\
$DEVICETOPIC/lp/2/AutolockConfigured:.* lp_2_AutolockConfigured\
\
$DEVICETOPIC/lp/2/lastRfId:.* lp_2_lastRfId\
$DEVICETOPIC/lp/2/pluggedladungakt:.* lp_2_pluggedladungakt\
$DEVICETOPIC/lp/2/plugStartkWh:.* lp_2_plugStartkWh\
$DEVICETOPIC/lp/2/MeterSerialNumber:.* lp_2_MeterSerialNumber\
\
\
$DEVICETOPIC/boolChargeAtNight_direct:.* boolChargeAtNight_direct\
$DEVICETOPIC/boolChargeAtNight_nurpv:.* boolChargeAtNight_nurpv\
$DEVICETOPIC/boolChargeAtNight_minpv:.* boolChargeAtNight_minpv\
$DEVICETOPIC/boolDisplayHouseConsumption:.* boolDisplayHouseConsumption\
$DEVICETOPIC/boolDisplayDailyCharged:.* boolDisplayDailyCharged\
$DEVICETOPIC/boolEvuSmoothedActive:.* boolEvuSmoothedActive\
$DEVICETOPIC/pv/bool70PVDynActive:.* bool70PVDynActive\
$DEVICETOPIC/pv/W70PVDyn:.* W70PVDyn\
$DEVICETOPIC/pv/bool70PVDynStatus:.* bool70PVDynStatus\
$DEVICETOPIC/pv/CounterTillStartPvCharging:.* CounterTillStartPvCharging\
$DEVICETOPIC/pv/W:.* W\
$DEVICETOPIC/config/get/pv/nurpv70dynact:.* nurpv70dynact\
$DEVICETOPIC/config/get/pv/nurpv70dynw:.* nurpv70dynw\
$DEVICETOPIC/config/get/pv/priorityModeEVBattery:.* priorityModeEVBattery\
$DEVICETOPIC/config/get/pv/lp/1/minSocAlwaysToChargeTo:.* lp_1_minSocAlwaysToChargeTo\
$DEVICETOPIC/config/get/pv/lp/1/maxSoc:.* lp_1_maxSoc\
$DEVICETOPIC/config/get/pv/lp/1/minSocAlwaysToChargeToCurrent:.* lp_1_minSocAlwaysToChargeToCurrent\
$DEVICETOPIC/config/get/pv/lp/1/maxSocToChargeTo:.* lp_1_maxSocToChargeTo\
$DEVICETOPIC/config/get/pv/lp/1/minCurrent:.* lp_1_minCurrent\
$DEVICETOPIC/config/get/pv/lp/1/socLimitation:.* lp_1_socLimitation\
$DEVICETOPIC/config/get/pv/lp/2/minCurrent:.* lp_2_minCurrent\
$DEVICETOPIC/config/get/pv/lp/2/maxSoc:.* lp_2_maxSoc\
$DEVICETOPIC/config/get/pv/lp/2/socLimitation:.* lp_2_socLimitation\
$DEVICETOPIC/config/get/pv/socStopChargeAtMinPv:.* socStopChargeAtMinPv\
$DEVICETOPIC/config/get/pv/regulationPoint:.* regulationPoint\
$DEVICETOPIC/config/get/pv/minBatteryDischargeSocAtBattPriority:.* minBatteryDischargeSocAtBattPriority\
$DEVICETOPIC/config/get/pv/minBatteryChargePowerAtEvPriority:.* minBatteryChargePowerAtEvPriority\
$DEVICETOPIC/config/get/pv/minFeedinPowerBeforeStart:.* minFeedinPowerBeforeStart\
$DEVICETOPIC/config/get/pv/boolAdaptiveCharging:.* boolAdaptiveCharging\
$DEVICETOPIC/config/get/pv/adaptiveChargingFactor:.* adaptiveChargingFactor\
$DEVICETOPIC/config/get/pv/batteryDischargePowerAtBattPriority:.* batteryDischargePowerAtBattPriority\
$DEVICETOPIC/config/get/pv/boolShowPriorityIconInTheme:.* boolShowPriorityIconInTheme\
$DEVICETOPIC/config/get/pv/maxPowerConsumptionBeforeStop:.* maxPowerConsumptionBeforeStop\
$DEVICETOPIC/config/get/pv/stopDelay:.* stopDelay\
$DEVICETOPIC/config/get/pv/chargeSubmode:.* chargeSubmode\
$DEVICETOPIC/config/get/pv/minCurrentMinPv:.* minCurrentMinPv\
$DEVICETOPIC/config/get/pv/socStartChargeAtMinPv:.* socStartChargeAtMinPv\
$DEVICETOPIC/config/get/pv/startDelay:.* startDelay\
$DEVICETOPIC/config/get/sofort/lp/2/energyToCharge:.* lp_2_energyToCharge\
$DEVICETOPIC/config/get/sofort/lp/2/chargeLimitation:.* lp_2_chargeLimitation\
$DEVICETOPIC/config/get/sofort/lp/2/socToChargeTo:.* lp_2_socToChargeTo\
$DEVICETOPIC/config/get/sofort/lp/2/current:.* lp_2_current\
$DEVICETOPIC/config/get/sofort/lp/1/socToChargeTo:.* lp_1_socToChargeTo\
$DEVICETOPIC/config/get/sofort/lp/1/energyToCharge:.* lp_1_energyToCharge\
$DEVICETOPIC/config/get/sofort/lp/1/chargeLimitation:.* lp_1_chargeLimitation\
$DEVICETOPIC/config/get/sofort/lp/1/current:.* lp_1_current\
$DEVICETOPIC/config/get/global/minEVSECurrentAllowed:.* minEVSECurrentAllowed\
$DEVICETOPIC/config/get/global/maxEVSECurrentAllowed:.* maxEVSECurrentAllowed\
$DEVICETOPIC/config/get/global/dataProtectionAcknoledged:.* dataProtectionAcknoledged\
$DEVICETOPIC/config/get/global/slaveMode:.* slaveMode\
$DEVICETOPIC/config/get/u1p3p/standbyPhases:.* standbyPhases\
$DEVICETOPIC/config/get/u1p3p/sofortPhases:.* sofortPhases\
$DEVICETOPIC/config/get/u1p3p/nachtPhases:.* nachtPhases\
$DEVICETOPIC/config/get/u1p3p/minundpvPhases:.* minundpvPhases\
$DEVICETOPIC/config/get/u1p3p/nurpvPhases:.* nurpvPhases\
$DEVICETOPIC/config/get/u1p3p/isConfigured:.* isConfigured\
$DEVICETOPIC/boolChargeAtNight_standby:.* boolChargeAtNight_standby\
$DEVICETOPIC/set/system/reloadDisplay:.* reloadDisplay\
$DEVICETOPIC/set/system/topicSender:.* topicSender\
$DEVICETOPIC/set/lp/2/faultState:.* lp_2_faultState\
$DEVICETOPIC/set/lp/2/faultStr:.* lp_2_faultStr\
$DEVICETOPIC/set/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled
attr WB_1 room MQTT2_DEVICE,Strom->Photovoltaik
attr WB_1 setList Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');;qq({$DEVICETOPIC/set/Chargemode $h{$EVTPART1}}) }\
DirectChargeSubMode:Aus,kWh_Laden,SoC_Laden { my %h=(Aus=>'0',kWh_Laden=>'1',SoC_Laden=>'2');;qq({$DEVICETOPIC/set/lp1/DirectChargeSubMode $h{$EVTPART1}}) }
attr WB_1 sortby 311
attr WB_1 stateFormat Lademodus: ChargeMode | Ladestatus Lp1: lp_1_ChargeStatus | verbleibende Ladezeit Lp1: lp_1_TimeRemaining <br> Ladestatus Lp2: lp_2_ChargeStatus | verbleibende Ladezeit Lp2: lp_2_TimeRemaining

setstate WB_1 Lademodus: Stop | Ladestatus Lp1: 0 | verbleibende Ladezeit Lp1: 0 <br> Ladestatus Lp2: 0 | verbleibende Ladezeit Lp2: 0
setstate WB_1 2021-10-19 17:08:09 ASchieflast 2
setstate WB_1 2021-10-19 17:00:08 ActualPriceForCharging 18.33
setstate WB_1 2021-10-19 17:16:48 ChargeMode Stop
setstate WB_1 2021-10-19 13:11:43 ConfiguredChargePoints 2
setstate WB_1 2021-10-19 13:11:44 CounterTillStartPvCharging 0
setstate WB_1 2021-10-19 13:11:42 DailyYieldAllChargePointsKwh 0
setstate WB_1 2021-10-19 17:21:27 Date Di 19. Okt 17:21:26 CEST 2021
setstate WB_1 2021-10-19 14:51:32 IODev WB_1_MQTT2
setstate WB_1 2021-10-19 13:11:43 IpAddress 192.168.178.61
setstate WB_1 2021-10-19 13:11:42 MaxPriceForCharging 0
setstate WB_1 2021-10-19 17:21:27 Timestamp 1634656886
setstate WB_1 2021-10-19 17:21:27 Uptime  17:21:26 up 2 days, 36 min, 1 user, load average: 1,85, 1,42, 1,20
setstate WB_1 2021-10-19 13:11:43 Version 1.9.244
setstate WB_1 2021-10-19 17:21:27 W -2225
setstate WB_1 2021-10-19 13:11:44 W70PVDyn 6000
setstate WB_1 2021-10-19 13:11:42 WAllChargePoints 1
setstate WB_1 2021-10-19 17:21:27 WHouseConsumption 1203
setstate WB_1 2021-10-19 13:11:44 adaptiveChargingFactor 5
setstate WB_1 2021-10-19 13:11:44 batteryDischargePowerAtBattPriority 1500
setstate WB_1 2021-10-19 13:11:44 bool70PVDynActive 0
setstate WB_1 2021-10-19 13:11:44 bool70PVDynStatus 0
setstate WB_1 2021-10-19 13:11:44 boolAdaptiveCharging 0
setstate WB_1 2021-10-19 13:58:28 boolAwattarEnabled 1
setstate WB_1 2021-10-19 13:11:44 boolChargeAtNight_direct 0
setstate WB_1 2021-10-19 13:11:44 boolChargeAtNight_minpv 0
setstate WB_1 2021-10-19 13:11:44 boolChargeAtNight_nurpv 0
setstate WB_1 2021-10-19 13:11:45 boolChargeAtNight_standby 0
setstate WB_1 2021-10-19 13:11:44 boolDisplayDailyCharged 1
setstate WB_1 2021-10-19 13:11:44 boolDisplayHouseConsumption 0
setstate WB_1 2021-10-19 13:11:44 boolEvuSmoothedActive 0
setstate WB_1 2021-10-19 13:11:42 boolRse 0
setstate WB_1 2021-10-19 13:11:44 boolShowPriorityIconInTheme 0
setstate WB_1 2021-10-19 13:11:44 chargeSubmode 0
setstate WB_1 2021-10-19 17:21:19 cpuTemp 56.38
setstate WB_1 2021-10-19 13:11:44 dataProtectionAcknoledged 1
setstate WB_1 2021-10-19 13:11:45 isConfigured 1
setstate WB_1 2021-10-19 13:11:42 kWhCounterAllChargePoints 0
setstate WB_1 2021-10-19 13:11:43 lastRfId 0
setstate WB_1 2021-10-19 17:21:27 lastlivevalues 17:21:27,5,0,2225,0,0,0,1027,99,0,0,1203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
setstate WB_1 2021-10-19 13:11:43 lp_1_AConfigured 0
setstate WB_1 2021-10-19 13:11:43 lp_1_APhase1 0.0
setstate WB_1 2021-10-19 13:11:43 lp_1_APhase2 0.0
setstate WB_1 2021-10-19 13:11:43 lp_1_APhase3 0.0
setstate WB_1 2021-10-19 13:11:43 lp_1_AutolockConfigured 0
setstate WB_1 2021-10-19 13:11:43 lp_1_AutolockStatus 0
setstate WB_1 2021-10-19 14:12:18 lp_1_ChargePointEnabled 0
setstate WB_1 2021-10-19 17:16:49 lp_1_ChargeStatus 0
setstate WB_1 2021-10-19 13:11:43 lp_1_MeterSerialNumber 20279817
setstate WB_1 2021-10-19 13:11:43 lp_1_PfPhase1 1.0
setstate WB_1 2021-10-19 13:11:43 lp_1_PfPhase2 1.0
setstate WB_1 2021-10-19 13:11:43 lp_1_PfPhase3 1.0
setstate WB_1 2021-10-19 13:11:43 lp_1_TimeRemaining 0
setstate WB_1 2021-10-19 17:21:19 lp_1_VPhase1 235.3
setstate WB_1 2021-10-19 17:21:19 lp_1_VPhase2 234.5
setstate WB_1 2021-10-19 17:21:19 lp_1_VPhase3 236.0
setstate WB_1 2021-10-19 13:11:43 lp_1_W 0
setstate WB_1 2021-10-19 13:11:43 lp_1__Soc 0
setstate WB_1 2021-10-19 13:11:43 lp_1_boolChargeAtNight 0
setstate WB_1 2021-10-19 13:11:43 lp_1_boolChargePointConfigured 1
setstate WB_1 2021-10-19 13:11:43 lp_1_boolChargeStat 0
setstate WB_1 2021-10-19 13:11:43 lp_1_boolDirectChargeModeSoc 0
setstate WB_1 2021-10-19 13:11:43 lp_1_boolDirectModeChargekWh 0
setstate WB_1 2021-10-19 13:11:43 lp_1_boolFinishAtTimeChargeActive 0
setstate WB_1 2021-10-19 13:11:43 lp_1_boolPlugStat 0
setstate WB_1 2021-10-19 13:11:43 lp_1_boolSocConfigured 1
setstate WB_1 2021-10-19 13:11:43 lp_1_boolSocManual 0
setstate WB_1 2021-10-19 13:11:44 lp_1_chargeLimitation 0
setstate WB_1 2021-10-19 13:11:43 lp_1_countPhasesInUse 0
setstate WB_1 2021-10-19 13:11:44 lp_1_current 10
setstate WB_1 2021-10-19 13:11:43 lp_1_energyConsumptionPer100km 17
setstate WB_1 2021-10-19 13:11:44 lp_1_energyToCharge 4
setstate WB_1 2021-10-19 13:11:43 lp_1_kWhActualCharged 0
setstate WB_1 2021-10-19 13:11:43 lp_1_kWhChargedSincePlugged 0
setstate WB_1 2021-10-19 13:11:43 lp_1_kWhCounter 0.0
setstate WB_1 2021-10-19 13:11:43 lp_1_kWhDailyCharged 0.00
setstate WB_1 2021-10-19 13:11:43 lp_1_kmCharged 0
setstate WB_1 2021-10-19 13:11:43 lp_1_lastRfId 0
setstate WB_1 2021-10-19 13:11:44 lp_1_maxSoc 90
setstate WB_1 2021-10-19 13:11:44 lp_1_maxSocToChargeTo 95
setstate WB_1 2021-10-19 13:11:44 lp_1_minCurrent 6
setstate WB_1 2021-10-19 13:11:44 lp_1_minSocAlwaysToChargeTo 25
setstate WB_1 2021-10-19 13:11:44 lp_1_minSocAlwaysToChargeToCurrent 30
setstate WB_1 2021-10-19 13:11:43 lp_1_plugStartkWh 0.0
setstate WB_1 2021-10-19 13:11:43 lp_1_pluggedladungakt 0
setstate WB_1 2021-10-19 13:11:44 lp_1_socLimitation 0
setstate WB_1 2021-10-19 13:11:44 lp_1_socToChargeTo 65
setstate WB_1 2021-10-19 13:11:43 lp_1_strChargePointName LP1
setstate WB_1 2021-10-19 13:11:43 lp_2_AConfigured 0
setstate WB_1 2021-10-19 13:11:43 lp_2_APhase1 0.0
setstate WB_1 2021-10-19 13:11:43 lp_2_APhase2 0.0
setstate WB_1 2021-10-19 13:11:43 lp_2_APhase3 0.0
setstate WB_1 2021-10-19 13:11:43 lp_2_AutolockConfigured 0
setstate WB_1 2021-10-19 13:11:43 lp_2_AutolockStatus 0
setstate WB_1 2021-10-19 14:12:18 lp_2_ChargePointEnabled 0
setstate WB_1 2021-10-19 17:16:49 lp_2_ChargeStatus 0
setstate WB_1 2021-10-19 13:11:43 lp_2_TimeRemaining 0
setstate WB_1 2021-10-19 17:21:19 lp_2_VPhase1 235.7
setstate WB_1 2021-10-19 17:21:19 lp_2_VPhase2 235.2
setstate WB_1 2021-10-19 17:21:19 lp_2_VPhase3 234.2
setstate WB_1 2021-10-19 13:11:43 lp_2_W 0
setstate WB_1 2021-10-19 13:11:43 lp_2__Soc 0
setstate WB_1 2021-10-19 13:11:43 lp_2_boolChargeAtNight 0
setstate WB_1 2021-10-19 13:11:43 lp_2_boolChargePointConfigured 1
setstate WB_1 2021-10-19 13:11:43 lp_2_boolChargeStat 0
setstate WB_1 2021-10-19 13:11:43 lp_2_boolDirectChargeModeSoc 0
setstate WB_1 2021-10-19 13:11:43 lp_2_boolDirectModeChargekWh 0
setstate WB_1 2021-10-19 13:11:43 lp_2_boolPlugStat 0
setstate WB_1 2021-10-19 13:11:43 lp_2_boolSocConfigured 0
setstate WB_1 2021-10-19 13:11:43 lp_2_boolSocManual 0
setstate WB_1 2021-10-19 13:11:44 lp_2_chargeLimitation 0
setstate WB_1 2021-10-19 13:11:43 lp_2_countPhasesInUse 0
setstate WB_1 2021-10-19 13:11:44 lp_2_current 10
setstate WB_1 2021-10-19 13:11:43 lp_2_energyConsumptionPer100km 17
setstate WB_1 2021-10-19 13:11:44 lp_2_energyToCharge 8
setstate WB_1 2021-10-19 17:21:25 lp_2_faultState
setstate WB_1 2021-10-19 17:21:25 lp_2_faultStr
setstate WB_1 2021-10-19 13:11:43 lp_2_kWhActualCharged 0
setstate WB_1 2021-10-19 13:11:43 lp_2_kWhChargedSincePlugged 0
setstate WB_1 2021-10-19 13:11:43 lp_2_kWhCounter 0.0
setstate WB_1 2021-10-19 13:11:43 lp_2_kWhDailyCharged 0.00
setstate WB_1 2021-10-19 13:11:43 lp_2_kmCharged 0
setstate WB_1 2021-10-19 13:11:43 lp_2_lastRfId 0
setstate WB_1 2021-10-19 13:11:44 lp_2_maxSoc 90
setstate WB_1 2021-10-19 13:11:44 lp_2_minCurrent 6
setstate WB_1 2021-10-19 13:11:43 lp_2_plugStartkWh 0
setstate WB_1 2021-10-19 13:11:43 lp_2_pluggedladungakt 0
setstate WB_1 2021-10-19 13:11:44 lp_2_socLimitation 0
setstate WB_1 2021-10-19 13:11:44 lp_2_socToChargeTo 80
setstate WB_1 2021-10-19 13:11:43 lp_2_strChargePointName LP2
setstate WB_1 2021-10-19 13:11:44 maxEVSECurrentAllowed 16
setstate WB_1 2021-10-19 13:11:44 maxPowerConsumptionBeforeStop 5
setstate WB_1 2021-10-19 13:11:44 minBatteryChargePowerAtEvPriority 0
setstate WB_1 2021-10-19 13:11:44 minBatteryDischargeSocAtBattPriority 100
setstate WB_1 2021-10-19 13:11:44 minCurrentMinPv 10
setstate WB_1 2021-10-19 13:11:44 minEVSECurrentAllowed 10
setstate WB_1 2021-10-19 13:11:44 minFeedinPowerBeforeStart 1500
setstate WB_1 2021-10-19 13:11:44 minundpvPhases 1
setstate WB_1 2021-10-19 13:58:14 modulePath et_awattar
setstate WB_1 2021-10-19 13:11:44 nachtPhases 3
setstate WB_1 2021-10-19 13:11:44 nurpv70dynact 0
setstate WB_1 2021-10-19 13:11:44 nurpv70dynw 6000
setstate WB_1 2021-10-19 13:11:44 nurpvPhases 1
setstate WB_1 2021-10-19 13:11:43 priceForKWh 0.2439
setstate WB_1 2021-10-19 14:11:47 priorityModeEVBattery 0
setstate WB_1 2021-10-19 13:11:43 randomSleep 0
setstate WB_1 2021-10-19 13:11:44 regulationPoint 0
setstate WB_1 2021-10-19 13:58:16 reloadDisplay
setstate WB_1 2021-10-19 13:11:42 rfidConfigured 0
setstate WB_1 2021-10-19 13:11:45 showHouseConsumption 1
setstate WB_1 2021-10-19 13:11:44 slaveMode 0
setstate WB_1 2021-10-19 13:11:44 socStartChargeAtMinPv 0
setstate WB_1 2021-10-19 13:11:44 socStopChargeAtMinPv 0
setstate WB_1 2021-10-19 13:11:44 sofortPhases 3
setstate WB_1 2021-10-19 13:11:44 standbyPhases 3
setstate WB_1 2021-10-19 13:11:44 startDelay 10
setstate WB_1 2021-10-19 17:17:03 state Lademodus
setstate WB_1 2021-10-19 13:11:44 stopDelay 900
setstate WB_1 2021-10-19 17:21:19 strLastmanagementActive 
setstate WB_1 2021-10-19 17:16:48 topicSender
setstate WB_1 2021-10-19 13:11:43 updateInProgress 0


EDIT: Und hier noch Meldungen aus dem Log, die aber nicht an die openWB gegangen sind

2021.10.19 17:01:54.637 3: MQTT2_DEVICE set WB_1 Lademodus SofortLaden
2021.10.19 17:16:18.457 3: MQTT2_DEVICE set WB_1 Lademodus SofortLaden
2021.10.19 17:17:03.492 3: MQTT2_DEVICE set WB_1 Lademodus NurPV
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

Mir ist (meistens) bei MQTT2 das RAW-Format lieber.

Vermutlich eine doofe Frage: auf das "set" vorne hast du geklickt? (hatte ich neulich erst, direkt gepublisht wird nur, wenn es in webCmd steht oder eben der FHEM-Command kommt).

Wenn ja: Bitte den MQTT-Verkehr abhorchen. Für mich sieht das zumindest auf den ersten Blick ok aus, was da steht, und beim Code-Autor funktioniert es ja auch. (ich mache das z.B. mit mosquitto_sub, aber für den Fall der Fälle bitte nicht versehentlich die Server-Komponente mit installieren, nur mosquitto_clients).
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

kjmEjfu

Zitat von: ch.eick am 19 Oktober 2021, 17:25:06
an der Funktionalität hat sich leider nichts geändert. Ich kann lesen, aber das setList geht nicht zur openWB.

Nimm mal meine korrigierte setList aus https://forum.fhem.de/index.php/topic,122297.msg1180711.html#msg1180711
Migriere derzeit zu Home Assistant

ch.eick

#32
Zitat von: kjmEjfu am 19 Oktober 2021, 17:34:00
Nimm mal meine korrigierte setList aus https://forum.fhem.de/index.php/topic,122297.msg1180711.html#msg1180711
Das hatte ich im RAW bereits korrigiert, aber jetzt nochmal überschrieben und siehe da gerade hat es funktioniert.
Und ja, Beta-User ich hatte auf set geklickt ;-) :-) :-)

Somit wären alle Fehler, die ich Euch heute eingebaut habe wieder beseitigt.

In meinem letzten RAW sind dann noch diverse mehr Register, bei denen ich noch nicht abwägen kann, was da mit meinem Auto so kommen wird.
Da kann später sicher einiges wieder raus.

Vielen Dank dafür
     Christian

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hey zusammen

ich habe mal hier openWB mit Kia connect ein Anwendungsbeispiel abgelegt.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

#34
Hmm, ist echt einsam hier ;-)

Ich habe mal ein etwas anderes stateFormat erstellt, was besser zu meinen anderen PV Devices passt. Vieleicht gefällt es ja jemanden.


{
my $DUMMY  = "";
my $date = POSIX::strftime("%Y-%m-%d",localtime(time_str2num(ReadingsTimestamp($name, "lastlivevalues",0))));

my $ChargeMode          = ReadingsVal($name,"ChargeMode","n/a");
    $ChargeMode          = ($ChargeMode eq "SofortLaden")? "<span style='color:red'>SofortLaden</span>" : ($ChargeMode eq "MinPV")?  "<span style='color:orange'>Min+PV</span>" : ($ChargeMode eq "NurPV")?  "<span style='color:green'>NurPV</span>" : $ChargeMode;

my $lp_1_Name           = ReadingsVal($name,"lp_1_strChargePointName","n/a");
my $lp_1_Power          = ReadingsVal($name,"lp_1_W",0)." W";
my $lp_1_Power_1        = ReadingsVal($name,"lp_1_countPhasesInUse",0)."P ".ReadingsVal($name,"lp_1_AConfigured",0)."A";
my $lp_1_Status_1       = ReadingsVal($name,"lp_1_PlugStat","n/a")."<br>".ReadingsVal($name,"lp_1_ChargeStat","n/a");
my $lp_1_Status_2       = ReadingsVal($name,"lp_1_TimeRemaining","n/a");

my $lp_1_Power_d        = ReadingsVal($name,"lp_1_kWhDailyCharged",0)." kW";
my $lp_1_Power_m        = round(ReadingsVal($name,"lp_1_kWhCounter_Month",0),0)." kW";
my $lp_1_Power_j        = round(ReadingsVal($name,"lp_1_kWhCounter_Year",0),0)." kW";
my $lp_1_Power_t        = round(ReadingsVal($name,"lp_1_kWhCounter",0),0)." kW";

my $lp_2_Name           = ReadingsVal($name,"lp_2_strChargePointName","n/a");
my $lp_2_Power          = ReadingsVal($name,"lp_2_W",0)." W";
my $lp_2_Power_1        = ReadingsVal($name,"lp_2_countPhasesInUse",0)."P ".ReadingsVal($name,"lp_2_AConfigured",0)."A";
my $lp_2_Status_1       = ReadingsVal($name,"lp_2_PlugStat","n/a")."<br>".ReadingsVal($name,"lp_2_ChargeStat","n/a");
my $lp_2_Status_2       = "<br>".ReadingsVal($name,"lp_2_TimeRemaining","n/a");

my $lp_2_Power_d        = ReadingsVal($name,"lp_2_kWhDailyCharged",0)." kW";
my $lp_2_Power_m        = round(ReadingsVal($name,"lp_2_kWhCounter_Month",0),0)." kW";
my $lp_2_Power_j        = round(ReadingsVal($name,"lp_2_kWhCounter_Year",0),0)." kW";
my $lp_2_Power_t        = round(ReadingsVal($name,"lp_2_kWhCounter",0),0)." kW";

"<html><table border=2 bordercolor='darkgreen' cellspacing=0 style='width: 100%'>
<colgroup>
   <col span='1' style='width: 52%;'>
   <col span='1' style='width: 12%;'>
   <col span='1' style='width: 12%;'>
   <col span='1' style='width: 12%;'>
   <col span='1' style='width: 12%;'>
</colgroup>
<tr><td style='padding-right:5px;padding-left:5px;font-weight:bold'>Wallbox</td><td style='padding-right:5px;padding-left:5px;font-weight:bold;text-align:center'>$ChargeMode</td><td style='padding-right:5px;padding-left:5px;font-weight:bold;text-align:center'>Status</td><td style='padding-right:5px;padding-left:5px;text-align:center;font-weight:bold'>Ladezeit</td><td style='padding-right:5px;padding-left:5px;text-align:center;font-weight:bold'>Leistung</td></tr>
<tr><td style='padding-right:5px;padding-left:5px;text-align:left;font-weight:bold'>&nbsp;&nbsp;".$lp_1_Name."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$DUMMY."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_1_Status_1."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_1_Status_2."<br></td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_1_Power_1."<br>".$lp_1_Power."</td></tr>
<tr><td style='padding-right:5px;padding-left:5px;text-align:left;font-weight:bold'>&nbsp;&nbsp;".$lp_2_Name."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$DUMMY."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_2_Status_1."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_2_Status_2."<br></td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_2_Power_1."<br>".$lp_2_Power."</td></tr>
<tr><td style='padding-right:5px;padding-left:5px;font-weight:bold'>Statistik vom $date</td><td style='padding-right:5px;padding-left:5px;font-weight:bold;text-align:center'>aktuell</td><td style='padding-right:5px;padding-left:5px;font-weight:bold;text-align:center'>Heute</td><td style='padding-right:5px;padding-left:5px;font-weight:bold;text-align:center'>Monat</td><td style='padding-right:5px;padding-left:5px;font-weight:bold;text-align:center'>Jahr</td></tr>
<tr><td style='padding-right:5px;padding-left:5px;text-align:left;font-weight:bold'>&nbsp;&nbsp;".$lp_1_Name."<td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_1_Power."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_1_Power_d."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_1_Power_m."<br></td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_1_Power_j."</td></tr>
<tr><td style='padding-right:5px;padding-left:5px;text-align:left;font-weight:bold'>&nbsp;&nbsp;".$lp_2_Name."<td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_2_Power."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_2_Power_d."</td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_2_Power_m."<br></td><td style='padding-right:5px;padding-left:5px;text-align:center'>".$lp_2_Power_j."</td></tr>
</table>
</html>"
}


EDIT: Nun habe ich noch die Statistiken um Monat und Jahr erweitert. Das funktioniert aber nur, wenn man jeden Tag den kWhCounter in weiteren readings mitschreibt.
  Zumindest der Monats und Jahresanfang muss hinterlegt sein. Dies mache ich in einem DOIF, was zu meinem BEV einige Steuerungen vornimmt.

userreadings

lp_1_kWhCounter_Month:lp_1_kWhCounter.* {  round(ReadingsVal("$NAME","lp_1_kWhCounter",0) - ReadingsVal("$NAME","lp_1_kWhCounter_init_Month",0),0) },
lp_1_kWhCounter_Year:lp_1_kWhCounter.* {  round(ReadingsVal("$NAME","lp_1_kWhCounter",0) - ReadingsVal("$NAME","lp_1_kWhCounter_init_Year",0),0)  },

lp_2_kWhCounter_Month:lp_2_kWhCounter.* {  round(ReadingsVal("$NAME","lp_2_kWhCounter",0) - ReadingsVal("$NAME","lp_2_kWhCounter_init_Month",0),0) },
lp_2_kWhCounter_Year:lp_2_kWhCounter.* {  round(ReadingsVal("$NAME","lp_2_kWhCounter",0) - ReadingsVal("$NAME","lp_2_kWhCounter_init_Year",0),0)  }


DOIF Perl Modus um den Zählerstand zu speicher

9_WB_1_Zaehler_Statistiken
{if( !([$SELF:state] eq "off") and                                     ## DOIF enabled
     [00:01]
   ) {
    fhem("setreading WB_1 lp_1_kWhCounter_init_Day ".[WB_1:lp_1_kWhCounter]);
    fhem("setreading WB_1 lp_2_kWhCounter_init_Day ".[WB_1:lp_2_kWhCounter]);

    if ($mday eq 1)
     {
      fhem("setreading WB_1 lp_1_kWhCounter_init_Month ".[WB_1:lp_1_kWhCounter]);
      fhem("setreading WB_1 lp_2_kWhCounter_init_Month ".[WB_1:lp_2_kWhCounter]);

      if ($yday eq 1)
        {
         fhem("setreading WB_1 lp_1_kWhCounter_init_Year ".[WB_1:lp_1_kWhCounter]);
         fhem("setreading WB_1 lp_2_kWhCounter_init_Year ".[WB_1:lp_2_kWhCounter]);
        }
     }
  }
}


VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kjmEjfu

#35
Du bist sooooooooooooo freaky  ;)
Sieht sehr cool aus. Gefällt mir.

Der ChargeMode gilt doch (zumindest in openWB 1.x) für alle Ladepunkte. Eventuell aus der Zelle für den Ladepunkt rausnehmen und woanders, in Klammern in Wallbox?, anzeigen lassen?
Migriere derzeit zu Home Assistant

ch.eick

#36
EDIT: Jetzt wird der Lademodus auch noch farbig dargestellt.

SofortLaden => rot
PV => grün
Min+PV => orange
Standby und Stop => schwarz

Zitat von: kjmEjfu am 25 November 2021, 15:42:06
Der ChargeMode gilt doch (zumindest in openWB 1.x) für alle Ladepunkte. Eventuell aus der Zelle für den Ladepunkt rausnehmen und woanders, in Klammern in Wallbox?, anzeigen lassen?
Ich habe es in die Überschriftenzeile verschoben, das kommt aus der Gesamtheit meiner Devices, da der Ladepunkt auch als letzte Zeile beim E-Auto auftaucht.
Da kann ich in der Spalte den Lade Modus setzen, würde das jetzt aber auch da hin verschieben. Es soll halt alles zusammen passen.

Leider kann man nicht in allen Devices uiTable verwenden und so muss ich bei einigen eine änliche Formatierung im stateFormat umsetzen.
Nur gehen da die widgets nicht, oder ich habe noch nicht gelernt, wie das gehen würde.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

#37
Update 2022-01-12

Und hier nochmal das WB_1 MQTT Device, da es in einem anderen Thread auch angefragt wurde.

Hier die openWB mit zwei Ladepunkten, also eine ist Master, die ander Slave

defmod WB_1 MQTT2_DEVICE WB_1_MQTT2
attr WB_1 DbLogExclude .*
attr WB_1 DbLogInclude lp_1_.*,.*AllChargePoints.*,ChargeMode
attr WB_1 IODev WB_1_MQTT2
attr WB_1 alias WB_1
attr WB_1 autocreate 0
attr WB_1 comment Die openWB besteht aus zwei Ladepunkten.
attr WB_1 devicetopic openWB
attr WB_1 disable 0
attr WB_1 event-on-change-reading lp_1_.*,.*AllChargePoints.*,ChargeMode
attr WB_1 group PV Eigenverbrauch
attr WB_1 icon fuel
attr WB_1 readingList $DEVICETOPIC/global/WHouseConsumption:.* WHouseConsumption\
$DEVICETOPIC/global/WAllChargePoints:.* WAllChargePoints\
$DEVICETOPIC/global/ChargeMode:.* {my %h=(0=>'SofortLaden',1=>'MinPV',2=>'NurPV',3=>'Stop',4=>'Standby');; return {ChargeMode=>$h{$EVENT}}}\
\
$DEVICETOPIC/global/awattar/boolAwattarEnabled:.* boolAwattarEnabled\
$DEVICETOPIC/global/awattar/ActualPriceForCharging:.* ActualPriceForCharging\
$DEVICETOPIC/global/awattar/MaxPriceForCharging:.* MaxPriceForCharging\
$DEVICETOPIC/global/boolRse:.* boolRse\
$DEVICETOPIC/global/DailyYieldAllChargePointsKwh:.* DailyYieldAllChargePointsKwh\
$DEVICETOPIC/global/rfidConfigured:.* rfidConfigured\
$DEVICETOPIC/global/kWhCounterAllChargePoints:.* kWhCounterAllChargePoints\
$DEVICETOPIC/global/strLastmanagementActive:.* strLastmanagementActive\
$DEVICETOPIC/global/ETProvider/modulePath:.* modulePath\
$DEVICETOPIC/global/cpuTemp:.* cpuTemp\
\
$DEVICETOPIC/system/Uptime:.* Uptime\
$DEVICETOPIC/system/Date:.* Date\
$DEVICETOPIC/system/Timestamp:.* Timestamp\
$DEVICETOPIC/system/Version:.* Version\
$DEVICETOPIC/system/IpAddress:.* IpAddress\
$DEVICETOPIC/system/lastRfId:.* lastRfId\
$DEVICETOPIC/system/updateInProgress:.* updateInProgress\
$DEVICETOPIC/system/ConfiguredChargePoints:.* ConfiguredChargePoints\
$DEVICETOPIC/system/lastlivevalues:.* lastlivevalues\
$DEVICETOPIC/system/randomSleep:.* randomSleep\
$DEVICETOPIC/system/wizzardDone:.* wizzardDone\
$DEVICETOPIC/system/priceForKWh:.* priceForKWh\
$DEVICETOPIC/system/reloadDisplay:.* reloadDisplay\
\
$DEVICETOPIC/evu/ASchieflast:.* ASchieflast\
\
$DEVICETOPIC/lp/1/P%Soc:.* lp_1_Pct_Soc\
$DEVICETOPIC/lp/1/%Soc:.* lp_1_current_Soc\
$DEVICETOPIC/lp/1/\x25Soc:.* lp_1__Soc\
\
$DEVICETOPIC/lp/1/countPhasesInUse:.* lp_1_countPhasesInUse\
$DEVICETOPIC/lp/1/ChargePointEnabled:.* lp_1_ChargePointEnabled\
$DEVICETOPIC/lp/1/ChargeStatus:.* lp_1_ChargeStatus\
\
$DEVICETOPIC/lp/1/kWhDailyCharged:.* lp_1_kWhDailyCharged\
$DEVICETOPIC/lp/1/kWhCounter:.* lp_1_kWhCounter\
$DEVICETOPIC/lp/1/kWhActualCharged:.* lp_1_kWhActualCharged\
$DEVICETOPIC/lp/1/kWhChargedSincePlugged:.* lp_1_kWhChargedSincePlugged\
$DEVICETOPIC/lp/1/energyConsumptionPer100km:.* lp_1_energyConsumptionPer100km\
$DEVICETOPIC/lp/1/kmCharged:.* lp_1_kmCharged\
\
$DEVICETOPIC/lp/1/strChargePointName:.* lp_1_strChargePointName\
$DEVICETOPIC/lp/1/TimeRemaining:.* lp_1_TimeRemaining\
\
$DEVICETOPIC/lp/1/PfPhase2:.* lp_1_PfPhase2\
$DEVICETOPIC/lp/1/PfPhase3:.* lp_1_PfPhase3\
$DEVICETOPIC/lp/1/PfPhase1:.* lp_1_PfPhase1\
$DEVICETOPIC/lp/1/W:.* lp_1_W\
\
$DEVICETOPIC/lp/1/boolPlugStat:.* {my %h=(0=>'no Plug',1=>'Plugged in');; return {lp_1_PlugStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/1/boolChargeStat:.* {my %h=(0=>'not loading',1=>'loading');; return {lp_1_ChargeStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/1/AConfigured:.* lp_1_AConfigured\
\
$DEVICETOPIC/lp/1/boolChargePointConfigured:.* lp_1_boolChargePointConfigured\
$DEVICETOPIC/lp/1/boolSocConfigured:.* lp_1_boolSocConfigured\
$DEVICETOPIC/lp/1/boolDirectModeChargekWh:.* lp_1_boolDirectModeChargekWh\
$DEVICETOPIC/lp/1/boolDirectChargeModeSoc:.* lp_1_boolDirectChargeModeSoc\
$DEVICETOPIC/lp/1/boolFinishAtTimeChargeActive:.* lp_1_boolFinishAtTimeChargeActive\
$DEVICETOPIC/lp/1/boolChargeAtNight:.* lp_1_boolChargeAtNight\
$DEVICETOPIC/lp/1/boolSocManual:.* lp_1_boolSocManual\
\
$DEVICETOPIC/lp/1/AutolockStatus:.* lp_1_AutolockStatus\
$DEVICETOPIC/lp/1/AutolockConfigured:.* lp_1_AutolockConfigured\
\
$DEVICETOPIC/lp/1/lastRfId:.* lp_1_lastRfId\
$DEVICETOPIC/lp/1/pluggedladungakt:.* lp_1_pluggedladungakt\
$DEVICETOPIC/lp/1/plugStartkWh:.* lp_1_plugStartkWh\
$DEVICETOPIC/lp/1/MeterSerialNumber:.* lp_1_MeterSerialNumber\
\
\
$DEVICETOPIC/lp/2/P%Soc:.* lp_2_Pct_Soc\
$DEVICETOPIC/lp/2/%Soc:.* lp_2_current_Soc\
$DEVICETOPIC/lp/2/\x25Soc:.* lp_2__Soc\
\
$DEVICETOPIC/lp/2/countPhasesInUse:.* lp_2_countPhasesInUse\
$DEVICETOPIC/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled\
$DEVICETOPIC/lp/2/ChargeStatus:.* lp_2_ChargeStatus\
\
$DEVICETOPIC/lp/2/kWhDailyCharged:.* lp_2_kWhDailyCharged\
$DEVICETOPIC/lp/2/kWhCounter:.* lp_2_kWhCounter\
$DEVICETOPIC/lp/2/kWhActualCharged:.* lp_2_kWhActualCharged\
$DEVICETOPIC/lp/2/kWhChargedSincePlugged:.* lp_2_kWhChargedSincePlugged\
$DEVICETOPIC/lp/2/energyConsumptionPer100km:.* lp_2_energyConsumptionPer100km\
$DEVICETOPIC/lp/2/kmCharged:.* lp_2_kmCharged\
\
$DEVICETOPIC/lp/2/strChargePointName:.* lp_2_strChargePointName\
$DEVICETOPIC/lp/2/TimeRemaining:.* lp_2_TimeRemaining\
\
$DEVICETOPIC/lp/2/W:.* lp_2_W\
\
$DEVICETOPIC/lp/2/boolPlugStat:.* {my %h=(0=>'no Plug',1=>'Plugged in');; return {lp_2_PlugStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/2/boolChargeStat:.* {my %h=(0=>'not loading',1=>'loading');; return {lp_2_ChargeStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/2/AConfigured:.* lp_2_AConfigured\
\
$DEVICETOPIC/lp/2/boolChargePointConfigured:.* lp_2_boolChargePointConfigured\
$DEVICETOPIC/lp/2/boolSocConfigured:.* lp_2_boolSocConfigured\
$DEVICETOPIC/lp/2/boolDirectModeChargekWh:.* lp_2_boolDirectModeChargekWh\
$DEVICETOPIC/lp/2/boolDirectChargeModeSoc:.* lp_2_boolDirectChargeModeSoc\
$DEVICETOPIC/lp/2/boolFinishAtTimeChargeActive:.* lp_2_boolFinishAtTimeChargeActive\
$DEVICETOPIC/lp/2/boolChargeAtNight:.* lp_2_boolChargeAtNight\
$DEVICETOPIC/lp/2/boolSocManual:.* lp_2_boolSocManual\
\
$DEVICETOPIC/lp/2/AutolockStatus:.* lp_2_AutolockStatus\
$DEVICETOPIC/lp/2/AutolockConfigured:.* lp_2_AutolockConfigured\
\
$DEVICETOPIC/lp/2/lastRfId:.* lp_2_lastRfId\
$DEVICETOPIC/lp/2/pluggedladungakt:.* lp_2_pluggedladungakt\
$DEVICETOPIC/lp/2/plugStartkWh:.* lp_2_plugStartkWh\
$DEVICETOPIC/lp/2/MeterSerialNumber:.* lp_2_MeterSerialNumber\
\
\
$DEVICETOPIC/boolChargeAtNight_direct:.* boolChargeAtNight_direct\
$DEVICETOPIC/boolChargeAtNight_nurpv:.* boolChargeAtNight_nurpv\
$DEVICETOPIC/boolChargeAtNight_minpv:.* boolChargeAtNight_minpv\
$DEVICETOPIC/boolDisplayHouseConsumption:.* boolDisplayHouseConsumption\
$DEVICETOPIC/boolDisplayDailyCharged:.* boolDisplayDailyCharged\
$DEVICETOPIC/boolEvuSmoothedActive:.* boolEvuSmoothedActive\
$DEVICETOPIC/pv/bool70PVDynActive:.* bool70PVDynActive\
$DEVICETOPIC/pv/W70PVDyn:.* W70PVDyn\
$DEVICETOPIC/pv/bool70PVDynStatus:.* bool70PVDynStatus\
$DEVICETOPIC/pv/CounterTillStartPvCharging:.* CounterTillStartPvCharging\
$DEVICETOPIC/pv/W:.* W\
$DEVICETOPIC/config/get/pv/nurpv70dynact:.* nurpv70dynact\
$DEVICETOPIC/config/get/pv/nurpv70dynw:.* nurpv70dynw\
$DEVICETOPIC/config/get/pv/priorityModeEVBattery:.* priorityModeEVBattery\
$DEVICETOPIC/config/get/pv/lp/1/minSocAlwaysToChargeTo:.* lp_1_minSocAlwaysToChargeTo\
$DEVICETOPIC/config/get/pv/lp/1/maxSoc:.* lp_1_maxSoc\
$DEVICETOPIC/config/get/pv/lp/1/minSocAlwaysToChargeToCurrent:.* lp_1_minSocAlwaysToChargeToCurrent\
$DEVICETOPIC/config/get/pv/lp/1/maxSocToChargeTo:.* lp_1_maxSocToChargeTo\
$DEVICETOPIC/config/get/pv/lp/1/minCurrent:.* lp_1_minCurrent\
$DEVICETOPIC/config/get/pv/lp/1/socLimitation:.* lp_1_socLimitation\
$DEVICETOPIC/config/get/pv/lp/2/minCurrent:.* lp_2_minCurrent\
$DEVICETOPIC/config/get/pv/lp/2/maxSoc:.* lp_2_maxSoc\
$DEVICETOPIC/config/get/pv/lp/2/socLimitation:.* lp_2_socLimitation\
$DEVICETOPIC/config/get/pv/socStopChargeAtMinPv:.* socStopChargeAtMinPv\
$DEVICETOPIC/config/get/pv/regulationPoint:.* regulationPoint\
$DEVICETOPIC/config/get/pv/minBatteryDischargeSocAtBattPriority:.* minBatteryDischargeSocAtBattPriority\
$DEVICETOPIC/config/get/pv/minBatteryChargePowerAtEvPriority:.* minBatteryChargePowerAtEvPriority\
$DEVICETOPIC/config/get/pv/minFeedinPowerBeforeStart:.* minFeedinPowerBeforeStart\
$DEVICETOPIC/config/get/pv/boolAdaptiveCharging:.* boolAdaptiveCharging\
$DEVICETOPIC/config/get/pv/adaptiveChargingFactor:.* adaptiveChargingFactor\
$DEVICETOPIC/config/get/pv/batteryDischargePowerAtBattPriority:.* batteryDischargePowerAtBattPriority\
$DEVICETOPIC/config/get/pv/boolShowPriorityIconInTheme:.* boolShowPriorityIconInTheme\
$DEVICETOPIC/config/get/pv/maxPowerConsumptionBeforeStop:.* maxPowerConsumptionBeforeStop\
$DEVICETOPIC/config/get/pv/stopDelay:.* stopDelay\
$DEVICETOPIC/config/get/pv/chargeSubmode:.* chargeSubmode\
$DEVICETOPIC/config/get/pv/minCurrentMinPv:.* minCurrentMinPv\
$DEVICETOPIC/config/get/pv/socStartChargeAtMinPv:.* socStartChargeAtMinPv\
$DEVICETOPIC/config/get/pv/startDelay:.* startDelay\
$DEVICETOPIC/config/get/sofort/lp/2/energyToCharge:.* lp_2_energyToCharge\
$DEVICETOPIC/config/get/sofort/lp/2/chargeLimitation:.* lp_2_chargeLimitation\
$DEVICETOPIC/config/get/sofort/lp/2/socToChargeTo:.* lp_2_socToChargeTo\
$DEVICETOPIC/config/get/sofort/lp/2/current:.* lp_2_current\
\
$DEVICETOPIC/config/get/sofort/lp/1/socToChargeTo:.* lp_1_socToChargeTo\
\
$DEVICETOPIC/config/get/sofort/lp/1/energyToCharge:.* lp_1_energyToCharge\
$DEVICETOPIC/config/get/sofort/lp/1/chargeLimitation:.* lp_1_chargeLimitation\
$DEVICETOPIC/config/get/sofort/lp/1/current:.* lp_1_current\
$DEVICETOPIC/config/get/global/minEVSECurrentAllowed:.* minEVSECurrentAllowed\
$DEVICETOPIC/config/get/global/maxEVSECurrentAllowed:.* maxEVSECurrentAllowed\
$DEVICETOPIC/config/get/global/dataProtectionAcknoledged:.* dataProtectionAcknoledged\
$DEVICETOPIC/config/get/global/slaveMode:.* slaveMode\
$DEVICETOPIC/config/get/u1p3p/standbyPhases:.* standbyPhases\
$DEVICETOPIC/config/get/u1p3p/sofortPhases:.* sofortPhases\
$DEVICETOPIC/config/get/u1p3p/nachtPhases:.* nachtPhases\
$DEVICETOPIC/config/get/u1p3p/minundpvPhases:.* minundpvPhases\
$DEVICETOPIC/config/get/u1p3p/nurpvPhases:.* nurpvPhases\
$DEVICETOPIC/config/get/u1p3p/isConfigured:.* isConfigured\
$DEVICETOPIC/boolChargeAtNight_standby:.* boolChargeAtNight_standby\
$DEVICETOPIC/set/system/reloadDisplay:.* reloadDisplay\
$DEVICETOPIC/set/system/topicSender:.* topicSender\
$DEVICETOPIC/set/lp/2/faultState:.* lp_2_faultState\
$DEVICETOPIC/set/lp/2/faultStr:.* lp_2_faultStr\
$DEVICETOPIC/set/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled
attr WB_1 room MQTT2_DEVICE,Strom->Photovoltaik
attr WB_1 setList Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');;qq($DEVICETOPIC/set/ChargeMode $h{$EVTPART1}) }\
DirectChargeSubMode:Aus,kWh_Laden,SoC_Laden { my %h=(Aus=>'0',kWh_Laden=>'1',SoC_Laden=>'2');;qq($DEVICETOPIC/set/lp1/DirectChargeSubMode $h{$EVTPART1}) }\
lp_1_socToChargeTo:50,60,70,80,90,100 { qq($DEVICETOPIC/config/set/sofort/lp/1/socToChargeTo $EVTPART1) }
attr WB_1 sortby 311
attr WB_1 stateFormat {\
my $YearBefore='LogDBRep_Statistic_previous_Year';;\
my $DUMMY  = "";;\
my $date = POSIX::strftime("%Y-%m-%d",localtime(time_str2num(ReadingsTimestamp($name, "lastlivevalues",0))));;\
\
my $ChargeMode          = ReadingsVal($name,"ChargeMode","n/a");;\
    $ChargeMode          = ($ChargeMode eq "SofortLaden")? "<span style='color:red'>SofortLaden</span>" : ($ChargeMode eq "MinPV")?  "<span style='color:orange'>Min+PV</span>" : ($ChargeMode eq "NurPV")?  "<span style='color:green'>NurPV</span>" : $ChargeMode;;\
\
my $lp_1_Name           = ReadingsVal($name,"lp_1_strChargePointName","n/a");;\
my $lp_1_Power          = ReadingsVal($name,"lp_1_W",0)." W";;\
my $lp_1_Power_1        = ReadingsVal($name,"lp_1_countPhasesInUse",0)."P ".ReadingsVal($name,"lp_1_AConfigured",0)."A";;\
my $lp_1_Status_1       = ReadingsVal($name,"lp_1_PlugStat","n/a")."<br>".ReadingsVal($name,"lp_1_ChargeStat","n/a");;\
my $lp_1_Status_2       = ReadingsVal($name,"lp_1_TimeRemaining","n/a");;\
\
my $lp_1_Power_d        = ReadingsVal($name,"lp_1_kWhDailyCharged",0)." kWh";;\
my $lp_1_Power_m        = round(ReadingsVal($name,"lp_1_kWhCounter_Month",0),0)." kWh";;\
my $lp_1_Power_j        = sprintf("%04d / %04d",ReadingsVal($name,"lp_1_kWhCounter_Year",0),ReadingsVal($YearBefore,"lp_1_kWhCounter_Year",0));;\
my $lp_1_Power_t        = round(ReadingsVal($name,"lp_1_kWhCounter",0),0)." kWh";;\
\
my $lp_2_Name           = ReadingsVal($name,"lp_2_strChargePointName","n/a");;\
my $lp_2_Power          = ReadingsVal($name,"lp_2_W",0)." W";;\
my $lp_2_Power_1        = ReadingsVal($name,"lp_2_countPhasesInUse",0)."P ".ReadingsVal($name,"lp_2_AConfigured",0)."A";;\
my $lp_2_Status_1       = ReadingsVal($name,"lp_2_PlugStat","n/a")."<br>".ReadingsVal($name,"lp_2_ChargeStat","n/a");;\
my $lp_2_Status_2       = "<br>".ReadingsVal($name,"lp_2_TimeRemaining","n/a");;\
\
my $lp_2_Power_d        = ReadingsVal($name,"lp_2_kWhDailyCharged",0)." kWh";;\
my $lp_2_Power_m        = round(ReadingsVal($name,"lp_2_kWhCounter_Month",0),0)." kWh";;\
my $lp_2_Power_j        = sprintf("%04d / %04d",ReadingsVal($name,"lp_2_kWhCounter_Year",0),ReadingsVal($YearBefore,"lp_2_kWhCounter_Year",0));;\
my $lp_2_Power_t        = round(ReadingsVal($name,"lp_2_kWhCounter",0),0)." kWh";;\
\
"<html><table border=2 bordercolor='darkgreen' cellspacing=0 style='width: 100%'>\
<colgroup>\
   <col span='1' style='width: 52%;;'>\
   <col span='1' style='width: 12%;;'>\
   <col span='1' style='width: 12%;;'>\
   <col span='1' style='width: 12%;;'>\
   <col span='1' style='width: 12%;;'>\
</colgroup>\
<tr><td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>Wallbox</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>$ChargeMode</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>Status</td><td style='padding-right:5px;;padding-left:5px;;text-align:center;;font-weight:bold'>Restladezeit</td><td style='padding-right:5px;;padding-left:5px;;text-align:center;;font-weight:bold'>Leistung</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>&nbsp;;&nbsp;;".$lp_1_Name."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$DUMMY."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Status_1."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Status_2."<br></td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power_1."<br>".$lp_1_Power."</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>&nbsp;;&nbsp;;".$lp_2_Name."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$DUMMY."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Status_1."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Status_2."<br></td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power_1."<br>".$lp_2_Power."</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>Statistik vom $date</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>aktuell</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>Heute</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>Monat</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>Jahr/Vorjahr</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>&nbsp;;&nbsp;;".$lp_1_Name."<td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power_d."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power_m."<br></td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power_j."</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>&nbsp;;&nbsp;;".$lp_2_Name."<td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power_d."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power_m."<br></td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power_j."</td></tr>\
</table>\
</html>"\
}
attr WB_1 userReadings lp_1_kWhCounter_Month:lp_1_kWhCounter.* {  round(ReadingsVal("$NAME","lp_1_kWhCounter",0) - ReadingsVal("$NAME","lp_1_kWhCounter_init_Month",0),0) },\
lp_1_kWhCounter_Year:lp_1_kWhCounter.* {  round(ReadingsVal("$NAME","lp_1_kWhCounter",0) - ReadingsVal("$NAME","lp_1_kWhCounter_init_Year",0),0)  },\
\
lp_2_kWhCounter_Month:lp_2_kWhCounter.* {  round(ReadingsVal("$NAME","lp_2_kWhCounter",0) - ReadingsVal("$NAME","lp_2_kWhCounter_init_Month",0),0) },\
lp_2_kWhCounter_Year:lp_2_kWhCounter.* {  round(ReadingsVal("$NAME","lp_2_kWhCounter",0) - ReadingsVal("$NAME","lp_2_kWhCounter_init_Year",0),0)  }


VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

papa

BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

kaiman

Hallo,

ich habe ein Problem, beim Einbinden der openWB in FHEM.

Zitat von: ch.eick am 12 Januar 2022, 13:53:17
Update 2022-01-12

Und hier nochmal das WB_1 MQTT Device, da es in einem anderen Thread auch angefragt wurde.

Hier die openWB mit zwei Ladepunkten, also eine ist Master, die ander Slave

snip


VG
   Christian

Ich habe wie im Wiki/OpenWB#Integration_der_openWB_in_FHEM_-_Ladeleistung_anzeigen_und_Umschalten_des_Lademodus beschrieben die openWB mit
defmod openwb MQTT <openWBip>:1883
attr openwb room Auto,MQTT
angelegt und die beiden LPs

wenn ich jetzt das defmod WB_1 MQTT2_DEVICE WB_1_MQTT2 Device anlegen will, bekomme ich immer diesen Fehler:

unknown IODev WB_1_MQTT2 specified

Irgnedwo muss ich etwas vergessen haben, oder?

Gruß

ch.eick

#40
Zitat von: kaiman am 06 März 2022, 20:20:10
Hallo,

ich habe ein Problem, beim Einbinden der openWB in FHEM.

Ich habe wie im Wiki/OpenWB#Integration_der_openWB_in_FHEM_-_Ladeleistung_anzeigen_und_Umschalten_des_Lademodus beschrieben die openWB mit
defmod openwb MQTT <openWBip>:1883
attr openwb room Auto,MQTT
angelegt und die beiden LPs

wenn ich jetzt das defmod WB_1 MQTT2_DEVICE WB_1_MQTT2 Device anlegen will, bekomme ich immer diesen Fehler:

unknown IODev WB_1_MQTT2 specified

Irgnedwo muss ich etwas vergessen haben, oder?

Gruß
Hallo Kaiman,
ich vermute, dass Du da zwei Beispiele/Muster mit einander kombinierst.

Das ist mein MQTT2_CLIENT
Achtung, falls Du "attr WB_1_MQTT2 autocreate yes" aktivieren solltest, wird die openWB Dich mit extrem vielen neuen readings bestrafen :-)

defmod WB_1_MQTT2 MQTT2_CLIENT 192.168.178.61:1883
attr WB_1_MQTT2 DbLogExclude .*
attr WB_1_MQTT2 autocreate no
attr WB_1_MQTT2 group PV Eigenverbrauch
attr WB_1_MQTT2 icon solar_icon
attr WB_1_MQTT2 room MQTT2_DEVICE
attr WB_1_MQTT2 sortby 312


Und dieses WallBox Device greift dann darauf zu.
In meinem Fall sind das dann aber zwei openWB als Ladepunkte konfiguriert.

defmod WB_1 MQTT2_DEVICE WB_1_MQTT2
attr WB_1 DbLogExclude .*
attr WB_1 DbLogInclude lp_1_.*,.*AllChargePoints.*,ChargeMode
attr WB_1 IODev WB_1_MQTT2
attr WB_1 alias WB_1
attr WB_1 autocreate 0
attr WB_1 comment Die openWB besteht aus zwei Ladepunkten.
attr WB_1 devicetopic openWB
attr WB_1 disable 0
attr WB_1 event-on-change-reading lp_1_.*,.*AllChargePoints.*,ChargeMode
attr WB_1 group PV Eigenverbrauch
attr WB_1 icon fuel
attr WB_1 readingList $DEVICETOPIC/global/WHouseConsumption:.* WHouseConsumption\
$DEVICETOPIC/global/WAllChargePoints:.* WAllChargePoints\
$DEVICETOPIC/global/ChargeMode:.* {my %h=(0=>'SofortLaden',1=>'MinPV',2=>'NurPV',3=>'Stop',4=>'Standby');; return {ChargeMode=>$h{$EVENT}}}\
\
$DEVICETOPIC/global/awattar/boolAwattarEnabled:.* boolAwattarEnabled\
$DEVICETOPIC/global/awattar/ActualPriceForCharging:.* ActualPriceForCharging\
$DEVICETOPIC/global/awattar/MaxPriceForCharging:.* MaxPriceForCharging\
$DEVICETOPIC/global/boolRse:.* boolRse\
$DEVICETOPIC/global/DailyYieldAllChargePointsKwh:.* DailyYieldAllChargePointsKwh\
$DEVICETOPIC/global/rfidConfigured:.* rfidConfigured\
$DEVICETOPIC/global/kWhCounterAllChargePoints:.* kWhCounterAllChargePoints\
$DEVICETOPIC/global/strLastmanagementActive:.* strLastmanagementActive\
$DEVICETOPIC/global/ETProvider/modulePath:.* modulePath\
$DEVICETOPIC/global/cpuTemp:.* cpuTemp\
\
$DEVICETOPIC/system/Uptime:.* Uptime\
$DEVICETOPIC/system/Date:.* Date\
$DEVICETOPIC/system/Timestamp:.* Timestamp\
$DEVICETOPIC/system/Version:.* Version\
$DEVICETOPIC/system/IpAddress:.* IpAddress\
$DEVICETOPIC/system/lastRfId:.* lastRfId\
$DEVICETOPIC/system/updateInProgress:.* updateInProgress\
$DEVICETOPIC/system/ConfiguredChargePoints:.* ConfiguredChargePoints\
$DEVICETOPIC/system/lastlivevalues:.* lastlivevalues\
$DEVICETOPIC/system/randomSleep:.* randomSleep\
$DEVICETOPIC/system/wizzardDone:.* wizzardDone\
$DEVICETOPIC/system/priceForKWh:.* priceForKWh\
$DEVICETOPIC/system/reloadDisplay:.* reloadDisplay\
\
$DEVICETOPIC/evu/ASchieflast:.* ASchieflast\
\
$DEVICETOPIC/lp/1/P%Soc:.* lp_1_Pct_Soc\
$DEVICETOPIC/lp/1/%Soc:.* lp_1_current_Soc\
$DEVICETOPIC/lp/1/\x25Soc:.* lp_1__Soc\
\
$DEVICETOPIC/lp/1/countPhasesInUse:.* lp_1_countPhasesInUse\
$DEVICETOPIC/lp/1/ChargePointEnabled:.* lp_1_ChargePointEnabled\
$DEVICETOPIC/lp/1/ChargeStatus:.* lp_1_ChargeStatus\
\
$DEVICETOPIC/lp/1/kWhDailyCharged:.* lp_1_kWhDailyCharged\
$DEVICETOPIC/lp/1/kWhCounter:.* lp_1_kWhCounter\
$DEVICETOPIC/lp/1/kWhActualCharged:.* lp_1_kWhActualCharged\
$DEVICETOPIC/lp/1/kWhChargedSincePlugged:.* lp_1_kWhChargedSincePlugged\
$DEVICETOPIC/lp/1/energyConsumptionPer100km:.* lp_1_energyConsumptionPer100km\
$DEVICETOPIC/lp/1/kmCharged:.* lp_1_kmCharged\
\
$DEVICETOPIC/lp/1/strChargePointName:.* lp_1_strChargePointName\
$DEVICETOPIC/lp/1/TimeRemaining:.* lp_1_TimeRemaining\
\
$DEVICETOPIC/lp/1/PfPhase2:.* lp_1_PfPhase2\
$DEVICETOPIC/lp/1/PfPhase3:.* lp_1_PfPhase3\
$DEVICETOPIC/lp/1/PfPhase1:.* lp_1_PfPhase1\
$DEVICETOPIC/lp/1/W:.* lp_1_W\
\
$DEVICETOPIC/lp/1/boolPlugStat:.* {my %h=(0=>'no Plug',1=>'Plugged in');; return {lp_1_PlugStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/1/boolChargeStat:.* {my %h=(0=>'not loading',1=>'loading');; return {lp_1_ChargeStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/1/AConfigured:.* lp_1_AConfigured\
\
$DEVICETOPIC/lp/1/boolChargePointConfigured:.* lp_1_boolChargePointConfigured\
$DEVICETOPIC/lp/1/boolSocConfigured:.* lp_1_boolSocConfigured\
$DEVICETOPIC/lp/1/boolDirectModeChargekWh:.* lp_1_boolDirectModeChargekWh\
$DEVICETOPIC/lp/1/boolDirectChargeModeSoc:.* lp_1_boolDirectChargeModeSoc\
$DEVICETOPIC/lp/1/boolFinishAtTimeChargeActive:.* lp_1_boolFinishAtTimeChargeActive\
$DEVICETOPIC/lp/1/boolChargeAtNight:.* lp_1_boolChargeAtNight\
$DEVICETOPIC/lp/1/boolSocManual:.* lp_1_boolSocManual\
\
$DEVICETOPIC/lp/1/AutolockStatus:.* lp_1_AutolockStatus\
$DEVICETOPIC/lp/1/AutolockConfigured:.* lp_1_AutolockConfigured\
\
$DEVICETOPIC/lp/1/lastRfId:.* lp_1_lastRfId\
$DEVICETOPIC/lp/1/pluggedladungakt:.* lp_1_pluggedladungakt\
$DEVICETOPIC/lp/1/plugStartkWh:.* lp_1_plugStartkWh\
$DEVICETOPIC/lp/1/MeterSerialNumber:.* lp_1_MeterSerialNumber\
\
\
$DEVICETOPIC/lp/2/P%Soc:.* lp_2_Pct_Soc\
$DEVICETOPIC/lp/2/%Soc:.* lp_2_current_Soc\
$DEVICETOPIC/lp/2/\x25Soc:.* lp_2__Soc\
\
$DEVICETOPIC/lp/2/countPhasesInUse:.* lp_2_countPhasesInUse\
$DEVICETOPIC/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled\
$DEVICETOPIC/lp/2/ChargeStatus:.* lp_2_ChargeStatus\
\
$DEVICETOPIC/lp/2/kWhDailyCharged:.* lp_2_kWhDailyCharged\
$DEVICETOPIC/lp/2/kWhCounter:.* lp_2_kWhCounter\
$DEVICETOPIC/lp/2/kWhActualCharged:.* lp_2_kWhActualCharged\
$DEVICETOPIC/lp/2/kWhChargedSincePlugged:.* lp_2_kWhChargedSincePlugged\
$DEVICETOPIC/lp/2/energyConsumptionPer100km:.* lp_2_energyConsumptionPer100km\
$DEVICETOPIC/lp/2/kmCharged:.* lp_2_kmCharged\
\
$DEVICETOPIC/lp/2/strChargePointName:.* lp_2_strChargePointName\
$DEVICETOPIC/lp/2/TimeRemaining:.* lp_2_TimeRemaining\
\
$DEVICETOPIC/lp/2/W:.* lp_2_W\
\
$DEVICETOPIC/lp/2/boolPlugStat:.* {my %h=(0=>'no Plug',1=>'Plugged in');; return {lp_2_PlugStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/2/boolChargeStat:.* {my %h=(0=>'not loading',1=>'loading');; return {lp_2_ChargeStat=>$h{$EVENT}}}\
$DEVICETOPIC/lp/2/AConfigured:.* lp_2_AConfigured\
\
$DEVICETOPIC/lp/2/boolChargePointConfigured:.* lp_2_boolChargePointConfigured\
$DEVICETOPIC/lp/2/boolSocConfigured:.* lp_2_boolSocConfigured\
$DEVICETOPIC/lp/2/boolDirectModeChargekWh:.* lp_2_boolDirectModeChargekWh\
$DEVICETOPIC/lp/2/boolDirectChargeModeSoc:.* lp_2_boolDirectChargeModeSoc\
$DEVICETOPIC/lp/2/boolFinishAtTimeChargeActive:.* lp_2_boolFinishAtTimeChargeActive\
$DEVICETOPIC/lp/2/boolChargeAtNight:.* lp_2_boolChargeAtNight\
$DEVICETOPIC/lp/2/boolSocManual:.* lp_2_boolSocManual\
\
$DEVICETOPIC/lp/2/AutolockStatus:.* lp_2_AutolockStatus\
$DEVICETOPIC/lp/2/AutolockConfigured:.* lp_2_AutolockConfigured\
\
$DEVICETOPIC/lp/2/lastRfId:.* lp_2_lastRfId\
$DEVICETOPIC/lp/2/pluggedladungakt:.* lp_2_pluggedladungakt\
$DEVICETOPIC/lp/2/plugStartkWh:.* lp_2_plugStartkWh\
$DEVICETOPIC/lp/2/MeterSerialNumber:.* lp_2_MeterSerialNumber\
\
\
$DEVICETOPIC/boolChargeAtNight_direct:.* boolChargeAtNight_direct\
$DEVICETOPIC/boolChargeAtNight_nurpv:.* boolChargeAtNight_nurpv\
$DEVICETOPIC/boolChargeAtNight_minpv:.* boolChargeAtNight_minpv\
$DEVICETOPIC/boolDisplayHouseConsumption:.* boolDisplayHouseConsumption\
$DEVICETOPIC/boolDisplayDailyCharged:.* boolDisplayDailyCharged\
$DEVICETOPIC/boolEvuSmoothedActive:.* boolEvuSmoothedActive\
$DEVICETOPIC/pv/bool70PVDynActive:.* bool70PVDynActive\
$DEVICETOPIC/pv/W70PVDyn:.* W70PVDyn\
$DEVICETOPIC/pv/bool70PVDynStatus:.* bool70PVDynStatus\
$DEVICETOPIC/pv/CounterTillStartPvCharging:.* CounterTillStartPvCharging\
$DEVICETOPIC/pv/W:.* W\
$DEVICETOPIC/config/get/pv/nurpv70dynact:.* nurpv70dynact\
$DEVICETOPIC/config/get/pv/nurpv70dynw:.* nurpv70dynw\
$DEVICETOPIC/config/get/pv/priorityModeEVBattery:.* priorityModeEVBattery\
$DEVICETOPIC/config/get/pv/lp/1/minSocAlwaysToChargeTo:.* lp_1_minSocAlwaysToChargeTo\
$DEVICETOPIC/config/get/pv/lp/1/maxSoc:.* lp_1_maxSoc\
$DEVICETOPIC/config/get/pv/lp/1/minSocAlwaysToChargeToCurrent:.* lp_1_minSocAlwaysToChargeToCurrent\
$DEVICETOPIC/config/get/pv/lp/1/maxSocToChargeTo:.* lp_1_maxSocToChargeTo\
$DEVICETOPIC/config/get/pv/lp/1/minCurrent:.* lp_1_minCurrent\
$DEVICETOPIC/config/get/pv/lp/1/socLimitation:.* lp_1_socLimitation\
$DEVICETOPIC/config/get/pv/lp/2/minCurrent:.* lp_2_minCurrent\
$DEVICETOPIC/config/get/pv/lp/2/maxSoc:.* lp_2_maxSoc\
$DEVICETOPIC/config/get/pv/lp/2/socLimitation:.* lp_2_socLimitation\
$DEVICETOPIC/config/get/pv/socStopChargeAtMinPv:.* socStopChargeAtMinPv\
$DEVICETOPIC/config/get/pv/regulationPoint:.* regulationPoint\
$DEVICETOPIC/config/get/pv/minBatteryDischargeSocAtBattPriority:.* minBatteryDischargeSocAtBattPriority\
$DEVICETOPIC/config/get/pv/minBatteryChargePowerAtEvPriority:.* minBatteryChargePowerAtEvPriority\
$DEVICETOPIC/config/get/pv/minFeedinPowerBeforeStart:.* minFeedinPowerBeforeStart\
$DEVICETOPIC/config/get/pv/boolAdaptiveCharging:.* boolAdaptiveCharging\
$DEVICETOPIC/config/get/pv/adaptiveChargingFactor:.* adaptiveChargingFactor\
$DEVICETOPIC/config/get/pv/batteryDischargePowerAtBattPriority:.* batteryDischargePowerAtBattPriority\
$DEVICETOPIC/config/get/pv/boolShowPriorityIconInTheme:.* boolShowPriorityIconInTheme\
$DEVICETOPIC/config/get/pv/maxPowerConsumptionBeforeStop:.* maxPowerConsumptionBeforeStop\
$DEVICETOPIC/config/get/pv/stopDelay:.* stopDelay\
$DEVICETOPIC/config/get/pv/chargeSubmode:.* chargeSubmode\
$DEVICETOPIC/config/get/pv/minCurrentMinPv:.* minCurrentMinPv\
$DEVICETOPIC/config/get/pv/socStartChargeAtMinPv:.* socStartChargeAtMinPv\
$DEVICETOPIC/config/get/pv/startDelay:.* startDelay\
$DEVICETOPIC/config/get/sofort/lp/2/energyToCharge:.* lp_2_energyToCharge\
$DEVICETOPIC/config/get/sofort/lp/2/chargeLimitation:.* lp_2_chargeLimitation\
$DEVICETOPIC/config/get/sofort/lp/2/socToChargeTo:.* lp_2_socToChargeTo\
$DEVICETOPIC/config/get/sofort/lp/2/current:.* lp_2_current\
\
$DEVICETOPIC/config/get/sofort/lp/1/socToChargeTo:.* lp_1_socToChargeTo\
\
$DEVICETOPIC/config/get/sofort/lp/1/energyToCharge:.* lp_1_energyToCharge\
$DEVICETOPIC/config/get/sofort/lp/1/chargeLimitation:.* lp_1_chargeLimitation\
$DEVICETOPIC/config/get/sofort/lp/1/current:.* lp_1_current\
$DEVICETOPIC/config/get/global/minEVSECurrentAllowed:.* minEVSECurrentAllowed\
$DEVICETOPIC/config/get/global/maxEVSECurrentAllowed:.* maxEVSECurrentAllowed\
$DEVICETOPIC/config/get/global/dataProtectionAcknoledged:.* dataProtectionAcknoledged\
$DEVICETOPIC/config/get/global/slaveMode:.* slaveMode\
$DEVICETOPIC/config/get/u1p3p/standbyPhases:.* standbyPhases\
$DEVICETOPIC/config/get/u1p3p/sofortPhases:.* sofortPhases\
$DEVICETOPIC/config/get/u1p3p/nachtPhases:.* nachtPhases\
$DEVICETOPIC/config/get/u1p3p/minundpvPhases:.* minundpvPhases\
$DEVICETOPIC/config/get/u1p3p/nurpvPhases:.* nurpvPhases\
$DEVICETOPIC/config/get/u1p3p/isConfigured:.* isConfigured\
$DEVICETOPIC/boolChargeAtNight_standby:.* boolChargeAtNight_standby\
$DEVICETOPIC/set/system/reloadDisplay:.* reloadDisplay\
$DEVICETOPIC/set/system/topicSender:.* topicSender\
$DEVICETOPIC/set/lp/2/faultState:.* lp_2_faultState\
$DEVICETOPIC/set/lp/2/faultStr:.* lp_2_faultStr\
$DEVICETOPIC/set/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled
attr WB_1 room MQTT2_DEVICE,Strom->Photovoltaik
attr WB_1 setList Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');;qq($DEVICETOPIC/set/ChargeMode $h{$EVTPART1}) }\
DirectChargeSubMode:Aus,kWh_Laden,SoC_Laden { my %h=(Aus=>'0',kWh_Laden=>'1',SoC_Laden=>'2');;qq($DEVICETOPIC/set/lp1/DirectChargeSubMode $h{$EVTPART1}) }\
lp_1_socToChargeTo:50,60,70,80,90,100 { qq($DEVICETOPIC/config/set/sofort/lp/1/socToChargeTo $EVTPART1) }\
priorityModeEVBattery:0,1 { qq($DEVICETOPIC/config/set/pv/priorityModeEVBattery $EVTPART1) }
attr WB_1 sortby 311
attr WB_1 stateFormat {\
my $YearBefore='LogDBRep_Statistic_previous_Year';;\
my $DUMMY  = "";;\
my $date = POSIX::strftime("%Y-%m-%d",localtime(time_str2num(ReadingsTimestamp($name, "lastlivevalues",0))));;\
\
my $ChargeMode          = ReadingsVal($name,"ChargeMode","n/a");;\
    $ChargeMode          = ($ChargeMode eq "SofortLaden")? "<span style='color:red'>SofortLaden</span>" : ($ChargeMode eq "MinPV")?  "<span style='color:orange'>Min+PV</span>" : ($ChargeMode eq "NurPV")?  "<span style='color:green'>NurPV</span>" : $ChargeMode;;\
\
my $lp_1_Name           = ReadingsVal($name,"lp_1_strChargePointName","n/a");;\
my $lp_1_Power          = ReadingsVal($name,"lp_1_W",0)." W";;\
my $lp_1_Power_1        = ReadingsVal($name,"lp_1_countPhasesInUse",0)."P ".ReadingsVal($name,"lp_1_AConfigured",0)."A";;\
my $lp_1_Status_1       = ReadingsVal($name,"lp_1_PlugStat","n/a")."<br>".ReadingsVal($name,"lp_1_ChargeStat","n/a");;\
my $lp_1_Status_2       = ReadingsVal($name,"lp_1_TimeRemaining","n/a");;\
\
my $lp_1_Power_d        = sprintf("%5.2f / %5.2f",ReadingsVal($name,"lp_1_kWhDailyCharged",0),ReadingsVal($name,"lp_1_kWhActualCharged",0));;\
my $lp_1_Power_m        = round(ReadingsVal($name,"lp_1_kWhCounter_Month",0),0);;\
my $lp_1_Power_j        = sprintf("%04d / %04d",ReadingsVal($name,"lp_1_kWhCounter_Year",0),ReadingsVal($YearBefore,"lp_1_kWhCounter_Year",0));;\
my $lp_1_Power_t        = round(ReadingsVal($name,"lp_1_kWhCounter",0),0);;\
\
my $lp_2_Name           = ReadingsVal($name,"lp_2_strChargePointName","n/a");;\
my $lp_2_Power          = ReadingsVal($name,"lp_2_W",0)." W";;\
my $lp_2_Power_1        = ReadingsVal($name,"lp_2_countPhasesInUse",0)."P ".ReadingsVal($name,"lp_2_AConfigured",0)."A";;\
my $lp_2_Status_1       = ReadingsVal($name,"lp_2_PlugStat","n/a")."<br>".ReadingsVal($name,"lp_2_ChargeStat","n/a");;\
my $lp_2_Status_2       = "<br>".ReadingsVal($name,"lp_2_TimeRemaining","n/a");;\
\
my $lp_2_Power_d        = sprintf("%5.2f / %5.2f",ReadingsVal($name,"lp_2_kWhDailyCharged",0),ReadingsVal($name,"lp_2_kWhActualCharged",0));;\
my $lp_2_Power_m        = round(ReadingsVal($name,"lp_2_kWhCounter_Month",0),0);;\
my $lp_2_Power_j        = sprintf("%04d / %04d",ReadingsVal($name,"lp_2_kWhCounter_Year",0),ReadingsVal($YearBefore,"lp_2_kWhCounter_Year",0));;\
my $lp_2_Power_t        = round(ReadingsVal($name,"lp_2_kWhCounter",0),0);;\
\
"<html><table border=2 bordercolor='darkgreen' cellspacing=0 style='width: 100%'>\
<colgroup>\
   <col span='1' style='width: 52%;;'>\
   <col span='1' style='width: 12%;;'>\
   <col span='1' style='width: 12%;;'>\
   <col span='1' style='width: 12%;;'>\
   <col span='1' style='width: 12%;;'>\
</colgroup>\
<tr><td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>Wallbox</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>$ChargeMode</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>Status</td><td style='padding-right:5px;;padding-left:5px;;text-align:center;;font-weight:bold'>Restladezeit</td><td style='padding-right:5px;;padding-left:5px;;text-align:center;;font-weight:bold'>Leistung</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>&nbsp;;&nbsp;;".$lp_1_Name."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$DUMMY."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Status_1."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Status_2."<br></td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power_1."<br>".$lp_1_Power."</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>&nbsp;;&nbsp;;".$lp_2_Name."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$DUMMY."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Status_1."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Status_2."<br></td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power_1."<br>".$lp_2_Power."</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;font-weight:bold'>Statistik vom $date im kWh</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>aktuell</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>Heute / letztes</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>Monat</td><td style='padding-right:5px;;padding-left:5px;;font-weight:bold;;text-align:center'>Jahr/Vorjahr</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>&nbsp;;&nbsp;;".$lp_1_Name."<td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power_d."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power_m."<br></td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_1_Power_j."</td></tr>\
<tr><td style='padding-right:5px;;padding-left:5px;;text-align:left;;font-weight:bold'>&nbsp;;&nbsp;;".$lp_2_Name."<td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power_d."</td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power_m."<br></td><td style='padding-right:5px;;padding-left:5px;;text-align:center'>".$lp_2_Power_j."</td></tr>\
</table>\
</html>"\
}
attr WB_1 userReadings lp_1_kWhCounter_Month:lp_1_kWhCounter.* {  round(ReadingsVal("$NAME","lp_1_kWhCounter",0) - ReadingsVal("$NAME","lp_1_kWhCounter_init_Month",0),0) },\
lp_1_kWhCounter_Year:lp_1_kWhCounter.* {  round(ReadingsVal("$NAME","lp_1_kWhCounter",0) - ReadingsVal("$NAME","lp_1_kWhCounter_init_Year",0),0)  },\
\
lp_2_kWhCounter_Month:lp_2_kWhCounter.* {  round(ReadingsVal("$NAME","lp_2_kWhCounter",0) - ReadingsVal("$NAME","lp_2_kWhCounter_init_Month",0),0) },\
lp_2_kWhCounter_Year:lp_2_kWhCounter.* {  round(ReadingsVal("$NAME","lp_2_kWhCounter",0) - ReadingsVal("$NAME","lp_2_kWhCounter_init_Year",0),0)  }\


Wenn Du dann noch ein E-Auto eingebunden hast, habe ich für einen eNiro bereits auch ein Beispiel, bei dem dann in einem DOIF mit uiTable die Basis Bedienung der WallBox
eingebunden ist. Das ist dann das zweite Bild und dort insbesondere die unterste Zeile, bei der man den Lademodus aktiviert.
Für einen Kostal Plenticore Wechselrichter mit Speicher habe ich das Abschalten des Hausspeichers beim E-Auto Laden auch bereits als Muster. Im Bild ist nur die Speicher Steuerung, da die Verriegelung im Hintergrung geschieht.
Für andere Speicher würde ich Euch das auch empfehlen, da ein Umspeichern vom Hausspeicher in den Autospeicher nicht sehr wirtschaftlich ist.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

Der Wiki-Artikel ist zumindest mißverständlich; das liest sich so, als wäre in Empfangsrichtung ein IO vom TYPE=MQTT erforderlich, und zum Senden dann eines vom TYPE=MQTT2_CLIENT.

Aus das mit dem openwb_ueberschuss-dummy kommt mir irgendwie ziemlich umständlich vor. (schon klar, dass zwei publishes nicht ganz so einfach umzusetzen sind, aber auch das geht direkt mit MQTT2_DEVICE).
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

ch.eick

Zitat von: Beta-User am 07 März 2022, 13:37:35
Der Wiki-Artikel ist zumindest mißverständlich; das liest sich so, als wäre in Empfangsrichtung ein IO vom TYPE=MQTT erforderlich, und zum Senden dann eines vom TYPE=MQTT2_CLIENT.

Aus das mit dem openwb_ueberschuss-dummy kommt mir irgendwie ziemlich umständlich vor. (schon klar, dass zwei publishes nicht ganz so einfach umzusetzen sind, aber auch das geht direkt mit MQTT2_DEVICE).
Ich hatte schon das mit der komplexeren Konfiguration im Wiki ergänzt.
Der Rest war nicht von mir und ich wollte es nicht einfach umschreiben.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

...war nur meine Meinung...

Kann zwar verstehen, dass Skrupel bestehen, an "fremdem" Text rumzubasteln, aber die Alternative ist eben, dass
- Leute sich wundern, warum Anleitungen (vermeintlich) nicht funktionieren;
- sich NET::MQTT::simple aus cpan reinziehen, obwohl das nicht mal für 00_MQTT erforderlich ist.

Ich kann zwar einen allgemeinen Hinweis reinbasteln, dass MQTT (alt) weder erforderlich noch empfohlen ist, aber eben nicht so einfach ein "Einfach-MQTT2_DEVICE" als Alternative reinpacken... Das wäre ungetestet ;) .
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

kaiman

#44
Hi,

danke @christian. Es funzt jetzt.

Mir ist jetzt nur aufgefallen, dass beim LP2 die Statistik Monat und Jahr nicht geschrieben werden. Bei LP1 klappt das.

ch.eick

#45
Hallo zusammen,
der Christian is ma widder am basteln dran, am tun :-)

Ich hatte einen Tag, an dem die 70% Abregelung zugeschlagen hat, obwohl schon alle must have Geräte bewust in der Mittagzeit liefen :-(
Zusätzlich hatte ich an dem Tag auch das BEV von 20 auf 80% geladen, was jedoch bei meinem Überschuss sehr schnell ging.

Die Ideee ist nun, da ich bereits alle Trigger dazu habe, das BEV mit berechneter Leistung über eine längere Zeit im Mittagshoch zu laden und den Rest Überschuss weiterhin ins Netz zu liefern.
Darüber hinaus würde die dynamische 70% Regelung des Kostal Plenticore noch zusätzlich Leistung liefern.

Um dies nun umzusetzen möchte ich die "70% beachten" der openWB verwenden. Diese Einstellung würde jedoch bei fester Einstellung jedes mal wirken und somit das normale Überschussladen einschränken. Deshalb möchte ich es entsprechend meiner WR Leistungsprognose aktivieren und deaktivieren.

Relevante MQTT Register in readingList

für die Konfiguration:
$DEVICETOPIC/config/get/pv/nurpv70dynact:.* nurpv70dynact
$DEVICETOPIC/config/get/pv/nurpv70dynw:.* nurpv70dynw
$DEVICETOPIC/config/set/pv/nurpv70dynact:.* nurpv70dynact
$DEVICETOPIC/config/set/pv/nurpv70dynw:.* nurpv70dynw

nurpv70dynact 1
nurpv70dynw 4000

Dieser Teil, der sich auf die konfiguration bezieht funktioniert schon mal richtig. Mit nurpv70dynw kann man den Schwellwert der Leistung beliebig verändern und es wirkt sich sofort auf den nächsten Regelzyklus aus.

für die aktive Anzeige:
$DEVICETOPIC/pv/bool70PVDynActive:.* bool70PVDynActive
$DEVICETOPIC/pv/bool70PVDynStatus:.* bool70PVDynStatus
$DEVICETOPIC/set/pv/NurPV70Status:.* bool70PVDynStatus

bool70PVDynActive 1
bool70PVDynStatus 1

An diesen beiden Registern erkennt man die aktuelle Einstellung, auch wenn am Display das "70% beachten" verändert wurde.


SetList

nurpv70dynact:0,1 { qq($DEVICETOPIC/config/set/pv/nurpv70dynact $EVTPART1) }
nurpv70dynw { qq($DEVICETOPIC/config/set/pv/nurpv70dynw $EVTPART1) }

bool70PVDynStatus:0,1 { qq($DEVICETOPIC/set/pv/NurPV70Status $EVTPART1) }


Das kleine Problem ist nun jedoch das ferngesteuerte bedienen der Schaltfläche "70% beachten", denn der Zustand wird über "$DEVICETOPIC/pv/bool70PVDynStatus:.* bool70PVDynStatus" signalisiert, das aktivieren geht jedoch über $DEVICETOPIC/set/pv/NurPV70Status:.*
Damit ich nun nicht zwei Definitionen habe, habe ich es auf das selbe reading bool70PVDynStatus gelegt. Allerdings scheint nun zwischen dem Wechsel von 0 und 1 noch zusätzlich ein Blank zu entstehen.

Die Frage ist nun, ob ich das mit dem MQTT richtig gemacht habe, oder wie es besser implementiert werden kamm. MQTT verwende ich momentan eher Empirisch :-)

Hier noch die Code Passage, wo das wohl programmiert ist:
https://github.com/snaptec/openWB/blob/1ceaeee579545ab69b6136ace27be514c5ccbe32/runs/mqttsub.py#L1175

            if (msg.topic == "openWB/set/pv/NurPV70Status"):
                if (int(msg.payload) >= 0 and int(msg.payload) <= 1):
                    client.publish("openWB/pv/bool70PVDynStatus", msg.payload.decode("utf-8"), qos=0, retain=True)
                    f = open('/var/www/html/openWB/ramdisk/nurpv70dynstatus', 'w')
                    f.write(msg.payload.decode("utf-8"))
                    f.close()

Demnach ist der Name für das Setzen und die Signalisierung im MQTT unterschiedlich definiert, aber davon verstehe ich zu wenig...

EDIT: Hier noch die Events, wo man sogar das Blank Event auch sehen kann

2022-06-30 09:38:56.559 MQTT2_DEVICE WB_1 bool70PVDynStatus: 1
2022-06-30 09:38:56.595 MQTT2_DEVICE WB_1 bool70PVDynStatus:
2022-06-30 09:39:01.183 MQTT2_DEVICE WB_1 bool70PVDynStatus: 1


EDIT 20220702 : Heute war der erste Tag für einen Testmit 70% beachten.
Im Diagramm sieht man sehr schön, wie die Ladezeit sich verlängert hat und wie während der Zeit noch ins Netz eingespeist wurde.
BEV ist lila und die schwarze Fläche bis zur blauem Linie geht ins Netz, oder in den Hausspeicher.
Nun werde ich nurpv70dynw dynamisch mit dem Verbrauch der anderen Starkverbraucher verändern, damit während deren Laufzeit nicht die Ladeleistung unnötig verringert wird.
rot ist die LWWP, gelb der Wirlpool, grün die Brunnen Pumpe und rose die Waschmaschiene.
Dadurch wird die Ladekurve zwischen 14 und 15 Uhr gleichmäßiger.

Über eine Hilfe zum MQTT würde ich mich nach wie vor freuen, ansonsten ziehe ich natürlich mit dem Thema Eigenverbrauch und BEV Laden in einen anderen Thread um ;-)

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

#46
Hmm, nachdem bisher keiner geantwortet hat, der sowas hat, hier mal der Versuch, das von der theoretischen Seite her anzugehen...

Zitat von: ch.eick am 30 Juni 2022, 09:17:52
Relevante MQTT Register in readingList

$DEVICETOPIC/config/get/pv/nurpv70dynact:.* nurpv70dynact
$DEVICETOPIC/config/get/pv/nurpv70dynw:.* nurpv70dynw
$DEVICETOPIC/config/set/pv/nurpv70dynact:.* nurpv70dynact
$DEVICETOPIC/config/set/pv/nurpv70dynw:.* nurpv70dynw


[...]

für die aktive Anzeige:
$DEVICETOPIC/pv/bool70PVDynActive:.* bool70PVDynActive
$DEVICETOPIC/pv/bool70PVDynStatus:.* bool70PVDynStatus
$DEVICETOPIC/set/pv/NurPV70Status:.* bool70PVDynStatus

[...]
Die Frage ist nun, ob ich das mit dem MQTT richtig gemacht habe, oder wie es besser implementiert werden kamm. MQTT verwende ich momentan eher Empirisch :-)
MAn. ist es ein logischer Fehler, wenn man die eigenen "set" (oder "get")-Anweisungen über die readingList auswertet. Mit MQTT2_SERVER sollte das (ohne explizit gesetztes Attribut rePublish) auch gar nicht funktionieren.

ZitatDemnach ist der Name für das Setzen und die Signalisierung im MQTT unterschiedlich definiert, aber davon verstehe ich zu wenig...
Es sollte idealtypischerweise nach meinem Verständnis immer so sein, dass die Anweisung und das Ergebnis auf unterschiedlichen Topics gesendet bzw. empfangen werden. Sonst hätte man "Schleifengefahr".

Da anscheinend zwischendurch eine leere Payload gesendet wird, müßtest/könntest du die rausfiltern, Kurzanleitung wäre zu finden in https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt#Bedingte_Hash-R.C3.BCckgaben.

Hier könnte man evtl. mit einer length-Abfrage (für $EVENT (das steht für die payload)) die leeren Werte rausfiltern?

EDIT: Wenn du die Änderungen/Anweisungen von FHEM aus direkt in den Reading-Werten sehen willst, müßtest du setStateList auf "irgendwas" setzen. Dann werden die Reading-Werte aber erst zu "set_1" etc., bis die Rückmeldung von der Gegenseite kommt. Willst du hier vermutlich eher nicht.
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

ch.eick

Zitat von: Beta-User am 04 Juli 2022, 09:57:02
Hmm, nachdem bisher keiner geantwortet hat, der sowas hat, hier mal der Versuch, das von der theoretischen Seite her anzugehen...
MAn. ist es ein logischer Fehler, wenn man die eigenen "set" (oder "get")-Anweisungen über die readingList auswertet. Mit MQTT2_SERVER sollte das (ohne explizit gesetztes Attribut rePublish) auch gar nicht funktionieren.
Okay, da kenne ich mich im MQTT zuwenig aus. Ich habe das jetzt dann mal empirisch bereinigt.
In der readingList wären dann diese topics

bool* liefert den Zustand der Konfiguration zurück und ist nur als reading eingetragen
$DEVICETOPIC/pv/bool70PVDynActive:.* bool70PVDynActive
$DEVICETOPIC/pv/bool70PVDynStatus:.* bool70PVDynStatus

Diese beiden Topics werden auch nur gelesen und zeigen den aktuellen Zustand
$DEVICETOPIC/config/get/pv/nurpv70dynact:.* nurpv70dynact
$DEVICETOPIC/config/get/pv/nurpv70dynw:.* nurpv70dynw

Zum setzen habe ich dann in der ssetList folgendes

Hier wird ein Schwellwert für die 70% gesetzt
nurpv70dynw { qq($DEVICETOPIC/config/set/pv/nurpv70dynw $EVTPART1) }

Und hier wird das "70%_beachten" im Untermenü aktiviert, damit die Konfiguration mit dem Regeln beginnt.
NurPV70Status:0,1 { qq($DEVICETOPIC/set/pv/NurPV70Status $EVTPART1) }

Die Rückmeldung erfolgt dann über nurpv70dynact bei der readingList.


Zitat
Es sollte idealtypischerweise nach meinem Verständnis immer so sein, dass die Anweisung und das Ergebnis auf unterschiedlichen Topics gesendet bzw. empfangen werden. Sonst hätte man "Schleifengefahr".
Das wäre dann mit der obigen Einstellung gegeben :-)

Zitat
Da anscheinend zwischendurch eine leere Payload gesendet wird, müßtest/könntest du die rausfiltern, Kurzanleitung wäre zu finden in https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt#Bedingte_Hash-R.C3.BCckgaben.

Hier könnte man evtl. mit einer length-Abfrage (für $EVENT (das steht für die payload)) die leeren Werte rausfiltern?

EDIT: Wenn du die Änderungen/Anweisungen von FHEM aus direkt in den Reading-Werten sehen willst, müßtest du setStateList auf "irgendwas" setzen. Dann werden die Reading-Werte aber erst zu "set_1" etc., bis die Rückmeldung von der Gegenseite kommt. Willst du hier vermutlich eher nicht.
Diesen Teil habe ich jetzt noch nicht verfolgt, da ich zuerst die Trennung machen wollte.

Bei der Verarbeitung det Events im DOIF habe ich jetzt von einer Nummerischen Abfrage mit "==" auf einen Text Vergleich mit "eq" gewechselt. Dadurch kommen dann im Perl auch keine Warnungen bei nicht Nummerischen Werten wie Blank oder leerer String.

Sollte es da noch weitere Probleme geben melde ich mich nochmal mit den dann neuen Meldungen ;-)

VG
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

Kurz zu
ZitatDie Rückmeldung erfolgt dann über nurpv70dynact bei der readingList.
MAn. sollten setter und Readings möglichst gleich heißen, damit der Zusammenhang für den User besser erkennbar ist. Ich würde daher die setList anpassen.
ZitatDiese beiden Topics werden auch nur gelesen und zeigen den aktuellen Zustand
$DEVICETOPIC/config/get/pv/nurpv70dynact:.* nurpv70dynact
$DEVICETOPIC/config/get/pv/nurpv70dynw:.* nurpv70dynw
Topics mit sowas wie 'config/get/' sehen für mich immer nach Senderichtung aus und sind Kandidaten für getList. Habe daher arge Zweifel, ob das richtig ist!
getList ist "das schwierigste" der drei Attribute, falls du eine Beschreibung hast, wie der Kreislauf ist und welche Werte da wie zusammenpassen, kann ich ggf. weiterhelfen...
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

ch.eick

Zitat von: Beta-User am 06 Juli 2022, 14:06:28
Kurz zu MAn. sollten setter und Readings möglichst gleich heißen, damit der Zusammenhang für den User besser erkennbar ist.
Die Verwirrung entsteht bei mir daraus, dass die openWB beim set das NurPV70Status im Toping erwartet. Deshalb hatte ich es auch so benannt.

NurPV70Status:0,1 { qq($DEVICETOPIC/set/pv/NurPV70Status $EVTPART1) }

Nach Deinem Hinweis würde dann das daraus
nurpv70dynact:0,1 { qq($DEVICETOPIC/set/pv/NurPV70Status $EVTPART1) }


Zitat
Ich würde daher die setList anpassen.Topics mit sowas wie 'config/get/' sehen für mich immer nach Senderichtung aus und sind Kandidaten für getList. Habe daher arge Zweifel, ob das richtig ist!
getList ist "das schwierigste" der drei Attribute, falls du eine Beschreibung hast, wie der Kreislauf ist und welche Werte da wie zusammenpassen, kann ich ggf. weiterhelfen...
Das steht alles in der readingList und habe ich aus dem openWB MQTT Device so übernommen.
Was wäre denn der Unterschied zwischen der readingList und der getList ?
Mein Verständnis wäre, alles was die openWB von sich aus sendet gehört in die readingList .

Danke für Deine unermüdliche Hilfe

VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

ZitatNach Deinem Hinweis würde dann das daraus
nurpv70dynact:0,1 { qq($DEVICETOPIC/set/pv/NurPV70Status $EVTPART1) }
Vermutlich geht es auch einfacher, den Ausflug nach Perl kann man sich m.E. hier sparen:
nurpv70dynact:0,1 $DEVICETOPIC/set/pv/NurPV70Status $EVTPART1
Zitat von: ch.eick am 06 Juli 2022, 15:27:24
Das steht alles in der readingList und habe ich aus dem openWB MQTT Device so übernommen.
Was wäre denn der Unterschied zwischen der readingList und der getList ?
Mein Verständnis wäre, alles was die openWB von sich aus sendet gehört in die readingList .
Letzteres ist prinzipiell richtig, ich habe hier nur (wegen der komischen Namensgebung in den Topics) den Eindruck, dass da ein externer Server am Werk ist (also MQTT2_CLIENT als IO-Modul im Einsatz ist)? Dann bekommt man nämlich auch die eigenen Messages zurück, und nicht nur das, was die Gegenseite "von sich aus" sendet...

Ansonsten ist getList eher mit setList verwandt, man hat darüber halt die Option, asynchron was bei der Gegenstelle abzufragen.
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

ch.eick

Zitat von: Beta-User am 06 Juli 2022, 15:45:35
Vermutlich geht es auch einfacher, den Ausflug nach Perl kann man sich m.E. hier sparen:
nurpv70dynact:0,1 $DEVICETOPIC/set/pv/NurPV70Status $EVTPART1
Okay, dass kann ich testen, ich mag keine Umwege :-)

Zitat
Letzteres ist prinzipiell richtig, ich habe hier nur (wegen der komischen Namensgebung in den Topics) den Eindruck, dass da ein externer Server am Werk ist (also MQTT2_CLIENT als IO-Modul im Einsatz ist)? Dann bekommt man nämlich auch die eigenen Messages zurück, und nicht nur das, was die Gegenseite "von sich aus" sendet...

Ansonsten ist getList eher mit setList verwandt, man hat darüber halt die Option, asynchron was bei der Gegenstelle abzufragen.

Hiel mal ein gekürztes List der openWB und des MQTT2_CLIENT
Das Konstrukt habe ich aus dem Wiki und dem Forum, da ich MQTT erst noch lernen muss.

Internals:
   BUF       
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        192.168.178.61:1883
   DeviceName 192.168.178.61:1883
   FD         17
   FUUID      616c669b-f33f-61a8-e225-0e4ee6dcabf5155c
   FVERSION   00_MQTT2_CLIENT.pm:0.260550/2022-05-17
   NAME       WB_1_MQTT2
   NR         472
   PARTIAL   
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   WB_1_MQTT2
   eventCount 10
   lastMsgTime 1657118963.05161
   nextOpenDelay 5
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2022-06-30 15:13:04   state           opened
Attributes:
   DbLogExclude .*
   autocreate no
   group      PV Eigenverbrauch
   icon       solar_icon
   room       MQTT2_DEVICE
   sortby     312


=========================================================================

Internals:
   CID        WB_1_MQTT2
   DEF        WB_1_MQTT2
   FUUID      616c669b-f33f-61a8-f109-302fc3709d956d55
   FVERSION   10_MQTT2_DEVICE.pm:0.258890/2022-03-27
   IODev      WB_1_MQTT2
   LASTInputDev WB_1_MQTT2
   MSGCNT     2632404
   NAME       WB_1
   NR         473
   STATE      <html><table border=2 bordercolor='darkgreen' cellspacing=0 style='width: 100%'>

< snip >

</html>
   TYPE       MQTT2_DEVICE
   WB_1_MQTT2_MSGCNT 2632404
   WB_1_MQTT2_TIME 2022-07-06 16:43:37
   eventCount 44468
   Helper:
     DBLOG:
       ChargeMode:
         LogDB:
           TIME       1657101638.90532
           VALUE      NurPV
       DailyYieldAllChargePointsKwh:
         LogDB:
           TIME       1657116612.47068
           VALUE      24.01

< snip >

       lp_1_pluggedladungakt:
         LogDB:
           TIME       1657089505.75644
           VALUE      1
   OLDREADINGS:
   READINGS:
     2022-07-06 16:42:10   ASchieflast     2
     2022-06-30 15:13:04   ActualPriceForCharging 0
     2022-07-06 12:08:54   ChargeMode      NurPV
     2022-06-30 15:13:04   ConfiguredChargePoints 2

< snip >

     2022-07-06 12:12:57   topicSender     
     2022-06-30 15:13:04   updateInProgress 0
     2022-06-30 15:13:04   wizzardDone     100
Attributes:
   DbLogExclude .*
   DbLogInclude lp_1_.*,.*AllChargePoints.*,ChargeMode
   IODev      WB_1_MQTT2
   alias      WB_1
   autocreate 0
   comment    Die openWB besteht aus zwei Ladepunkten.
   devicetopic openWB
   disable    0
   event-on-change-reading lp_1_.*,.*AllChargePoints.*,ChargeMode,bool70.*
   group      PV Eigenverbrauch
   icon       fuel
   readingList $DEVICETOPIC/global/WHouseConsumption:.* WHouseConsumption
$DEVICETOPIC/global/WAllChargePoints:.* WAllChargePoints
$DEVICETOPIC/global/ChargeMode:.* {my %h=(0=>'SofortLaden',1=>'MinPV',2=>'NurPV',3=>'Stop',4=>'Standby'); return {ChargeMode=>$h{$EVENT}}}

$DEVICETOPIC/global/awattar/boolAwattarEnabled:.* boolAwattarEnabled

< ganz viel raus geschnitten, weil die openWB ist echt geschwätzig :-) >


$DEVICETOPIC/set/system/reloadDisplay:.* reloadDisplay
$DEVICETOPIC/set/system/topicSender:.* topicSender
$DEVICETOPIC/set/lp/2/faultState:.* lp_2_faultState
$DEVICETOPIC/set/lp/2/faultStr:.* lp_2_faultStr
$DEVICETOPIC/set/lp/2/ChargePointEnabled:.* lp_2_ChargePointEnabled


   room       MQTT2_DEVICE,Strom->Photovoltaik
   setList    Lademodus:SofortLaden,Min+PV,NurPV,Stop,Standby { my %h=(SofortLaden=>'0','Min+PV'=>'1',NurPV=>'2',Stop=>'3',Standby=>'4');qq($DEVICETOPIC/set/ChargeMode $h{$EVTPART1}) }
DirectChargeSubMode:Aus,kWh_Laden,SoC_Laden { my %h=(Aus=>'0',kWh_Laden=>'1',SoC_Laden=>'2');qq($DEVICETOPIC/set/lp1/DirectChargeSubMode $h{$EVTPART1}) }
lp_1_socToChargeTo:50,60,70,80,90,100 { qq($DEVICETOPIC/config/set/sofort/lp/1/socToChargeTo $EVTPART1) }
priorityModeEVBattery:0,1 { qq($DEVICETOPIC/config/set/pv/priorityModeEVBattery $EVTPART1) }

nurpv70dynact:0,1 { qq($DEVICETOPIC/config/set/pv/nurpv70dynact $EVTPART1) }
nurpv70dynw { qq($DEVICETOPIC/config/set/pv/nurpv70dynw $EVTPART1) }

NurPV70Status:0,1 { qq($DEVICETOPIC/set/pv/NurPV70Status $EVTPART1) }
   sortby     311
   stateFormat {

< snip >

}
   userReadings lp_1_kWhCounter_Month:lp_1_kWhCounter.* {  round(ReadingsVal("$NAME","lp_1_kWhCounter",0) - ReadingsVal("$NAME","lp_1_kWhCounter_init_Month",0),0) },
lp_1_kWhCounter_Year:lp_1_kWhCounter.* {  round(ReadingsVal("$NAME","lp_1_kWhCounter",0) - ReadingsVal("$NAME","lp_1_kWhCounter_init_Year",0),0)  },

lp_2_kWhCounter_Month:lp_2_kWhCounter.* {  round(ReadingsVal("$NAME","lp_2_kWhCounter",0) - ReadingsVal("$NAME","lp_2_kWhCounter_init_Month",0),0) },
lp_2_kWhCounter_Year:lp_2_kWhCounter.* {  round(ReadingsVal("$NAME","lp_2_kWhCounter",0) - ReadingsVal("$NAME","lp_2_kWhCounter_init_Year",0),0)  }
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

OK, also richtig geraten 8) : Es ist ein MQTT2_CLIENT am Werk....

Dann solltest du dir mal https://wiki.fhem.de/wiki/MQTT2_CLIENT#ignoreRegexp ansehen. Da muss m.E. (neben den dort genannten "sonstigen" Kommando- und "autoconfigure"-Bausteichen) dann noch ein Schnippsel rein, der in etwa so aussieht:
<DEVICETOPIC>/(set|/config/[gs]et)
Wobe eben <DEVICETOPIC> hier durch die passende Angabe in Klartext zu setzen wäre.

(Im MQTT-Bereich ist es meistens einfacher, mit raw-listings zu arbeiten).
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

ch.eick

Zitat von: Beta-User am 06 Juli 2022, 17:04:48
OK, also richtig geraten 8) : Es ist ein MQTT2_CLIENT am Werk....

Dann solltest du dir mal https://wiki.fhem.de/wiki/MQTT2_CLIENT#ignoreRegexp ansehen. Da muss m.E. (neben den dort genannten "sonstigen" Kommando- und "autoconfigure"-Bausteichen) dann noch ein Schnippsel rein, der in etwa so aussieht:
<DEVICETOPIC>/(set|/config/[gs]et)
Wobe eben <DEVICETOPIC> hier durch die passende Angabe in Klartext zu setzen wäre.

(Im MQTT-Bereich ist es meistens einfacher, mit raw-listings zu arbeiten).
Wie kann ich den den MQTT2_CLIENT weg lassen? Was ich nicht brauche macht auch keine Probleme :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Beta-User

Zitat von: ch.eick am 06 Juli 2022, 17:36:16
Wie kann ich den den MQTT2_CLIENT weg lassen? Was ich nicht brauche macht auch keine Probleme :-)
Wenn ich das richtig im Kopf habe, befindet sich der Server auf der Wallbox => du brauchst MQTT2_CLIENT, aber du solltest es richtig konfigurieren. Also nur abbonieren, was du auch brauchst bzw. verwerfen, was "Unsinn" ist (die eigenen Befehle fallen in diese Kategorie). "verwerfen" = ignoreRegexp entsprechend setzen, wobei es dann ausreicht, den Schnippsel "solo" zu verwenden, da ja keine anderen Geräte mit diesem (externen) Server auf der Box sprechen.
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

ch.eick

Zitat von: Beta-User am 06 Juli 2022, 17:43:42
Wenn ich das richtig im Kopf habe, befindet sich der Server auf der Wallbox => du brauchst MQTT2_CLIENT, aber du solltest es richtig konfigurieren. Also nur abbonieren, was du auch brauchst bzw. verwerfen, was "Unsinn" ist (die eigenen Befehle fallen in diese Kategorie). "verwerfen" = ignoreRegexp entsprechend setzen, wobei es dann ausreicht, den Schnippsel "solo" zu verwenden, da ja keine anderen Geräte mit diesem (externen) Server auf der Box sprechen.
Na super, da habe ich schon wieder etwas was ich noch lernen muss :-)

Vielen Dank für die vielen Anregungen
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

MichaelO

Moin,
weil ich gerade gesehen habe (auch wenn schon älter)... wenn man per set den Lademodus von Sofortladen auf einen anderen wechselt und man zusätzlich preisbasiertes Laden nutzt, muss man noch die Freigabe der konfigurierten LP beachten.

Hintergrund ist: In der Version 1.9x wird bei Überschreitung des maximal erlaubten Preises nicht der Strom an den LP reduziert, sondern der LP wird gesperrt. Fällt der Preis unter die Grenze, wird er wieder freigegeben. Das ist ein recht unglückliches Verhalten, soll aber erst mit der Version 2.x geändert werden. Wenn nun wegen zu hohem Preis die LP gesperrt sind, und man dann den Modus wechselt, bleibt die Sperrung erhalten. Hab da an der Box selbst schon mehrfach am Abend blöd da gestanden, weil kein PV geladen wurde, weil ich das übersehen hatte.

Dazu habe ich gerade gestern eine Lösung an openWB geschickt, die bei gesperrten LP und Umschaltung durch Klick auf den Button in einen anderen Modus fragt, ob entsperrt werden soll. Ob das angenommen wird, weiß ich nicht, habs bei mir in einem extra Theme laufen. Wichtig ist: Wenn man den Modus per MQTT umschaltet, passiert nichts mit evtl. gesperrten LP, die muss man dann selbst freigeben.
Gruß
Michael