zigbee Raumthermostat lässt fhem einfrieren

Begonnen von grossmaggul, 22 Oktober 2025, 13:39:23

Vorheriges Thema - Nächstes Thema

grossmaggul

Hallo,

nachdem ich meinen zigbee Raumthermostaten erfolgreich in fhem eingebunden habe, muss ich nun leider feststellen, daß das Ding fhem nach einiger Zeit zum Einfrieren bringt.
Ich kann das Intervall nicht genau beziffern, aber es tritt immer wieder auf, daß das fhem Frontend ewig braucht bis es reagiert, im Log findet sich dann auch sowas hier:
2025-10-22T13:04:24.477923+02:00 knotenkopf node[1401109]: [2025-10-22 13:04:24] #033[31merror#033[39m: #011z2m: Not connected to MQTT server!
2025-10-22T13:04:24.478088+02:00 knotenkopf node[1401109]: [2025-10-22 13:04:24] #033[31merror#033[39m: #011z2m: Cannot send message: topic: 'zigbee2mqtt/lichtsensor', payload: '{"brightness_state":"high","illuminance":420,"linkquality":236}
2025-10-22T13:04:25.158799+02:00 knotenkopf node[1401109]: [2025-10-22 13:04:25] #033[31merror#033[39m: #011z2m: Not connected to MQTT server!

Der Lichtsensor ist hier nur beispielhaft aufgeführt, es werden praktisch alle Zigbee Geräte so aufgeführt, sprich sind nicht ansprechbar, weil die Verbindung zum MQTT Server nicht aufgebaut werden kann.
Das dauert dann ein paar Minuten und es funktioniert wieder.

Wenn ich den RT deaktiviere tritt das Problem nicht auf.

Meine Vermutung, der RT sendet sehr oft die "desired-temp", mehrmals die Minute. Möglicherweise läuft da irgendein Buffer voll, aber welcher und wo?

Da ich in zigbee noch nicht so drin stecke, kann man das Senden irgendwie reduzieren?

Vielleicht habe ich auch einen Fehler im RT gemacht, hier noch das List vom RT, vielleicht fällt jemandem was auf.
Internals:
   .FhemMetaInternals 1
   CID        zigbee_raumthermostat
   DEF        zigbee_raumthermostat
   FUUID      68f39d41-f33f-f310-6bbb-752578106f34ba21
   FVERSION   10_MQTT2_DEVICE.pm:0.302520/2025-09-04
   IODev      mqtt2_server
   LASTInputDev mqtt2_server
   MSGCNT     3472
   NAME       zigbee_raumthermostat
   NR         804
   STATE      LOCK
Measured: 19.4 °C | Desired: 18 °C | Preset: manual | Sensor: internal | Mode: heat
   STILLDONETIME 0
   TYPE       MQTT2_DEVICE
   eventCount 3473
   mqtt2_server_CONN mqtt2_server_192.168.1.12_57526
   mqtt2_server_MSGCNT 3472
   mqtt2_server_TIME 2025-10-22 09:29:47
   .DT:
     DEVICETOPIC zigbee2mqtt/zigbee_raumthermostat
   .attraggr:
   .attreocr:
     desired-temp
     temperature
   .attreour:
     desired-temp
   .attrminint:
   .userReadings:
     HASH(0x55ff82ede728)
     HASH(0x55ff83071468)
   Helper:
     DBLOG:
       desired-temp:
         logdb:
           TIME       1761118187.91917
           VALUE      18
       temperature:
         logdb:
           TIME       1761112907.6205
           VALUE      19.4
   JSONMAP:
     Battery    batteryPercent
     child_lock btnLock
     current_heating_setpoint desired-temp
     frost_protection antiforst
     local_temperature temperature
     system_mode mode
     voltage    batterymV
   READINGS:
     2025-10-21 21:20:41   IODev           mqtt2_server
     2025-10-22 09:29:47   antiforst       ON
     2025-10-19 20:49:35   associatedWith  zigbee_massi
     2025-10-18 17:51:04   attrTemplateVersion 20240402
     2025-10-22 09:29:47   backlight_mode  low
     2025-10-22 09:29:47   btnLock         LOCK
     2025-10-22 09:29:47   child_lock      LOCK
     2025-10-22 09:29:47   current_heating_setpoint 18
     2025-10-22 09:29:47   deadzone_temperature 1
     2025-10-22 09:29:47   desired-temp    18
     2025-10-22 09:29:47   factory_reset   OFF
     2025-10-22 09:29:47   frost_protection ON
     2025-10-22 09:29:47   linkquality     228
     2025-10-22 09:29:47   local_temperature 19.4
     2025-10-22 09:29:47   local_temperature_calibration 0
     2025-10-22 09:29:47   max_temperature_limit 60
     2025-10-22 09:29:47   mode            heat
     2025-10-22 09:29:47   preset          manual
     2025-10-22 09:29:47   running_state   idle
     2025-10-22 09:29:47   schedule_holiday 08:00/22.0°C 23:00/16.0°C
     2025-10-22 09:29:47   schedule_weekday 06:00/20.0°C 08:00/16.0°C 11:30/16.0°C 12:30/16.0°C 17:00/22.0°C 22:00/16.0°C
     2025-10-22 09:29:47   sensor          internal
     2025-10-22 07:00:00   state           desired-temp
     2025-10-22 09:29:47   system_mode     heat
     2025-10-22 09:29:47   temperature     19.4
     2025-10-19 15:01:47   weekprofile     heizprofile Winter:wohnzimmer
     2025-10-22 09:29:47   working_day     disabled
Attributes:
   DbLogExclude .*
   DbLogInclude temperature,desired-temp
   devStateIcon LOCKED:secur_lock:btnLock+UNLOCK UNLOCKED:secur_open:btnLock+LOCK
   devicetopic zigbee2mqtt/zigbee_raumthermostat
   disable    1
   event-on-change-reading desired-temp,temperature
   event-on-update-reading desired-temp
   genericDeviceType thermostat
   icon       temp_control
   jsonMap    current_heating_setpoint:desired-temp local_temperature:temperature Battery:batteryPercent system_mode:mode voltage:batterymV child_lock:btnLock frost_protection:antiforst
   model      zigbee2mqtt_thermostat_with_weekrofile_5_1_1
   readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
zigbee2mqtt/zigbee_raumthermostat:.* { json2nameValue($EVENT) }
zigbee2mqtt/zigbee_raumthermostat/availability:.* { json2nameValue($EVENT) }
   room       Geräte->Systeme->MQTT2,Geräte->Systeme->ZigBee,Module->Heizung
   setList    desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1}
  btnLock:LOCK,UNLOCK $DEVICETOPIC/set {"child_lock": "$EVTPART1"}
  antifrost:OFF,ON $DEVICETOPIC/set {"frost_protection": "$EVTPART1"}
  mode:heat,off $DEVICETOPIC/set {"system_mode": "$EVTPART1"}
  preset:hold,program $DEVICETOPIC/set {"preset": "$EVTPART1"}
  saturday $DEVICETOPIC/set/schedule { "saturday":[$EVTPART1] }
  sunday $DEVICETOPIC/set/schedule { "sunday":[$EVTPART1] }
  weekdays $DEVICETOPIC/set/schedule { "weekdays":[$EVTPART1] }
  weekprofile { no strict 'vars';;  FHEM::attrT_z2m_thermostat_Utils::z2t_send_BHT($NAME, $EVTPART1, $EVTPART2) }
  x_send_set_payload:textField { my $payload = $EVENT;;$payload =~ s/$EVTPART0 //;; qq($DEVICETOPIC/set $payload)}
  backlight:off,low,medium,high $DEVICETOPIC/set {"backlight_mode": "$EVTPART1"}
   stateFormat child_lock
Measured: local_temperature °C | Desired: current_heating_setpoint °C | Preset: preset | Sensor: sensor | Mode: system_mode
   userReadings batteryState:battery_low.* {ReadingsVal($name,'battery_low','false') eq 'false'?'ok':'low'}, batteryVoltage:batterymV.* {ReadingsNum($name,'batterymV',0)/1000}
   webCmd     desired-temp

Nicht über das "disable = 1" wundern, ich habe den RT im Moment deaktiviert.

Danke!

gm
FHEM auf Debian 12 Bookworm Server, Supermicro XEON X5660, 2 TB HD RAID 1, 36GB RAM, 2 x nanoCUL868(MAX!, HM); Homematic, MAX, MiLight, HUE, WLED, diverse Zgibee und Tasmota Geräte

Beta-User

Vermutlich hat das nichts mit zigbee zu tun => falscher Forenbereich, nach MQTT verschieben und die dort angepinnten Fragen beantworten.

Der doppelte readingList-Eintrag ist unnötig und vielleicht irreführend, aber das ist nicht das eigentliche Problem.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rudolfkoenig

Zitat[...] es tritt immer wieder auf, daß das fhem Frontend ewig braucht bis es reagiert,
Das liegt entweder daran, dass FHEM zu viele Aufgaben abarbeiten muss (z.Bsp. weil die Nachrichten Folgeaktionen ausloesen), oder weil ein FHEM Modul auf irgendetwas wartet.
Welcher der beiden Faelle vorliegt, kann man an dem CPU-Verbrauch feststellen.
Ich wuerde "attr global verbose <X>" schrittweise erhoehen, und parallel zu einem Seitenaufruf das Log beobachten.

grossmaggul

O.K., danke, dann werde ich nochmal forschen und evtl. noch mal im MQTT Board nachfragen.

ZitatDer doppelte readingList-Eintrag ist unnötig
Meinst Du das hier? Weil der obere den unteren Eintrag schon mit einschließt?
zigbee2mqtt/zigbee_raumthermostat:.* { json2nameValue($EVENT) }
zigbee2mqtt/zigbee_raumthermostat/availability:.* { json2nameValue($EVENT) }
FHEM auf Debian 12 Bookworm Server, Supermicro XEON X5660, 2 TB HD RAID 1, 36GB RAM, 2 x nanoCUL868(MAX!, HM); Homematic, MAX, MiLight, HUE, WLED, diverse Zgibee und Tasmota Geräte

Beta-User

Zitat von: grossmaggul am 22 Oktober 2025, 15:28:28Meinst Du das hier? Weil der obere den unteren Eintrag schon mit einschließt?
zigbee2mqtt/zigbee_raumthermostat:.* { json2nameValue($EVENT) }
zigbee2mqtt/zigbee_raumthermostat/availability:.* { json2nameValue($EVENT) }

Nein. Die ersten beiden Zeilen. Da werden nur unterschiedliche Readings erzeugt...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

grossmaggul

#5
O.K., da hing noch ein anderes Template drin. ::)

Ich habe das Device nochmal neu angelegt, bringt aber leider keine Besserung.

Die CPU Auslastung von fhem liegt beim Hänger bei 0.2-0.9
FHEM auf Debian 12 Bookworm Server, Supermicro XEON X5660, 2 TB HD RAID 1, 36GB RAM, 2 x nanoCUL868(MAX!, HM); Homematic, MAX, MiLight, HUE, WLED, diverse Zgibee und Tasmota Geräte

passibe

Kannst du mal aus dem Z2M-Log eine der MQTT-Nachrichten rauskopieren, die Z2M über zigbee2mqtt/zigbee_raumthermostat sendet? Quasi so wie oben, nur da war es ja lichtsensor. Und nicht im Fehlerfall, sondern einfach im Normalbetrieb.

Und dann auch über einen Klick auf Show MQTT Traffic im MQTT2_SERVER-Device das, was bei FHEM ankommt?

Bitte poste auch mal (falls definiert) ein list von deinem zigbee2mqtt-Bridge-Device in FHEM.

grossmaggul

Hallo,

danke für Euren Einsatz!

Hier mal die Zeile aus dem z2m Log:
MQTT publish: topic 'zigbee2mqtt/zigbee_raumthermostat', payload '{"backlight_mode":"low","child_lock":"LOCK","current_heating_setpoint":18,"deadzone_temperature":1,"factory_reset":"OFF","frost_protection":"OFF","linkquality":228,"local_temperature":21,"local_temperature_calibration":0,"max_temperature_limit":60,"preset":"manual","running_state":"idle","schedule_holiday":"08:00/22.0°C 23:00/16.0°C","schedule_weekday":"06:00/20.0°C 08:00/16.0°C 11:30/16.0°C 12:30/16.0°C 17:00/22.0°C 22:00/16.0°C","sensor":"internal","system_mode":"heat","working_day":"disabled"}'
Und hier aus dem MQTT Server:
20:35:47.425
zigbee_massi
zigbee2mqtt/zigbee_raumthermostat
{"backlight_mode":"low","child_lock":"LOCK","current_heating_setpoint":18,"deadzone_temperature":1,"factory_reset":"OFF","frost_protection":"OFF","linkquality":228,"local_temperature":21,"local_temperature_calibration":0,"max_temperature_limit":60,"preset":"manual","running_state":"idle","schedule_holiday":"08:00/22.0(194)(176)C 23:00/16.0(194)(176)C","schedule_weekday":"06:00/20.0(194)(176)C 08:00/16.0(194)(176)C 11:30/16.0(194)(176)C 12:30/16.0(194)(176)C 17:00/22.0(194)(176)C 22:00/16.0(194)(176)C","sensor":"internal","system_mode":"heat","working_day":"disabled"}

Eine zigbee2mqtt Bridge habe ich nicht.
FHEM auf Debian 12 Bookworm Server, Supermicro XEON X5660, 2 TB HD RAID 1, 36GB RAM, 2 x nanoCUL868(MAX!, HM); Homematic, MAX, MiLight, HUE, WLED, diverse Zgibee und Tasmota Geräte

Beta-User

Ziemlich sicher ist es immer noch kein ZigBee-Problem (im Sinne der Forenstruktur).

Imo solltest du zigbee2mqtt mal deaktivieren, und dann nachsehen, was du überhaupt an MQTT-Konfiguration hast (anfangen mit "list TYPE=MQTT.*") und wie viele Events FHEM ohne das zu verarbeiten hat. Siehe dazu auch Rudis Hinweis.

Ich habe den Verdacht, dass irgendwas via MQTT unbeabsichtigt im Kreis herumgeschickt wird...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

grossmaggul

O.K., ich habe gerade festgestellt, daß ich doch ein Bridge Device habe, weil ich dem aber einen uneindeutigen Namen gegeben habe, habe ich nicht gleich gefunden.

Wenn ich zigbee2mqtt stoppe und list TYPE=MQTT.* mache gibt's das hier:

DVES_64A27E
Laserdrucker
Stromzaehler
bz.kinoanlage
mqtt2_server
mqtt2_server_192.168.1.175_58122
mqtt2_server_192.168.1.52_64259
mqtt2_server_192.168.1.54_53575
mqtt2_server_192.168.1.55_63803
wz.led_wand
zigbee_Coordinator
zigbee_Heizkoerper
zigbee_Radiator
zigbee_klofenster
zigbee_lichtsensor
zigbee_lichtsensor_aquara
zigbee_massi
zigbee_orchideen
zigbee_plug2
zigbee_raumthermostat
zigbee_server
zigbee_temp_hum_sensor

Warum da allerdings vier MQTT Server auftauchen ist mir schleierhaft.

zigbee_massi ist übrigens die Bridge, man sollte seinen Devices bessere Namen geben, dann findet man sie auch wieder.:-/

Es scheint wohl tatsächlich ein MQTT Problem zu sein, kann man das Thema vielleicht verschieben?
FHEM auf Debian 12 Bookworm Server, Supermicro XEON X5660, 2 TB HD RAID 1, 36GB RAM, 2 x nanoCUL868(MAX!, HM); Homematic, MAX, MiLight, HUE, WLED, diverse Zgibee und Tasmota Geräte

passibe

Was macht zigbee_Coordinator? Ist das nicht die Bridge?

Poste bitte mal ein list sowohl von zigbee_Coordinator als auch von zigbee_massi.

Beta-User

#11
Zitat von: grossmaggul am 23 Oktober 2025, 11:15:58Es scheint wohl tatsächlich ein MQTT Problem zu sein, kann man das Thema vielleicht verschieben?
Kannst du selbst, Knopf dazu sollte ganz unten unter dem ersten Beitrag zu finden sein.

Zitat von: grossmaggul am 23 Oktober 2025, 11:15:58Warum da allerdings vier MQTT Server auftauchen ist mir schleierhaft.
Ist wie bei FHEMWEB etc. auch: Jedes verbundene Gerät ergibt eine Instanz.

Wie schaut es mit der Zahl der events (ohne laufendes zigbee2mqtt) aus?

PS: diese "friendly names" sind alles andere als freundlich und nicht selten der Grund für "komische" Probleme. z2m kennt sowas wie ein Kommentarfeld, da kann man reinschreiben, für was die Dinger jeweils da sind, und in FHEM kann man das auch umbenennen, aber die Topics sollten "technisch" bleiben. Just (nicht nur) my2ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors