ems-esp MQTT

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

Vorheriges Thema - Nächstes Thema

Beta-User

Nachdem ich die Tage mal wieder mit ems-esp zu tun hatte, ist mir das etwas seltsame serReadings aus dem attrTemplate ins Auge gestochen. Da sind m.E. ein paar Dinge verbesserungsfähig...

Werde bei Gelegenheit mal das hier einchecken:
attr DEVICE userReadings BoilerStatus:serviceCode.* {BoilerStatus(ReadingsVal($name,'serviceCode',''),ReadingsVal($name,'serviceCodeNumber',''))}

Das müßte dann mit der angehängten myUtils zusammenpassen...

Die ist deutlich überarbeitet, kann also auch Fehler enthalten, keine Gewähr!
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

freddeh

Hallo zusammen,

ich habe einen ems-esp mit Firmware 3.3.1 (Buderus GBx72, BC25, RC35) in Betrieb, habe aber die starke Vermutung, dass sich sich seit der 2.2 ziemlich viel getan hat, bekomme anhand der Beispiele das nicht ohne weiteres zum Laufen, weil die Readings nicht mehr passen. Gibt es jemanden, der auch schon die aktuelle Firmware im Einsatz hat?

Viele Grüße
Frederik


maddhin

Hi,

ich spiele mit dem Gedanken mir so eine ems-esp Box für meine Junkers-Therme anzuschaffen - hat jemand Erfahrung mit Fhem und der v3 Firmware? Ich bin nicht so firm und es wäre schade, wenn das dann nicht mit FHEM funktionieren würde...

man361

Hi maddhin,
Bin zwar auch noch FHEM Neuling mit vielen Fragezeichen...
Aber das EMS-ESP v3.4.1 ist bei mir mit MQTT eingebunden. Innerhalb EMS-ESP hab ich das Senden aktuell auf 20sec gestellt, gibt dann aber 'ne ganze Menge aus...
Falls es dir hilft, hier meine raw-Definition:

defmod MQTT2_ems_esp MQTT2_DEVICE ems_esp
attr MQTT2_ems_esp alias Gastherme
attr MQTT2_ems_esp icon sani_heating
attr MQTT2_ems_esp readingList ems_esp:ems-esp/info:.* { json2nameValue($EVENT) }\
ems_esp:ems-esp/heartbeat:.* { json2nameValue($EVENT) }\
ems_esp:ems-esp/status:.* status\
ems_esp:ems-esp/boiler_data:.* { json2nameValue($EVENT) }\
ems_esp:ems-esp/boiler_data_ww:.* { json2nameValue($EVENT) }\
ems_esp:ems-esp/thermostat_data:.* { json2nameValue($EVENT) }\
ems_esp:ems-esp/thermostat_data_hc1:.* { json2nameValue($EVENT) }\
ems_esp:ems-esp/tapwater_active:.* tapwater_active\
ems_esp:ems-esp/heating_active:.* heating_active\
ems_esp:ems-esp/boiler_data/ubauptime:.* ubauptime\
ems_esp:ems-esp/boiler_data_ww/wwcurtemp:.* wwcurtemp\
ems_esp:ems-esp/boiler_data_ww/wwcurtemp2:.* wwcurtemp2\
ems_esp:ems-esp/boiler_data/curflowtemp:.* curflowtemp\
ems_esp:ems-esp/boiler_data_ww/wwstoragetemp2:.* wwstoragetemp2
attr MQTT2_ems_esp room Heizung,MQTT2_DEVICE
attr MQTT2_ems_esp stateFormat Aussen: outdoortemp °C, Vorlauf: curflowtemp °C, Warmwasser: wwcurtemp °C
attr MQTT2_ems_esp suppressReading IPv4_.*|MAC|RSSI|api.*|building|connection|controlmode|datetime|floor.*|ntp_status|rssi|rx.*|mqtt.*|tx.*|uptime.*|wifistrength


Gruß, Achim

Gisbert

Hallo maddhin,

ich hätte ein EMS BUS Gateway V1.7 (günstig) von https://bbqkees-electronics.nl. abzugeben, da meine Buderus-Gasheizung (Baujahr 2000) zu alt ist, um vernünftig damit zu laufen. Bis auf einen Versuch war das Board nicht im Einsatz.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

maddhin

Zitat von: Gisbert am 03 Oktober 2022, 14:51:00
ich hätte ein EMS BUS Gateway V1.7 (günstig) von https://bbqkees-electronics.nl. abzugeben
dazu schicke ich gleich mal ne PN;)

Ich brauche den EMS-ESP hauptsächlich, um das im Flur installiere Raumthermostat zu umgehen bzw. zu steuern. Im Moment habe ich das Problem, dass ich z.B. das Wohnzimmer nicht auf 22 Grad bekomme, wenn ich im Flur nicht z.B. 21 Grad einstelle (im Flur sind eigentlich immer 20 Grad).

D.h. ich plane über FHEM immer die höchste Solltemperatur an die Regelung (Bosch CR-100) weiterzugeben und so die Therme "einzuschalten", wenn nötig. Die Räume würde ich über Homeatic IP Thermostate steuern.

Hat sich jemand sowas schonmal zusammengebastelt? Meine spontane Idee ist, das dann über ein DoIF und einer Funktion, die immer den höchsten Sollwert der Thermostate ermittelt, zu lösen. Ggf. kann man die höchste Solltemp auch einfach nur in einen Dummy schreiben, das bräuchte dann aber wohl jeweils ein Doif per Thermostat. Viele Wege führen nach Rom LOL

Schönen Feiertag!

maddhin

Hallo zusammen,

dank @Gisbert bin ich nun glücklicher Besitzer und Betreiber eines EMS-ESP (FW 3.4.3) :)

Ich habe bei meinem MQTT2device autocreate eingeschaltet und es wurde ein device "MQTT2_Mosquitto" erstellt. Nun wollte ich für diesen device das attrtemplate "ems-esp_heater_device" vergeben, bekomme dann aber folgende Fehlermeldung:

wrong syntax for MQTT2_Mosquitto: define <name> MQTT2_DEVICE [clientid]
Unknown command Mosquitto:ems-esp, try help.
Unknown command Mosquitto:ems-esp/(sensors|sm_data|hp_data|thermostat_data).*:.*, try help.
Unknown command Mosquitto:ems-esp/(boiler_data|tapwater_active|heating_active|mixing_data|shower_data).*:.*, try help.
Unknown command Mosquitto:ems-esp/status:.*, try help.
Unknown command Mosquitto:ems-esp/heartbeat:.*, try help.
Unknown command Mosquitto:ems-esp/info:.*, try help.
Unknown command Mosquitto:ems-esp/status:.*, try help.
Unknown command Mosquitto:ems-esp/restart, try help.


Ich meine hier gelesen zu haben, dass dieses attrTemplate dann nochmal das "richtige" device für den Boiler und das Thermometer anlegt, oder?

Sorry, ich stehe hier jetzt auf der Leitung.

Beta-User

Mahlzeit. Irgendwie paßt das nicht so richtig zu dem, was ich aus dem aktuellen attrTemplate "ems-esp_heater_device" ablesen würde.
Prinzipiell bist du richtig vorgegangen, wobei das mit der ClientID "Mosquitto" sehr komisch anmutet.

Kannst du das per autocreate erstellte Device nochmal löschen, den ESP neu starten und dann mal zeigen, wie das dann aussieht.

Und zu meinem besseren Verständnis: was ist mit "bei meinem MQTT2device autocreate eingeschaltet" gemeint? Wenn eine ClientID in der readingList auftaucht, müßte damit ein MQTT2_SERVER gemeint sein, und bei dem steht per default "autocreate" (intern) auf "simple"...
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

maddhin

HI,
ich habe bei mir nur ein MQTT2_CLIENT device namens Mosquitto, siehe unten. Ein Server device habe ich nicht, wahrscheinlich weil der in einem anderen Docker-Container läuft? Schon so lange her, dass ich das aufgesetzt habe, weiß nicht, ob ich da vielleicht was falsch gemacht habe. Vielleicht muss man den MQTT"-server device auch noch definieren?

Internals:
   BUF       
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        mqtt:1883
   DeviceName mqtt:1883
   FD         20
   FUUID      60280265-f33f-92df-5b30-9c06d00ae11aeabb
   FVERSION   00_MQTT2_CLIENT.pm:0.264050/2022-09-16
   NAME       Mosquitto
   NR         29
   PARTIAL   
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   Mosquitto
   eventCount 1
   lastMsgTime 1665231153.54463
   nextOpenDelay 5
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2022-10-08 13:16:57   state           opened
Attributes:
   DbLogExclude .*
   icon       mqtt
   room       3.1_Interfaces


Dieser device hat jedenfalls erstmal kein autocreate und EMS-ESP wird auch nicht angelegt, wenn dies nicht eingeschaltet ist (Habe devices gelöscht, etc wie Du geschrieben hast).

Ich ucke jetzt mal, wie ich zu dieser MQTT Konfiguration gekommen bin...

Beta-User

Mach' kein größeres Gewirr rein, als jetzt schon ist; das geht auch mit MQTT2_CLIENT, aber du solltest beachten, dass es dann m.E. sinnvoll ist, ein weiteres Device zwischenzuschalten, um "vorzusortieren". Details findest du im Wiki zu MQTT2_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

maddhin

Also ich habe die 3 devices jetzt manuel angelegt und das template für den EMS_Esp und die Regelung funktionieren. Beim Boiler bekomme ich ein

EMS_Boiler: bad reading name EMS_Boiler stateFormat  (contains not A-Za-z/\d_\.- or is too long)


Da müsste ich in dem Template etwas ändern, oder? Ich nutze FW 3.4.3.

Beta-User

Da waren in der Tat zwei Fehler drin (zu viele escapte Zeilenumbrüche).
Entweder selbst Hand anlegen, oder nach dem morgigen update nochmal anwenden.
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

maddhin

Ich habe etwas gebastelt heute und der Boiler geht, ich werde aber morgen noch das template ausprobieren und ggf. anpassen, wenn notwendig.

Bei mir funktioniert das "set desired-temp" bei der Regelung/Thermostat leider nicht. Direkt über die GUI des EMS-ESP funktioniert es aber.

Wenn ich setlist ändere, funktioniert es:
mode:uzsuSelectRadio,auto,manual ems-esp/thermostat { "cmd":"hc1_mode","data":$EVTPART1 }
  desired-temp:slider,15.0,0.5,30.0,1 ems-esp/thermostat { "cmd":"hc1_seltemp","data":$EVTPART1 }


Allerdings kann ich den mode nicht ändern, da ich es nicht hinbekomme, dass $EVTPART1 in Gänsefüßchen rausgeht, weil für auto/manual "auto" bzw "manual" gesendet werden muss.

Kann es sein, dass sich hier bei der FW3 einiges geändert hat?

Beta-User

Hmm, ok, das Format scheint sich wirklich geändert zu haben. Habe nochmal ein update ins svn geschubst.

Das hier müßte eigentlich klappen:
mode:uzsuSelectRadio,auto,manual ems-esp/thermostat { "cmd":"hc1_mode","data":"$EVTPART1" }

Prinzipiell kommt es mir so vor, als wären diese attrTemplate's auch noch nicht komplett fertig gewesen.
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 hab noch das "alte" EMS-ESP Gateway Premium II von 2019 mit fw 1.9.5

Alles läuft soweit gut ("never chance a running system") ;D

Es gibt ja jetzt das neue E32/S32 Gateway von BBQKees mit fw 3.5

Weiß jemand, was diese neue Generation mehr/besser kann als die alte?



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, ...