ems-esp MQTT

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

Vorheriges Thema - Nächstes Thema

Beta-User

Yes, that's configured on the ESP8266 side. But "home" in the screenshot seems to be greyed out... I'd translate that to "not set"...
For testing purpose, I'd prefer something different, e.g. "heating_system" ;) .
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

wenn ich jetzt wüsste, was "mühsam ernährt sich das Eichhörnchen" auf englisch heißt ... ;D

Danke für Deine Geduld.

Ich hab jetzt im ESP8266 "Base" auf "heating_system" gesetzt, mein Listing sieht dann so aus:Internals:
   CID        ems-esp
   DEF        ems-esp
   DEVICETOPIC MQTT2_ems_esp
   FUUID      5df517f0-f33f-b5ae-cafa-1106443800f7120a
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     3313
   NAME       MQTT2_ems_esp
   NR         556
   STATE      Interface:
LWT
Signal:
48 %
<br>Uptime: 0 000 00:06
<br>IPAddress : <a href="http://192.168.178.79" target="_blank">192.168.178.79</a>
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 3313
   myBroker_TIME 2020-01-20 14:43:29
   OLDREADINGS:
   READINGS:
     2020-01-20 14:43:29   IP              192.168.178.79
     2020-01-20 14:43:29   MQTTdisconnects 0
     2020-01-20 14:43:17   ServiceCode     
     2020-01-20 14:43:17   ServiceCodeNumber 202
     2020-01-20 14:43:17   UBAuptime       350587
     2020-01-20 14:43:17   burnGas         off
     2020-01-20 14:43:17   burnStarts      12414
     2020-01-20 14:43:17   burnWorkMin     36878
     2020-01-20 14:43:17   curBurnPow      0
     2020-01-20 14:43:17   curFlowTemp     28.9
     2020-01-20 14:43:17   fanWork         off
     2020-01-20 14:43:17   flameCurr       0
     2020-01-20 14:43:29   formatedUptime  0 000 00:06
     2020-01-20 14:43:29   freemem         56
     2020-01-20 14:43:17   hc1_currtemp    0
     2020-01-20 14:43:17   hc1_mode        auto
     2020-01-20 14:43:17   hc1_seltemp     0
     2020-01-20 14:43:17   heatPmp         on
     2020-01-20 14:43:17   heatWorkMin     26072
     2020-01-20 14:43:17   heating_active  0
     2020-01-20 14:43:17   heating_temp    82
     2020-01-20 14:43:17   ignWork         off
     2020-01-20 14:43:29   load            2
     2020-01-20 14:43:17   outdoorTemp     5.3
     2020-01-20 14:43:17   pumpMod         37
     2020-01-20 14:43:17   pump_mod_max    100
     2020-01-20 14:43:17   pump_mod_min    10
     2020-01-20 14:43:29   rssid           48
     2020-01-20 14:43:17   selBurnPow      100
     2020-01-20 14:43:17   selFlowTemp     41
     2020-01-20 14:40:11   state           restart
     2020-01-20 14:43:17   tapwater_active 0
     2020-01-20 14:43:29   uptime          372
     2020-01-20 14:43:29   version         1.9.3
     2020-01-20 14:43:17   wWActivated     on
     2020-01-20 14:43:17   wWCirc          on
     2020-01-20 14:43:17   wWCircPump      1
     2020-01-20 14:43:17   wWComfort       Hot
     2020-01-20 14:43:17   wWCurFlow       0
     2020-01-20 14:43:17   wWCurTmp        53.1
     2020-01-20 14:43:17   wWDesiredTemp   70
     2020-01-20 14:43:17   wWHeat          off
     2020-01-20 14:43:17   wWSelTemp       55
     2020-01-20 14:43:17   wWStarts        689
     2020-01-20 14:43:17   wWWorkM         10806
Attributes:
   IODev      myBroker
   autocreate 1
   bridgeRegexp home/ems-esp/(sensors|sm_data|hp_data|thermostat_data).*:.* "ems_esp_$1"
  home/ems-esp/(boiler_data|tapwater_active|heating_active|mixing_data|shower_data).*:.* "ems_esp_boiler"
   devStateIcon online:it_net offline:it_net@red  2.1:lan_rs485 2.0:lan_rs485@red
   icon       sani_boiler_temp
   model      ems-esp_heater_device
   readingList home/ems-esp/start:.* LWT
  home/ems-esp/heartbeat:.* { json2nameValue($EVENT) }
ems_esp:heating_system/ems-esp/boiler_data:.* { json2nameValue($EVENT) }
ems_esp:heating_system/ems-esp/tapwater_active:.* tapwater_active
ems_esp:heating_system/ems-esp/heating_active:.* heating_active
ems_esp:heating_system/ems-esp/thermostat_data:.* { json2nameValue($EVENT) }
ems_esp:heating_system/ems-esp/heartbeat:.* { json2nameValue($EVENT) }
   room       Heizung,MQTT
   setList    restart:noArg home/ems-esp/restart
   stateFormat Interface:
LWT
Signal:
rssid %
<br>Uptime: formatedUptime
<br>IPAddress : <a href="http://IP" target="_blank">IP</a>
   userReadings formatedUptime:uptime.* {my $m = ReadingsVal($name,"uptime",0)/60;; return sprintf "0 000 00:%02d", $m if $m < 60;; my $h = $m / 60;; $m %= 60;; return sprintf "0 000 %02d:%02d", $h, $m if $h < 24;; my $d = $h / 24;; $h %= 24;; return sprintf "0 %03d %02d:%02d", $d, $h, $m if $d <365;; my $y = $d / 365;; $d %= 365;; return sprintf "%d %03d %02d:%02d", $y, $d, $h, $m}
   webCmd     restart


Kommen wir der Sache näher?
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

Zitat von: grappa24 am 20 Januar 2020, 14:46:29
Kommen wir der Sache näher?
Jein ::) ...

Jetzt bin ich am Rätseln, wo das "home" in der bridgeRegexp bzw. der readingList herkommt... (aber das war ja der Sinn des Test, ob es klappt ;D ).

Vermutlich hattest du zwischendurch "home" gesetzt?

Egal... Jetzt würde ich vorschlagen, dass du einfach alles an MQTT2_DEVICE löschst, was mit ems-bus zu tun hat, damit wir einmal von vorne checken können, ob alles paßt ::) .

Also: autocreate arbeiten lassen, dann das Basistemplate "ems-esp_heater_device" auf das hoffentlich von autocreate neu erstellte Device anwenden und etwas warten (nebenbei readingList und bridgeRegexp checken, da sollte dann alles mit "heating_system/" anfangen...). Dann solltest du mit dem list-Befehl dann irgendwann drei MQTT2_DEVICE-Devices "sehen".
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

ich hol mir jetzt erst mal eine neue SD-Karte für meinen RasPi, ich vermute, die Karte ist defekt, was mal wieder dazu führt, dass bei restarts von FHEM zuletzt getätigten Änderungen weg sind .... melde mich wieder
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

Sorry to hear that!

So "softly softly catchee monkey" also on that front...
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

#50
sofly softly catchee monkey - sehr nett  ;D

An der SD Karte lag es wohl doch nicht; was wohl wichtig ist, das ESP8266 Gateway zwischendurch immer mal wieder von der Heizung zu trennen und neu zu verbinden.

Ich hab nochmal ganz vorne angefangen, den Broker neu definiert: Internals:
   CFGFN     
   CONNECTS   1
   DEF        1883 global
   FD         40
   FUUID      5e25ece7-f33f-b5ae-0219-07d7f6d1689b0b27
   NAME       myBroker
   NR         603
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2020-01-20 19:09:54   RETAIN          {"heating_system/ems-esp/status":"online"}
     2020-01-20 19:09:54   nrclients       1
     2020-01-20 19:09:43   state           Initialized
   clients:
     myBroker_192.168.178.79_60312 1
   retain:
     heating_system/ems-esp/status:
       ts         1579543794.79581
       val        online
Attributes:
   room       MQTT


Reicht das "autocreate" auf default (=simple) zu lassen? Hab ich erst mal.

Dann wurde automatisch das folgende MQTT2-Device angelegt: Internals:
   CFGFN     
   CID        ems_esp
   DEF        ems_esp
   DEVICETOPIC MQTT2_ems_esp
   FUUID      5e25ecf2-f33f-b5ae-f38d-55cf4c0306d59f1d
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     15
   NAME       MQTT2_ems_esp
   NR         606
   STATE      ???
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 15
   myBroker_TIME 2020-01-20 19:16:51
   READINGS:
     2020-01-20 19:15:54   IP              192.168.178.79
     2020-01-20 19:15:54   MQTTdisconnects 6
     2020-01-20 19:16:50   ServiceCode     
     2020-01-20 19:16:50   ServiceCodeNumber 202
     2020-01-20 19:16:50   UBAuptime       350860
     2020-01-20 19:09:55   alert           0
     2020-01-20 19:16:50   burnGas         off
     2020-01-20 19:16:50   burnStarts      12438
     2020-01-20 19:16:50   burnWorkMin     36966
     2020-01-20 19:16:50   curBurnPow      0
     2020-01-20 19:16:50   curFlowTemp     32.3
     2020-01-20 19:16:50   fanWork         off
     2020-01-20 19:16:50   flameCurr       0
     2020-01-20 19:15:54   freemem         61
     2020-01-20 19:16:51   hc1_currtemp    0
     2020-01-20 19:16:51   hc1_mode        auto
     2020-01-20 19:16:51   hc1_seltemp     0
     2020-01-20 19:16:50   heatPmp         on
     2020-01-20 19:16:50   heatWorkMin     26148
     2020-01-20 19:16:51   heating_active  0
     2020-01-20 19:16:50   heating_temp    82
     2020-01-20 19:16:50   ignWork         off
     2020-01-20 19:15:54   load            1
     2020-01-20 19:16:50   outdoorTemp     1.7
     2020-01-20 19:16:50   pumpMod         41
     2020-01-20 19:16:50   pump_mod_max    100
     2020-01-20 19:16:50   pump_mod_min    10
     2020-01-20 19:15:54   rssid           52
     2020-01-20 19:16:50   selBurnPow      100
     2020-01-20 19:16:50   selFlowTemp     70
     2020-01-20 19:09:55   start           start
     2020-01-20 19:09:55   status          online
     2020-01-20 19:16:51   tapwater_active 0
     2020-01-20 19:09:55   timer           0
     2020-01-20 19:15:54   uptime          784
     2020-01-20 19:15:54   version         1.9.3
     2020-01-20 19:16:50   wWActivated     on
     2020-01-20 19:16:50   wWCirc          on
     2020-01-20 19:16:50   wWCircPump      1
     2020-01-20 19:16:50   wWComfort       Hot
     2020-01-20 19:16:50   wWCurFlow       0
     2020-01-20 19:16:50   wWCurTmp        55.9
     2020-01-20 19:16:50   wWDesiredTemp   70
     2020-01-20 19:16:50   wWHeat          off
     2020-01-20 19:16:50   wWSelTemp       55
     2020-01-20 19:16:50   wWStarts        690
     2020-01-20 19:16:50   wWWorkM         10818
Attributes:
   IODev      myBroker
   readingList ems_esp:heating_system/ems-esp/status:.* status
ems_esp:heating_system/ems-esp/start:.* start
ems_esp:heating_system/ems-esp/heartbeat:.* { json2nameValue($EVENT) }
ems_esp:heating_system/ems-esp/shower_data:.* { json2nameValue($EVENT) }
ems_esp:heating_system/ems-esp/boiler_data:.* { json2nameValue($EVENT) }
ems_esp:heating_system/ems-esp/tapwater_active:.* tapwater_active
ems_esp:heating_system/ems-esp/heating_active:.* heating_active
ems_esp:heating_system/ems-esp/thermostat_data:.* { json2nameValue($EVENT) }
   room       MQTT


Dann auf dieses Device das Basistemplate angewandt:Internals:
   CFGFN     
   CID        ems-esp
   DEF        ems-esp
   DEVICETOPIC MQTT2_ems_esp
   FUUID      5e25ecf2-f33f-b5ae-f38d-55cf4c0306d59f1d
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     26
   NAME       MQTT2_ems_esp
   NR         606
   STATE      Interface:
LWT
Signal:
52 %
<br>Uptime: 0 000 00:17
<br>IPAddress : <a href="http://192.168.178.79" target="_blank">192.168.178.79</a>
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 26
   myBroker_TIME 2020-01-20 19:20:51
   OLDREADINGS:
   READINGS:
     2020-01-20 19:19:54   IP              192.168.178.79
     2020-01-20 19:19:54   MQTTdisconnects 6
     2020-01-20 19:20:50   ServiceCode     
     2020-01-20 19:20:50   ServiceCodeNumber 202
     2020-01-20 19:20:50   UBAuptime       350864
     2020-01-20 19:20:50   burnGas         off
     2020-01-20 19:20:50   burnStarts      12439
     2020-01-20 19:20:50   burnWorkMin     36966
     2020-01-20 19:20:50   curBurnPow      0
     2020-01-20 19:20:50   curFlowTemp     49.8
     2020-01-20 19:20:50   fanWork         off
     2020-01-20 19:20:50   flameCurr       0
     2020-01-20 19:19:54   formatedUptime  0 000 00:17
     2020-01-20 19:19:54   freemem         61
     2020-01-20 19:20:51   hc1_currtemp    0
     2020-01-20 19:20:51   hc1_mode        auto
     2020-01-20 19:20:51   hc1_seltemp     0
     2020-01-20 19:20:50   heatPmp         on
     2020-01-20 19:20:50   heatWorkMin     26148
     2020-01-20 19:20:51   heating_active  0
     2020-01-20 19:20:50   heating_temp    82
     2020-01-20 19:20:50   ignWork         off
     2020-01-20 19:19:54   load            1
     2020-01-20 19:20:50   outdoorTemp     1.7
     2020-01-20 19:20:50   pumpMod         10
     2020-01-20 19:20:50   pump_mod_max    100
     2020-01-20 19:20:50   pump_mod_min    10
     2020-01-20 19:19:54   rssid           52
     2020-01-20 19:20:50   selBurnPow      100
     2020-01-20 19:20:50   selFlowTemp     70
     2020-01-20 19:20:51   tapwater_active 0
     2020-01-20 19:19:54   uptime          1024
     2020-01-20 19:19:54   version         1.9.3
     2020-01-20 19:20:50   wWActivated     on
     2020-01-20 19:20:50   wWCirc          on
     2020-01-20 19:20:50   wWCircPump      1
     2020-01-20 19:20:50   wWComfort       Hot
     2020-01-20 19:20:50   wWCurFlow       0
     2020-01-20 19:20:50   wWCurTmp        55.8
     2020-01-20 19:20:50   wWDesiredTemp   70
     2020-01-20 19:20:50   wWHeat          off
     2020-01-20 19:20:50   wWSelTemp       55
     2020-01-20 19:20:50   wWStarts        690
     2020-01-20 19:20:50   wWWorkM         10818
Attributes:
   IODev      myBroker
   autocreate 1
   bridgeRegexp m/ems-esp/(sensors|sm_data|hp_data|thermostat_data).*:.* "ems_esp_$1"
  m/ems-esp/(boiler_data|tapwater_active|heating_active|mixing_data|shower_data).*:.* "ems_esp_boiler"
   devStateIcon online:it_net offline:it_net@red  2.1:lan_rs485 2.0:lan_rs485@red
   icon       sani_boiler_temp
   model      ems-esp_heater_device
   readingList m/ems-esp/start:.* LWT
  m/ems-esp/heartbeat:.* { json2nameValue($EVENT) }
   room       MQTT
   setList    restart:noArg m/ems-esp/restart
   stateFormat Interface:
LWT
Signal:
rssid %
<br>Uptime: formatedUptime
<br>IPAddress : <a href="http://IP" target="_blank">IP</a>
   userReadings formatedUptime:uptime.* {my $m = ReadingsVal($name,"uptime",0)/60;; return sprintf "0 000 00:%02d", $m if $m < 60;; my $h = $m / 60;; $m %= 60;; return sprintf "0 000 %02d:%02d", $h, $m if $h < 24;; my $d = $h / 24;; $h %= 24;; return sprintf "0 %03d %02d:%02d", $d, $h, $m if $d <365;; my $y = $d / 365;; $d %= 365;; return sprintf "%d %03d %02d:%02d", $y, $d, $h, $m}
   webCmd     restart


Was auffällt, dass bei bridgeRegexp, readingList und setList das "ems_esp:heating_system" stumpf durch "m" ersetzt wurde, was läuft denn da falsch?

Ich hab dann das "m" händisch wieder durch "ems_esp":heating_system" ersetzt, dann tauchen plötzlich die folgenden Devices auf Internals:
   CFGFN     
   CID        ems_esp_thermostat_data
   DEF        ems_esp_thermostat_data
   DEVICETOPIC MQTT2_ems_esp_thermostat_data
   FUUID      5e25f162-f33f-b5ae-49cb-3df582f757ceba7d
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     2
   NAME       MQTT2_ems_esp_thermostat_data
   NR         611
   STATE      ???
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 2
   myBroker_TIME 2020-01-20 19:32:50
   READINGS:
     2020-01-20 19:28:51   associatedWith  MQTT2_ems_esp
     2020-01-20 19:32:50   hc1_currtemp    0
     2020-01-20 19:32:50   hc1_mode        auto
     2020-01-20 19:32:50   hc1_seltemp     0
Attributes:
   IODev      myBroker
   readingList heating_system/ems-esp/thermostat_data:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
und Internals:
   CFGFN     
   CID        ems_esp_boiler
   DEF        ems_esp_boiler
   DEVICETOPIC MQTT2_ems_esp_boiler
   FUUID      5e25f139-f33f-b5ae-00c9-a05f48a7a3a74576
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     6
   NAME       MQTT2_ems_esp_boiler
   NR         576
   STATE      ???
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 6
   myBroker_TIME 2020-01-20 19:32:50
   READINGS:
     2020-01-20 19:32:50   ServiceCode     
     2020-01-20 19:32:50   ServiceCodeNumber 202
     2020-01-20 19:32:50   UBAuptime       350876
     2020-01-20 19:28:10   alert           0
     2020-01-20 19:28:51   associatedWith  MQTT2_ems_esp
     2020-01-20 19:32:50   burnGas         off
     2020-01-20 19:32:50   burnStarts      12440
     2020-01-20 19:32:50   burnWorkMin     36967
     2020-01-20 19:32:50   curBurnPow      0
     2020-01-20 19:32:50   curFlowTemp     31.9
     2020-01-20 19:32:50   fanWork         off
     2020-01-20 19:32:50   flameCurr       0
     2020-01-20 19:32:50   heatPmp         on
     2020-01-20 19:32:50   heatWorkMin     26149
     2020-01-20 19:32:50   heating_active  0
     2020-01-20 19:32:50   heating_temp    82
     2020-01-20 19:32:50   ignWork         off
     2020-01-20 19:32:50   outdoorTemp     1.7
     2020-01-20 19:32:50   pumpMod         37
     2020-01-20 19:32:50   pump_mod_max    100
     2020-01-20 19:32:50   pump_mod_min    10
     2020-01-20 19:32:50   selBurnPow      100
     2020-01-20 19:32:50   selFlowTemp     71
     2020-01-20 19:32:50   tapwater_active 0
     2020-01-20 19:28:10   timer           0
     2020-01-20 19:32:50   wWActivated     on
     2020-01-20 19:32:50   wWCirc          on
     2020-01-20 19:32:50   wWCircPump      1
     2020-01-20 19:32:50   wWComfort       Hot
     2020-01-20 19:32:50   wWCurFlow       0
     2020-01-20 19:32:50   wWCurTmp        55.8
     2020-01-20 19:32:50   wWDesiredTemp   70
     2020-01-20 19:32:50   wWHeat          off
     2020-01-20 19:32:50   wWSelTemp       55
     2020-01-20 19:32:50   wWStarts        690
     2020-01-20 19:32:50   wWWorkM         10818
Attributes:
   IODev      myBroker
   readingList heating_system/ems-esp/shower_data:.* { json2nameValue($EVENT) }
heating_system/ems-esp/boiler_data:.* { json2nameValue($EVENT) }
heating_system/ems-esp/tapwater_active:.* tapwater_active
heating_system/ems-esp/heating_active:.* heating_active
   room       MQTT2_DEVICE
und das ursprüngliche Device MQTT2_ems_esp ist weg, taucht aber nach Entfernen und Neuanstecken des ESP8266 Gateways wieder auf: Internals:
   CID        ems-esp
   DEF        ems-esp
   DEVICETOPIC MQTT2_ems_esp
   FUUID      5e25ecf2-f33f-b5ae-f38d-55cf4c0306d59f1d
   IODev      myBroker
   NAME       MQTT2_ems_esp
   NR         565
   STATE      Interface:
LWT
Signal:
rssid %
<br>Uptime: formatedUptime
<br>IPAddress : <a href="http://IP" target="_blank">IP</a>
   TYPE       MQTT2_DEVICE
   READINGS:
     2020-01-20 19:26:50   ServiceCode     
     2020-01-20 19:26:50   ServiceCodeNumber 202
     2020-01-20 19:26:50   UBAuptime       350870
     2020-01-20 19:26:50   burnGas         off
     2020-01-20 19:26:50   burnStarts      12439
     2020-01-20 19:26:50   burnWorkMin     36966
     2020-01-20 19:26:50   curBurnPow      0
     2020-01-20 19:26:50   curFlowTemp     31
     2020-01-20 19:26:50   fanWork         off
     2020-01-20 19:26:50   flameCurr       0
     2020-01-20 19:26:51   hc1_currtemp    0
     2020-01-20 19:26:51   hc1_mode        auto
     2020-01-20 19:26:51   hc1_seltemp     0
     2020-01-20 19:26:50   heatPmp         on
     2020-01-20 19:26:50   heatWorkMin     26148
     2020-01-20 19:26:51   heating_active  0
     2020-01-20 19:26:50   heating_temp    82
     2020-01-20 19:26:50   ignWork         off
     2020-01-20 19:26:50   outdoorTemp     1.7
     2020-01-20 19:26:50   pumpMod         41
     2020-01-20 19:26:50   pump_mod_max    100
     2020-01-20 19:26:50   pump_mod_min    10
     2020-01-20 19:26:50   selBurnPow      100
     2020-01-20 19:26:50   selFlowTemp     70
     2020-01-20 19:37:31   state           restart
     2020-01-20 19:28:56   subscriptions   heating_system/ems-esp/boiler_cmd heating_system/ems-esp/boiler_cmd_wwactivated heating_system/ems-esp/boiler_cmd_wwtemp heating_system/ems-esp/generic_cmd heating_system/ems-esp/mode1 heating_system/ems-esp/mode2 heating_system/ems-esp/mode3 heating_system/ems-esp/mode4 heating_system/ems-esp/restart heating_system/ems-esp/shower_data heating_system/ems-esp/start heating_system/ems-esp/temp1 heating_system/ems-esp/temp2 heating_system/ems-esp/temp3 heating_system/ems-esp/temp4 heating_system/ems-esp/thermostat_cmd
     2020-01-20 19:26:51   tapwater_active 0
     2020-01-20 19:26:50   wWActivated     on
     2020-01-20 19:26:50   wWCirc          on
     2020-01-20 19:26:50   wWCircPump      1
     2020-01-20 19:26:50   wWComfort       Hot
     2020-01-20 19:26:50   wWCurFlow       0
     2020-01-20 19:26:50   wWCurTmp        55.8
     2020-01-20 19:26:50   wWDesiredTemp   70
     2020-01-20 19:26:50   wWHeat          off
     2020-01-20 19:26:50   wWSelTemp       55
     2020-01-20 19:26:50   wWStarts        690
     2020-01-20 19:26:50   wWWorkM         10818
Attributes:
   IODev      myBroker
   autocreate 1
   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"
   devStateIcon online:it_net offline:it_net@red  2.1:lan_rs485 2.0:lan_rs485@red
   icon       sani_boiler_temp
   model      ems-esp_heater_device
   room       MQTT
   setList    restart:noArg heating_system/ems-esp/restart
   stateFormat Interface:
LWT
Signal:
rssid %
<br>Uptime: formatedUptime
<br>IPAddress : <a href="http://IP" target="_blank">IP</a>
   userReadings formatedUptime:uptime.* {my $m = ReadingsVal($name,"uptime",0)/60;; return sprintf "0 000 00:%02d", $m if $m < 60;; my $h = $m / 60;; $m %= 60;; return sprintf "0 000 %02d:%02d", $h, $m if $h < 24;; my $d = $h / 24;; $h %= 24;; return sprintf "0 %03d %02d:%02d", $d, $h, $m if $d <365;; my $y = $d / 365;; $d %= 365;; return sprintf "%d %03d %02d:%02d", $y, $d, $h, $m}
   webCmd     restart
allerdings ohne die Daten aus dem heartbeat? - ach ja und aktualisiert werden dessen readings auch nicht ...

Bleiben unterm Strich die Fragen:
Warum wird durch das Anwenden des templates der "Pfad verbogen" und
wo bleiden die Daten aus dem heartbeat im ursprünglichen Device?
warum wird das ursprünglihe Device nicht mehr aktualisiert?
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, ...

rudolfkoenig

ZitatWarum wird durch das Anwenden des templates der "Pfad verbogen"
In der par:BASE_ID Zeile fehlt ein +:
Zitatpar:BASE_ID;base topic set, default is "home";{ AttrVal("DEVICE","readingList","") =~ m,[^:]+:?[/]?([^/]+)+[/][^/]+[/].*:, ? $1 : "home" }

Oder man verkuerzt den Regexp:
par:BASE_ID;base topic set, default is "home";{ AttrVal("DEVICE","readingList","") =~ m,([^/:]+)/, ? $1 : "home" }

Achtung: soweit ich sehe, wird in perl_code der par Zeile nur DEVICE ersetzt, BASE_ID vmtl. nicht.
Bei mir funktioniert folgende Zeile:par:DEV_ID;ID topic set, default is "ems-esp";{ AttrVal("DEVICE","readingList","") =~ m,[^/:]+/([^/]+), ? $1 : "ems-esp" }

grappa24

#52
super, vielen Dank, mit Rudis Änderungen funktioniert es!

Folgende drei MQTT2 Devices hab ich jetzt:
Internals:
   CFGFN     
   CID        ems-esp
   DEF        ems-esp
   DEVICETOPIC MQTT2_ems_esp
   FUUID      5e2620c0-f33f-b5ae-293a-a1b9289fc1dd6c81
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     9
   NAME       MQTT2_ems_esp
   NR         638
   STATE      Interface:
LWT
Signal:
46 %
<br>Uptime: 0 000 00:16
<br>IPAddress : <a href="http://192.168.178.79" target="_blank">192.168.178.79</a>
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 9
   myBroker_TIME 2020-01-20 23:07:12
   OLDREADINGS:
   READINGS:
     2020-01-20 23:07:12   IP              192.168.178.79
     2020-01-20 23:07:12   MQTTdisconnects 0
     2020-01-20 23:07:12   formatedUptime  0 000 00:16
     2020-01-20 23:07:12   freemem         55
     2020-01-20 23:07:12   load            1
     2020-01-20 23:07:12   rssid           46
     2020-01-20 22:55:18   state           restart
     2020-01-20 23:07:12   uptime          965
     2020-01-20 23:07:12   version         1.9.3
Attributes:
   IODev      myBroker
   autocreate 1
   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"
   devStateIcon online:it_net offline:it_net@red  2.1:lan_rs485 2.0:lan_rs485@red
   icon       sani_boiler_temp
   model      ems-esp_heater_device
   readingList heating_system/ems-esp/start:.* LWT
  heating_system/ems-esp/heartbeat:.* { json2nameValue($EVENT) }
   room       MQTT
   setList    restart:noArg heating_system/ems-esp/restart
   stateFormat Interface:
LWT
Signal:
rssid %
<br>Uptime: formatedUptime
<br>IPAddress : <a href="http://IP" target="_blank">IP</a>
   userReadings formatedUptime:uptime.* {my $m = ReadingsVal($name,"uptime",0)/60;; return sprintf "0 000 00:%02d", $m if $m < 60;; my $h = $m / 60;; $m %= 60;; return sprintf "0 000 %02d:%02d", $h, $m if $h < 24;; my $d = $h / 24;; $h %= 24;; return sprintf "0 %03d %02d:%02d", $d, $h, $m if $d <365;; my $y = $d / 365;; $d %= 365;; return sprintf "%d %03d %02d:%02d", $y, $d, $h, $m}
   webCmd     restart

Internals:
   CFGFN     
   CID        ems_esp_boiler
   DEF        ems_esp_boiler
   DEVICETOPIC MQTT2_ems_esp_boiler
   FUUID      5e26209a-f33f-b5ae-8c32-3af08e0158a115a6
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     54
   NAME       MQTT2_ems_esp_boiler
   NR         636
   STATE      ???
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 54
   myBroker_TIME 2020-01-20 23:11:06
   READINGS:
     2020-01-20 23:11:06   ServiceCode     
     2020-01-20 23:11:06   ServiceCodeNumber 204
     2020-01-20 23:11:06   UBAuptime       351094
     2020-01-20 22:51:12   alert           0
     2020-01-20 22:51:12   associatedWith  MQTT2_ems_esp
     2020-01-20 23:11:06   burnGas         off
     2020-01-20 23:11:06   burnStarts      12450
     2020-01-20 23:11:06   burnWorkMin     37093
     2020-01-20 23:11:06   curBurnPow      0
     2020-01-20 23:11:06   curFlowTemp     48.7
     2020-01-20 23:11:06   fanWork         off
     2020-01-20 23:11:06   flameCurr       0
     2020-01-20 23:11:06   heatPmp         on
     2020-01-20 23:11:06   heatWorkMin     26275
     2020-01-20 23:11:06   heating_active  0
     2020-01-20 23:11:06   heating_temp    82
     2020-01-20 23:11:06   ignWork         off
     2020-01-20 23:11:06   outdoorTemp     -1.5
     2020-01-20 23:11:06   pumpMod         41
     2020-01-20 23:11:06   pump_mod_max    100
     2020-01-20 23:11:06   pump_mod_min    10
     2020-01-20 23:11:06   selBurnPow      100
     2020-01-20 23:11:06   selFlowTemp     20
     2020-01-20 23:11:06   tapwater_active 0
     2020-01-20 22:51:12   timer           0
     2020-01-20 23:11:06   wWActivated     on
     2020-01-20 23:11:06   wWCirc          on
     2020-01-20 23:11:06   wWCircPump      1
     2020-01-20 23:11:06   wWComfort       Hot
     2020-01-20 23:11:06   wWCurFlow       0
     2020-01-20 23:11:06   wWCurTmp        52.3
     2020-01-20 23:11:06   wWDesiredTemp   70
     2020-01-20 23:11:06   wWHeat          off
     2020-01-20 23:11:06   wWSelTemp       55
     2020-01-20 23:11:06   wWStarts        690
     2020-01-20 23:11:06   wWWorkM         10818
Attributes:
   IODev      myBroker
   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) }
   room       MQTT

Internals:
   CFGFN     
   CID        ems_esp_thermostat_data
   DEF        ems_esp_thermostat_data
   DEVICETOPIC MQTT2_ems_esp_thermostat_data
   FUUID      5e26209a-f33f-b5ae-61b3-98d8542ed2d006b5
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     11
   NAME       MQTT2_ems_esp_thermostat_data
   NR         637
   STATE      ???
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 11
   myBroker_TIME 2020-01-20 23:11:06
   READINGS:
     2020-01-20 22:50:19   associatedWith  MQTT2_ems_esp
     2020-01-20 23:11:06   hc1_currtemp    0
     2020-01-20 23:11:06   hc1_mode        auto
     2020-01-20 23:11:06   hc1_seltemp     0
Attributes:
   IODev      myBroker
   readingList heating_system/ems-esp/thermostat_data:.* { json2nameValue($EVENT) }
   room       MQTT


Ich hab die geänderte mqtt2.template mit Rudis Änderungen beigefügt, if you like ...


@moustic999: With the two lines changed (according rudolfkoenig)
par:BASE_ID;base topic set, default is "home";{ AttrVal("DEVICE","readingList","") =~ m,([^/:]+)/, ? $1 : "home" }
par:DEV_ID;ID topic set, default is "ems-esp";{ AttrVal("DEVICE","readingList","") =~ m,[^/:]+/([^/]+), ? $1 : "ems-esp" }


the template works well and separates the basic device into MQTT2_ems_esp
MQTT2_ems_esp_boiler
MQTT2_ems_esp_thermostat_data


good night everybody  8) - to be continued ...
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

 :) Thanks to Rudi for fixing the issue.

As there where several other things in the pipeline to be changed in the attrTemplate file, I just pushed the fix and some further code wrt. to ems-esp to svn. Either use tomorrow's update, download from svn or (with recent 99_Utils method) use
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
to get the these changes :) .

So from my side, there are several issues to address until "the job is done":
- is the grouping of the sent data meaningful, or should there be some changes? (=bridgeRegexp of the base template builds "reasonable" devices?!? Or do we need more or less?)
- are the reading names "good"? (I added $JSONMAP to the json2nameValue() function, so we can easily rename the names used by the ESP firmware; perhaps we also need a "prefix", if there's sent identically named data for different parts of the bus...?)
- setList for boiler device?
- Optics for boiler device (stateFormat, icons and so on...)
- hide the additional templates to users not using ems-esp (use prereq: or move them to seperate template file in contrib/AttrTemplate, see changes here, esp. to ebus and milight).

sofly softly catchee monkey...
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

gladly I will try to help solving the issues, will take some time. My next step is to test another thermostat (Bosch CW400), because my CT200 is not really communicative  ;)
2020-01-21 19:19:39   hc1_currtemp    0
2020-01-21 19:19:39   hc1_mode        auto
2020-01-21 19:19:39   hc1_seltemp     0
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

Nevertheless,

I'd be interested, if "ems-esp_thermostat_simple" would allow some basic control of the CT200...?
(When working on the ebus-thing, there sometimes had been some restrictions in getting values; they to a big extend only have been sent when explicitly beeing requested or commands beeing executed. Might be similar here..?)
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

moustic999

Sorry, to answer so late. I was travelling for my job and then had not so much time to check.
There was many improvements done on the EMS-ESP side, especially on mqtt.

I did not use the template yet, I just set up the value I needed to have a working setup.
So fart I can control the target temp and the desired mode of my heater/thermostat ( Buderus RC300 , auto/manual mode + target temp)
I also retrieve a bunch of sensors (outdoor temp, return temp, flow temp) to monitor the heater working to optimize it later on.

all these could be quite easily combined into 1 or more template.
I will do some cleanup in the code and will share what is working for me.





Beta-User

@moustic999
Thanks for feedback, glad to hear, things are working to your satisfaction and you are about to optimize things.

Looking forward to your sharing what you have and your ideas to group all the information and commands :) .
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

#58
Zitat von: Beta-User am 22 Januar 2020, 05:52:50
I'd be interested, if "ems-esp_thermostat_simple" would allow some basic control of the CT200...?
what does "ems-esp_thermostat_simple" mean?  The autocreate attr of the broker?

I used MQTT-Explorer today to see what CT200 publishes: {"hc1":{"seltemp":0,"currtemp":0,"mode":"auto"}}

On the other hand the CT200 ist marked as "read only" at the "Supported EMS Device List" at emsespgithub  :(

My "plumber" will give me a CW400 for testing this afternoon, we'll see ...
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, ...

grappa24

Zitat von: moustic999 am 22 Januar 2020, 09:59:21
So fart I can control the target temp and the desired mode of my heater/thermostat ( Buderus RC300 , auto/manual mode + target temp)
hi moustic999, which parameters of the "boiler_data" (name of the reading?) do you control in practice?
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, ...