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