Popp Außensteckdose - PowerFactor überschreibt energy Reading

Begonnen von Zergman, 01 April 2022, 15:21:28

Vorheriges Thema - Nächstes Thema

Zergman

Hallo FHEM Z-Wave Maintainer,

Kurzfassung:
ich habe eine Popp Außensteckdose (https://www.popp.eu/de/produkte/schaltsteckdose-aussen/). Dieses Gerät liefert - neben den üblichen Energie- und Leistungswerten - auch den "PowerFactor". Leider überschreibt der PowerFactor z.Z. das Reading "energy" in dem der Energiewert gespeichert wird. Ich habe unten einen Patch angehängt, wie das meiner Meinung nach verhindert werden kann und der Power Factor in einem eigenen Reading landet.

Die Details:

List des Z-Wave Devices:

Internals:
   DEF        d1d7ff84 11
   FUUID      6246f98e-f33f-2c51-19fb-bfbb3a9431da06da
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     12
   NAME       ZWave_SWITCH_BINARY_11
   NR         17
   STATE      on
   TYPE       ZWave
   ZWDongle_0_MSGCNT 12
   ZWDongle_0_RAWMSG 0004000b0631052042138b7e00
   ZWDongle_0_TIME 2022-04-01 15:22:43
   ZWaveSubDevice no
   cmdsPending 0
   homeId     XXXXXX
   isWakeUp   
   lastMsgSent 1648819032.32164
   nodeIdHex  0b
   .attraggr:
   .attrminint:
   .vclasses:
   READINGS:
     2022-04-01 15:15:11   IODev           ZWDongle_0
     2022-04-01 15:09:36   model           Popp & Co 700397 Wall Plug Switch Outdoor Schuko (IP44)
     2022-04-01 15:09:36   modelConfig     popp/700397.xml
     2022-04-01 15:09:36   modelId         0154-0003-000a
     2022-04-01 15:11:15   reportedState   on
     2022-04-01 15:17:12   routeInfo       timeToCb:0.02 repeaters:0 rssi0:aboveMaxPower ackCh:0 lastCh:0 scheme:LastWorkingRoute rep:at 100kbps routeTries:1 lastFailed:
     2022-04-01 15:11:15   state           on
     2022-04-01 15:11:15   swbStatus       255
     2022-04-01 15:17:12   timeToAck       0.030
     2022-04-01 15:17:12   transmit        OK
     2022-04-01 15:09:37   zwavePlusInfo   version:01 role:AlwaysOnSlave node:Z-Wave+Node installerIcon:0700 userIcon:0700
Attributes:
   classes    ZWAVEPLUS_INFO ASSOCIATION MULTI_CHANNEL_ASSOCIATION ASSOCIATION_GRP_INFO TRANSPORT_SERVICE VERSION MANUFACTURER_SPECIFIC DEVICE_RESET_LOCALLY POWERLEVEL SECURITY_S2 SWITCH_BINARY METER PROTECTION CONFIGURATION CENTRAL_SCENE SENSOR_MULTILEVEL SUPERVISION FIRMWARE_UPDATE_MD
   room       ZWave


Ausschnitt aus dem Device Log vor der Änderung (Energie und PowerFactor landen unter "energy"):

2022-04-01_15:11:58 ZWave_SWITCH_BINARY_11 energy: 0 kWh
2022-04-01_15:11:58 ZWave_SWITCH_BINARY_11 power: 0 W
2022-04-01_15:11:58 ZWave_SWITCH_BINARY_11 voltage: 222.8 V
2022-04-01_15:11:58 ZWave_SWITCH_BINARY_11 current: 0.01 A
2022-04-01_15:11:58 ZWave_SWITCH_BINARY_11 energy: 0.497 PowerFactor
2022-04-01_15:11:58 ZWave_SWITCH_BINARY_11 frequency: 50.03 Hz


Patch mit dem man den PowerFactor in ein anderes Reading leiten kann (und die Einheit entfernt):

Index: 10_ZWave.pm
===================================================================
--- 10_ZWave.pm (Revision 25908)
+++ 10_ZWave.pm (Arbeitskopie)
@@ -1858,6 +1858,10 @@
   $meter_type_text = "power"   if ($unit_text eq "W");
   $meter_type_text = "voltage" if ($unit_text eq "V");
   $meter_type_text = "current" if ($unit_text eq "A");
+  if ($unit_text eq "PowerFactor") {
+    $meter_type_text = "powerFactor";
+    $unit_text = "";
+  }

   my $mv = hex(substr($v3, 0, 2*$size));
   $mv = ($mv >> 31 ? $mv - 2 ** 32 : $mv) if($size == 4);


Device Log mit der Änderung:

2022-04-01_15:33:27 ZWave_SWITCH_BINARY_11 energy: 0 kWh
2022-04-01_15:33:27 ZWave_SWITCH_BINARY_11 power: 0 W
2022-04-01_15:33:28 ZWave_SWITCH_BINARY_11 voltage: 222.8 V
2022-04-01_15:33:28 ZWave_SWITCH_BINARY_11 current: 0.01 A
2022-04-01_15:33:28 ZWave_SWITCH_BINARY_11 powerFactor: 0.497
2022-04-01_15:33:28 ZWave_SWITCH_BINARY_11 frequency: 50.03 Hz


Ich würde mich freuen, wenn das Problem so (oder so ähnlich) behoben werden könnte.

rudolfkoenig

Das Geraet liefert in der Klasse METER den gleichen "Messwert" (energy) mit unterschiedlichen "Einheiten" (kWh und PowerFactor).
Bzw. die Einheit wurde bei der Protokollspezifikation fuer thematisch aehnliche aber doch verschiedene Messwerte missbraucht.

Der Patch ist mir nicht generisch genug, da sie nur in diesem Fall hilft.
Ich habe zwei Alternativen:


  • Die Werte selbst nach energy_kWh und energy_powerFactor kopieren. Nachteil: energy bleibt erhalten, und ist etwas verwirrend.
    attr ZWave_SWITCH_BINARY_11 userReadings energy_powerFactor:energy.*PowerFactor { $eventValue }, energy_kWh:energy.*kWh { $eventValue }

  • Ein neues Zwave Attribut "complexReadingNamesForMeter", wenn gesetzt, dann werden alle METER Readings als <type>_<unit> angelegt, d.h. power_W, voltage_V, energy_kWh, energy_PowerFactor, usw. Bevor ich das implementiere, brauche ich das Fuersprechen eines weiteren FHEM-Benutzers hier in diesem Thema.

ToKa

RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Zergman

Zitat von: rudolfkoenig am 01 April 2022, 17:38:48
Der Patch ist mir nicht generisch genug, da sie nur in diesem Fall hilft.
Ich gebe dir recht. Generell ist die Lösung des Patches nicht. Generell ist die Lösung für die Extraktion von Leistung "power", Spannung "voltage" und Stromstärke "current" aber auch nicht.  ;)

Ich kann mit beiden von dir vorgeschlagenen Lösungen leben. Options 2 wäre natürlich die bessere Alternative. Mein Vorschlag sollte meiner Meinung nach aber am einfachsten sein und bei bestehenden Systemen am wenigsten kaputt machen - falls die Steckdose in ein bestehendes System integriert wird.

rudolfkoenig

ZitatGenerell ist die Lösung des Patches nicht. Generell ist die Lösung für die Extraktion von Leistung "power", Spannung "voltage" und Stromstärke "current" aber auch nicht.  ;)
Das ueberzeugt.
Ich habe Deine Variante eingecheckt.