ems-esp MQTT

Begonnen von moustic999, 01 November 2019, 23:23:52

Vorheriges Thema - Nächstes Thema

Beta-User

OK, so basically: What's the meaning of
bridgeRegexp heating_system/ems-esp/(sensors|sm_data|hp_data|thermostat_data).*:.* "ems_esp_$1"
  heating_system/ems-esp/(boiler_data|tapwater_active|heating_active|mixing_data|shower_data).*:.* "ems_esp_boiler"

The first line maps any of "sensors"... Topic tree endings to a seperate device, $1 in the end just stands for the matched alternative. Could be written also in seperate lines like
heating_system/ems-esp/sensors.*:.* "ems_esp_sensors"ems_esp_sensors (or ems_esp_$1, which first has t be evaluated) just stands for the CID of the MQTT2_DEVICE.

Information prosessing is as follwos: First step for MQTT2_DEVICE  is to check wheather there's any device existent matching the topic-tree. (Only!) if not, autocreate@MQTT2_DEVICE (if it's turned on @IO level!) in general will first look if there's already any device with that CID, and if not, it will autocreate it (TYPE=autocreate must also be active for that to work). If the target devicce exists already, the readingList argument will be extended, unless the device's autocreate attribute is set to 0 (then the info will be ignored).

Second line maps the enumerated topic tree endings to the device with CID "ems_esp_boiler". So basic summary:
To seperate these also, just move the item from line 2 to line 1 and clear readingList attribute in the first taget device accordingly ;) .
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

grappa24

new draft version of ems-esp glossary ...
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

moustic999

I think the template is quite good for basic use ( control of heating, sensors logging )
however I think it would be really great to create proper thermostats where there are multiple (hc1, hc2,.... )
if I'm right, template only work with 1 thermostat currently.

Beta-User

Zitat von: moustic999 am 29 Januar 2020, 10:36:49
if I'm right, template only work with 1 thermostat currently.
That's true.
We could build more complex expressions, e.g. (untested)
BASE_ID/DEV_ID/thermostat_data.*:.*(hc[\d]).* "ems_esp_thermostat_$1"\
But then, we also have to adopt readingList attribute of each of the thermostat devices to only react on "it's" part of the JSON info and so on.

Imo, it would be much easier to just use a copy of the first (hc1) thermostat device and then do some small changes, especially use jsonMap to filter out all of the unneeded info. So in the second thermostat, we would just use a different jsonMap (for the first it should be extended to filter out hc2 info):
attr DEVICE jsonMap hc2_mode:mode hc2_seltemp:desired-temp hc2_daytemp:daytemp hc2_nighttemp:nighttemp hc3_holidayttemp:holidaytemp hc1_mode:0 hc1_seltemp:0 hc1_daytemp:0 hc1_nighttemp:0 hc1_holidayttemp:0

and adopt topic paths in setList accordingly?
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

grappa24

OT: with the help of mqtt analytics meanwhile I could improve my settings (Meine Heizkurve war viel zu hoch und zu steil, heating curve was to high and steep), the boiler produced too much heat and could not deliver it.

should change my name to "Heizungsversteher"  8)

FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

kroonen

Hi,

I have for the ems-esp boiler a question. I would like to create a devStateicon , because the template doesn't have it.

Is it possible to look at heating_active and tapwater_active  values both?

For example

heating_active 0
tapwave_active 0

then icon: sani_heating

heating_active 1
tapwater_active 0

then icon: sani_heating@red

heating_active 0
tapwater_active 1

then icon: sani_water_hot@red

rudolfkoenig

Yes, but IMHO it is more straitforward to set stateFormat to:
{
  my $h=ReadingsNum($name,"heating_active",0);
  my $t=ReadingsNum($name,"tapwater_active",0);
  !$h && !$t ? "sani_heating" : ($h && !$t ? "sani_heating\@red" : "sani_water_hot\@red")
}


kroonen

Thnx, works as wanted.


Beta-User

For the template, I slightly changed that to get a more readable STATE.

attr DEVICE stateFormat { my $h=ReadingsNum($name,"heating_active",0); my $t=ReadingsNum($name,"tapwater_active",0); !$h && !$t ? "idle" : ($h && !$t ? "heating" : "tapwater")}
attr DEVICE devStateIcon idle:sani_heating heating:sani_heating@red tapwater:sani_water_hot@red

Should work, but testing is appreciated :) .
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

kroonen

agree, is more human readable, I go check it and give the feedback

kroonen

@Beta-User Tested, and works as expected.





Beta-User

Thx. for your feedback!
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

grappa24

#102
Zunächst mal sorry, dass ich mich nicht mehr gemeldet habe  :-[

Ich hätte eine Frage zum Boiler-Device:

Dort gibt es ja das reading "wWComfort"; ich hab mir eine Select-Box definiert, um das reading mit "hot" bzw. "intelligent" zu füllen. Dann dafür noch das attr webCmd definiert.

Das Setzen des readings funktioniert auch soweit, nur wird die Select-Box danach nicht mehr mit dem aktuellen Wert des readings gefüllt - oder mach ich da einen Denkfehler?

defmod MQTT2_ems_esp_boiler MQTT2_DEVICE ems_esp_boiler
attr MQTT2_ems_esp_boiler IODev myBroker
attr MQTT2_ems_esp_boiler alias Brenner
attr MQTT2_ems_esp_boiler devStateIcon 1
attr MQTT2_ems_esp_boiler readingList heating_system/ems-esp/boiler_data:.* { json2nameValue($EVENT) }\
heating_system/ems-esp/tapwater_active:.* tapwater_active\
heating_system/ems-esp/heating_active:.* heating_active\
heating_system/ems-esp/shower_data:.* { json2nameValue($EVENT) }
attr MQTT2_ems_esp_boiler setList wWComfort:select,hot,intelligent heating_system/ems-esp/boiler_cmd { "cmd":"comfort", "data": "$EVTPART1" }
attr MQTT2_ems_esp_boiler stateFormat Warmwasser: wWComfort
attr MQTT2_ems_esp_boiler webCmd wWComfort

setstate MQTT2_ems_esp_boiler Warmwasser: Hot
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 ServiceCode
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 ServiceCodeNumber 203
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 UBAuptime 532405
setstate MQTT2_ems_esp_boiler 2020-05-24 18:00:13 alert 0
setstate MQTT2_ems_esp_boiler 2020-02-06 08:28:54 associatedWith MQTT2_ems_esp
setstate MQTT2_ems_esp_boiler 2020-02-24 20:57:39 boilTemp 57.7
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 burnGas off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 burnStarts 25608
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 burnWorkMin 70648
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 curBurnPow 0
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 curFlowTemp 44.3
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 fanWork off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 flameCurr 0
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 heatPmp off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 heatWorkMin 52730
setstate MQTT2_ems_esp_boiler 2020-05-26 06:08:15 heating_active 0
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 heating_temp 30
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 ignWork off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 outdoorTemp 21.4
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 pumpMod 0
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 pump_mod_max 100
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 pump_mod_min 10
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 selBurnPow 0
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 selFlowTemp 5
setstate MQTT2_ems_esp_boiler 2020-05-25 20:41:22 state wWComfort
setstate MQTT2_ems_esp_boiler 2020-02-19 09:43:02 switchTemp 0
setstate MQTT2_ems_esp_boiler 2020-05-26 06:08:15 tapwater_active 0
setstate MQTT2_ems_esp_boiler 2020-05-24 18:00:13 timer 0
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWActivated on
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWCiPuMode 7
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWCiPuType 255
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWCirc on
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWCircPump 255
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWComfort Hot
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWCurFlow 0
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWCurTmp 54.3
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWDesinfecting off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWDesinfectionTemp 70
setstate MQTT2_ems_esp_boiler 2020-02-19 09:43:02 wWDesiredTemp 70
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWHeat off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWOnetime off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWReady off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWRecharge off
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWSelTemp 55
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWStarts 1208
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWTempOK on
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wWWorkM 17918
setstate MQTT2_ems_esp_boiler 2020-05-26 08:56:15 wwStorageTemp2 54.3



By the way:
Bei meinem Boiler Buderus GBx72/Nefit Trendline/Junkers Cerapur/Worcester Greenstar Si/27i (DeviceID: 0x08, ProductID: 123, Version: 06.03) funktioniert das Setzen von wWComfort wie folgt:

hot -> Hot
intelligent -> Eco
eco -> keine Auswirkung

Was für mich o.k. ist, da sich mein Brenner sowieso nur zwischen hot und eco umschalten lässt, aber muss man das verstehen? Ich hab deshalb das setList attr entsprechend geändert, nicht dass sich jemand wundert  ;)
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Beta-User

Dann mal: welcome back!

Du sendest "hot", zurück scheint aber "Hot" zu kommen...

Es wäre mMn. kein Problem, weitere Thermostat-Typen als gesonderte attrTemplate zu bauen, es sollte dann aber irgendwie "fertig" sein (und möglichst auch für mehrere Fälle passen). Irgendwie ist der Prozess hier - warum auch immer - allerdings etwas ins Stocken geraten.

@our english-speaking users here:
Are you interested in further development of attrTemplates? There had been no more posts on that topic, so feel free to give some feedback; otherwise, we may discuss individual questions in whatever language is used by the one asking...
(Or open up seperate Threads?)
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

grappa24

#104
ich hab jetzt mal "Hot" gesendet, keine Reaktion. Nur wenn ich "hot" sende, kommt "Hot" zurück. Das erklärt dann wohl auch, warum sich die Select-Box nicht füllt, weil die zugelassenen Werte nicht stimmen  ;D
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...