neues Modul 98_powerMap

Begonnen von igami, 19 Dezember 2016, 05:36:36

Vorheriges Thema - Nächstes Thema

Loredo

Am einfachsten die raw-Definition des betreffenden HTTPMOD Devices, zur Not ein vollständiges List des Devices.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Vize

Hallo Loredo,

hier die raw-Definition:

defmod httpmod_senec_akku HTTPMOD https://mein-senec.de/endkunde/api/status/getaccusavings.php?anlageNummer=0 300
attr httpmod_senec_akku userattr reading01Format reading01JSON reading01Name replacement1Mode:reading,internal,text,expression,key replacement1Regex replacement1Value sid1Data sid1Header1 sid1Header2 sid1IgnoreRedirects:0,1 sid1URL
attr httpmod_senec_akku disable 0
attr httpmod_senec_akku enableControlSet 1
attr httpmod_senec_akku enableCookies 1
attr httpmod_senec_akku reAuthRegex .*Error.*
attr httpmod_senec_akku reading01Format %.0f
attr httpmod_senec_akku reading01JSON fuelgauge
attr httpmod_senec_akku reading01Name Akku-Füllstand
attr httpmod_senec_akku replacement1Mode key
attr httpmod_senec_akku replacement1Regex %%password%%
attr httpmod_senec_akku replacement1Value password
attr httpmod_senec_akku sid1Data username=e@mail.de&passwort=%%password%%
attr httpmod_senec_akku sid1Header1 Content-Type: application/x-www-form-urlencoded
attr httpmod_senec_akku sid1Header2 Accept: */*
attr httpmod_senec_akku sid1IgnoreRedirects 1
attr httpmod_senec_akku sid1URL https://mein-senec.de/endkunde/auth/authenticate
attr httpmod_senec_akku stateFormat { sprintf("%.0f",ReadingsVal($name,"Akku-Füllstand",0)) }
attr httpmod_senec_akku timeout 20
attr httpmod_senec_akku verbose 2

setstate httpmod_senec_akku 48
setstate httpmod_senec_akku 2017-03-21 12:27:02 Akku-Füllstand 48
setstate httpmod_senec_akku 2017-03-21 12:27:02 pM_consumption 0
setstate httpmod_senec_akku 2017-03-21 12:27:02 pM_energy 0
setstate httpmod_senec_akku 2017-03-21 12:27:02 pM_energy_begin 1490095622.67961


Keine Ahnung, wie die pM_ Sachen unter setstate da rein kommen, bzw. wie man sie wieder los wird...

Gruß
Andreas

Vize

Hallo,

habe noch ein device gefunden, in dem die o.g. pM_ -Readings auftauchen.
Ist eine readingsGroup...

Gruß
Andreas

l2r

#78
ich habe vorhin auch mal das Modul PowerMap getestet.

Bei mir werden die Readings PM_engergy und PM_consumption angelegt. Zusätzlich auch noch die gleichen Readings engergy und consumption.
Ist das so gewollt oder noch ein Bug? Ich habe das bei mehreren HueDevices festgestellt.

Gruß Michael

EDIT: hat sich erledigt. Attribut powerMap_rname_E wurde gesetzt.
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Loredo

Zitat von: Vize am 22 März 2017, 17:22:36
habe noch ein device gefunden, in dem die o.g. pM_ -Readings auftauchen.
Ist eine readingsGroup...


Es lässt sich für mich so leider nicht nachvollziehen. Die HTTPMOD Definition ist für mich unvollständig, da die INTERNALs fehlen und ich mit der Raw-Definition ohne einen Account dort offenbar keine 1-zu-1 Kopie deines Gerätes bekomme.


Bist du sicher, dass du die aktuellste Version per Update installiert hast und keine ältere Version?
Was passiert denn, wenn du folgendes ausführst:



{Dumper powerMap_findPowerMaps($modules{powerMap}{defptr}{NAME})}



  und




{Dumper powerMap_findPowerMaps($modules{powerMap}{defptr}{NAME}, "httpmod_senec_akku")}







Zitat von: l2r am 23 März 2017, 22:21:44
ich habe vorhin auch mal das Modul PowerMap getestet.

Bei mir werden die Readings PM_engergy und PM_consumption angelegt. Zusätzlich auch noch die gleichen Readings engergy und consumption.
Ist das so gewollt oder noch ein Bug? Ich habe das bei mehreren HueDevices festgestellt.

Gruß Michael

EDIT: hat sich erledigt. Attribut powerMap_rname_E wurde gesetzt.


Genau. Wenn man das Attribut verändert, sind ggf. bereits Readings mit dem alten Namen angelegt, die man dann händisch mit deletereading löschen muss.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

TheTrumpeter

Ich bekomme folgenden Logfile-Eintrag 32x hintereinander:
Zitat2017.04.30 13:00:52 2: powerMap LBE: WARNING - Attribute event-min-interval is not compatible when using powerMap with reading 'Auto-Standby'

Hier der Auszug aus der raw-definition des Geräts:
defmod LBE dummy
attr LBE event-aggregator Verdunstungsmenge_24h:300:const:integral:86400
attr LBE event-min-interval .*:300
attr LBE event-on-change-reading .*
attr LBE icon vent_ambient_air
attr LBE powerMap 'Auto-Standby' => { 'ein' => 1, 'aus' => 25,}
attr LBE room LBE250

Das Attribut event-on-change-reading ist für alle Readings des Geräts gesetzt, d.h. der Anspruch von PowerMap lt. CommandRef sollte erfüllt sein.
Warum stört das event-min-interval dann?
(Das habe ich deshalb, um im Logfile auch für Readings, die sich selten ändern, Einträge zwecks durchgängiger Plots zu erhalten...)
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

Loredo

Zitat von: TheTrumpeter am 30 April 2017, 13:07:06
Warum stört das event-min-interval dann?


Das liegt an der Art, wie das Modul arbeitet (und arbeiten muss).
Du kannst es so dann nicht verwenden, tut mir leid.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

TheTrumpeter

Die Berechnung scheint aber trotzdem korrekt zu sein.

Ich könnte natürlich die Berechnung mit PowerMap und die relevanten Statusgrößen in ein neues Dummy-Modul auslagern, um die Fehlermeldung nicht mehr zu bekommen.

Würde nur gerne verstehen, wo der Fehler herkommt, da das Modul trotz der Fehlermeldung (eigentlich Warnung) korrekt zu arbeiten scheint.


Einzig im Filelog habe ich die Readings nicht regelmässig drin, sondern nur sporadisch. Hängt das damit zusammen?
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

Loredo

Das Modul arbeitet Event basiert. Wenn du event-min-interval verwendest, schneidest du diese Events ab.
Es wird zwar richtig gerechnet, aber bei Devices wie einer Lampe wird damit der Zustand an/aus nicht korrekt übertragen, weil das Event dann eben fehlt. Bei Geräten, die regelmäßig ein Event erzeugen, ist das allerdings weniger ein Problem.


Filelog: Ohne Event kann auch nichts verarbeitet werden und wieder ein neues Event fürs Filelog erzeugt werden.


Mit event-aggregator ist das Modul ebensowenig kompatibel. Es wird empfohlen über DbLog zu loggen und die dortigen Möglichkeiten (z.B. für wie häufig etwas geloggt werden soll) zu nutzen.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

TheTrumpeter

Ich habe powerMap nun in ein Dummy-Gerät ausgelagert, das per Notify vom "echten" Gerät gefüttert wird. Damit klappt es wunderbar.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

Eisix

#85
Hallo,

habe heute mal Versuche mit powerMap gemacht, dabei ist mir folgendes aufgefallen.
Wenn ich das richtig aus der CommandRef verstanden habe zeigt pM_energy Wh an.


   powerMap   {
  'state' => {
               'off' => 0,
               'on' => 10
             }



pM_consumption                     10                                        2017-09-05 13:50:41
pM_energy                           2.51111111111111                2017-09-05 13:50:41
pM_energy_begin                   1504609688                          2017-09-05 13:08:08


Bei einem Verbrauch von 10 W kann das aber nicht passen. Es handelt sich um eine Lampe an einem Bewegungsmelder die seit dem Einschalten von powerMap vielleicht 10 min an war.
Habe ich irgendwo einen Denkfehler oder wird eine anderer Wert bei pM_energy angezeigt?

Gruß
Eisix

igami

Zitat von: Eisix am 05 September 2017, 14:02:45
Bei einem Verbrauch von 10 W kann das aber nicht passen. Es handelt sich um eine Lampe an einem Bewegungsmelder die seit dem Einschalten von powerMap vielleicht 10 min an war.
Wie lange sie an war dürftest du doch mit einem Blick in dein Logfile/DbLog herausfinden können.
Bei ~15 Minuten würde es ja passen.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Eisix

Ok, passt.

Noch eine Frage wie macht Ihr das aufsummieren von Räumen oder des ganzen Hauses?
Mit ElectricityCalculator oder was geht am einfachsten?

Gruß
Eisix

igami

Zitat von: Eisix am 05 September 2017, 14:39:26
Noch eine Frage wie macht Ihr das aufsummieren von Räumen oder des ganzen Hauses?
Mit ElectricityCalculator oder was geht am einfachsten?
Wenn es nur um die Leistung geht mache ich das mit DOIF
Raw definition:

defmod myElectricityConsumption DOIF
attr myElectricityConsumption state [#sum:d2:".+_Hauptschalter:.+":power]


".+_Hauptschalter" ist dabei die Regex für die devices. Kann man natürlich auch auf ".+" setzen.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Eisix

Hallo,

zur Info:

bei Verwendung von readingsProxy muss event-on-update-reading auf 1 gesetzt werden damit es funktioniert.

Gruß
Eisix