Skip to content

Mqtt Fehler modulmeldung: <class 'typeerror'> ('must be real number, not nonetype',) #2471

@dirkhe

Description

@dirkhe

installierte Version 2025-06-17 17:10:56 +0200 [7ef7424]

Ich habe unterhalb eines MQTT Gerätes mehrere Zähler angelegt. Sobald einer keine Daten mehr sendet, wird die o.g Fehlermeldung an allen Zählern angezeigt. Ebenso im Log wird das so gemeldet.
Das verwirrt total, weil ich die ganze Zeit nach dem Fehler gesucht habe von den Geräten, die senden.
Es wäre gut wenn man die Fehler pro Zähler, also Komponente hinterlegen würde.

Ich habe halt auch ganze Zeit den Fehler gesucht, weil im Mqtt Broker die gesendeten Werte sofot wieder überschrieben werden, daher dachte ich das wäre das Problem.

Letztlich bin ich durch den code gegangen und habe es so rausgefunden.

2025-06-17 18:11:40,759 - {modules.common.component_context:62} - {DEBUG:device0} - Update Komponenten ['Hauptzaehler', 'MQTT-Wechselrichter', 'MQTT-Zähler']
2025-06-17 18:11:41,818 - {modules.devices.generic.mqtt.device:39} - {DEBUG:device0} - Empfange MQTT Daten für Gerät 0: {'openWB/mqtt/counter/0/get/imported': 48003312.8, 'openWB/mqtt/counter/0/get/exported': 66344889.1, 'openWB/mqtt/counter/0/get/power': 23.8, 'openWB/mqtt/pv/5/get/exported': 8316016.9, 'openWB/mqtt/pv/5/get/power': -20.4}
2025-06-17 18:11:41,820 - {modules.common.store._api:26} - {DEBUG:device0} - Raw data CounterState(currents=[0.0, 0.0, 0.0], powers=[0.0, 0.0, 0.0], voltages=[230.0, 230.0, 230.0], power_factors=[0.0, 0.0, 0.0], imported=48003312.8, exported=66344889.1, power=23.8, frequency=None)
2025-06-17 18:11:41,821 - {modules.common.store._api:26} - {DEBUG:device0} - Raw data InverterState(currents=[0.0, 0.0, 0.0], power=-20.4, exported=8316016.9, imported=0, dc_power=None)
2025-06-17 18:11:41,823 - {modules.common.fault_state:49} - {ERROR:device0} - Hauptzaehler: FaultState FaultStateLevel.ERROR, FaultStr <class 'TypeError'> ('must be real number, not NoneType',), Traceback: 
Traceback (most recent call last):
  File "/var/www/html/openWB/packages/modules/common/configurable_device.py", line 48, in __call__
    self.__updater(components_list)
  File "/var/www/html/openWB/packages/modules/devices/generic/mqtt/device.py", line 41, in update_components
    component.update(received_topics)
  File "/var/www/html/openWB/packages/modules/devices/generic/mqtt/counter.py", line 39, in update
    imported, exported = self.sim_counter.sim_count(power)
  File "/var/www/html/openWB/packages/modules/common/simcount/_simcounter.py", line 14, in sim_count
    self.data = sim_count(power, self.topic, self.data, self.prefix)
  File "/var/www/html/openWB/packages/modules/common/simcount/_simcount.py", line 34, in sim_count
    if math.isnan(power_present):
TypeError: must be real number, not NoneType

Der Fehler wurde im Forum so auch schon diskutiert und dann war er plötzlich weg. Ich würde wetten, da hatte auch eine Componente kurzfristig ausgesetzt.

Ich könnte zwar für jeden Zähler ein eigenes Device anlegen, aber das entspräche nicht der Doku, weil die Daten von einer Sammelstelle (bei mir ein Raspi) kommen.

Vlt. könnte man ja auch noch eine disable Funktion hinzufügen, denn wenn man den Zähler löscht und hinterher wieder anlegt, bekommt er eine neue Nummer, was dann blöd wäre.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions