Sonoff pow r2 Einbindung in FHEM mit Problemen

Begonnen von sibewald, 11 September 2019, 22:42:35

Vorheriges Thema - Nächstes Thema

sibewald

Hallo zusammen,

ich habe mir einen Sonoff pow r2 zur Leistungsmessung meiner Plugin PV Anlage angeschafft und kämpfe jetzt mit der Einbindung in FHEM.

Zunächst habe ich das Device geflast und Tasmota aufgespielt.

Dann mit
define MQTT MQTT2_SERVER 1883 global
eine MQTT Server Instanz kreiert und Autocreate auf 1 gesetzt.
Soweit so gut.
Es wurde dann auch ein Device angelegt und ich habe das POW Template auf das Device angelegt.
Ich kann das Ding auch zuverlässig schalten, nur kommen die Readings nicht wirklich zuverlässig an.

Ich schalte also beispielsweise eine Glühbirne, das Licht geht an, aber die Readings werden nicht aktualisiert. Die Leistungsaufnahme bleibt beispielsweise auf 0.

Ein list ergibt für mein Device folgende Ausgabe:


   CFGFN     
   CID        DVES_1B02DF
   DEF        DVES_1B02DF
   DEVICETOPIC MQTT2_DVES_1B02DF
   FUUID      5d794ff4-f33f-5d4b-9d0a-25d0cec4a2a5f523
   IODev      MQTT
   LASTInputDev MQTT
   MQTT_MSGCNT 32
   MQTT_TIME  2019-09-11 22:27:04
   MSGCNT     32
   NAME       MQTT2_DVES_1B02DF
   NR         381
   STATE      aktuell: 58.0 W Tag: 0.01 kWh Gestern: 0.000 kWh Gesamt: 0.0150 kWh
   TYPE       MQTT2_DEVICE
   OLDREADINGS:
   READINGS:
     2019-09-11 22:25:42   ENERGY_ApparentPower 58
     2019-09-11 22:25:42   ENERGY_Current  0.257
     2019-09-11 22:25:42   ENERGY_Factor   0.99
     2019-09-11 22:25:42   ENERGY_Period   3
     2019-09-11 22:25:42   ENERGY_Power    58
     2019-09-11 22:25:42   ENERGY_ReactivePower 0
     2019-09-11 22:25:42   ENERGY_Today    0.015
     2019-09-11 22:25:42   ENERGY_Total    0.015
     2019-09-11 22:25:42   ENERGY_TotalStartTime 2019-09-08T22:08:58
     2019-09-11 22:25:42   ENERGY_Voltage  227
     2019-09-11 22:25:42   ENERGY_Yesterday 0.000
     2019-09-11 22:25:42   Heap            19
     2019-09-11 22:25:42   LoadAvg         19
     2019-09-11 22:27:04   POWER1          off
     2019-09-11 22:12:52   SaveData        on
     2019-09-11 22:12:52   SetOption26     on
     2019-09-11 22:25:42   Sleep           50
     2019-09-11 22:25:42   SleepMode       Dynamic
     2019-09-11 22:12:51   StateText1      off
     2019-09-11 22:12:51   StateText2      on
     2019-09-11 22:12:51   StateText3      toggle
     2019-09-11 22:12:52   StateText4      hold
     2019-09-11 22:25:42   Time            2019-09-11T21:25:42
     2019-09-11 22:25:42   Uptime          0T00:15:19
     2019-09-11 22:25:42   Wifi_AP         1
     2019-09-11 22:25:42   Wifi_BSSId      34:81:C4:25:9E:51
     2019-09-11 22:25:42   Wifi_Channel    6
     2019-09-11 22:25:42   Wifi_Downtime   0T00:00:06
     2019-09-11 22:25:42   Wifi_LinkCount  1
     2019-09-11 22:25:42   Wifi_RSSI       66
     2019-09-11 22:25:42   Wifi_SSId       KellerLoch
     2019-09-11 22:27:04   state           set_off
Attributes:
   IODev      MQTT
   alias      MQTT2_DVES_1B02DF
   autocreate 0
   devStateIcon {my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");;"<a href=\"http://".ReadingsVal($name,"IPAddress","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a> uptime: ".ReadingsVal($name,"Uptime",undef).sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
   model      A_01c_tasmota_POW
   readingList tele/DVES_1B02DF/LWT:.* LWT
  tele/DVES_1B02DF/STATE:.* { json2nameValue($EVENT) }
  tele/DVES_1B02DF/SENSOR:.* { json2nameValue($EVENT) }
  tele/DVES_1B02DF/INFO.:.* { json2nameValue($EVENT) }
  stat/DVES_1B02DF/RESULT:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
   setList    off:noArg    cmnd/DVES_1B02DF/POWER1 0
  on:noArg     cmnd/DVES_1B02DF/POWER1 1
  toggle:noArg cmnd/DVES_1B02DF/POWER1 2
   setStateList on off toggle
   stateFormat {sprintf("aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
   webCmd     :


Ich hoffe Ihr könnt mir weiterhelfen.

Danke und Grüße
sibewald

Skusi

Wahrscheinlich musst du die Tlemetrie Periode im Configure Logging auf der Tasmota Oberfläche anpassen.

Nur mal kurz vom Smartphone...
HP ThinClient 630, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,Tasmota+IR Lesekopf an Stromz., MAX Fensterkontakte, IButton, Fingerprint, SonOff Tasmota, ESP LED Controler, WLed,zigbee2mqtt...

Beta-User

M.E. widerspricht sich das etwas:
Zitat von: sibewald am 11 September 2019, 22:42:35
Ich kann das Ding auch zuverlässig schalten, nur kommen die Readings nicht wirklich zuverlässig an.

Ich schalte also beispielsweise eine Glühbirne, das Licht geht an, aber die Readings werden nicht aktualisiert. Die Leistungsaufnahme bleibt beispielsweise auf 0.


     2019-09-11 22:27:04   state           set_off

Da kommt also auch die Rückmeldung nicht, dass ausgeschaltet wurde... Wäre ein arger Zufall, wenn du grade das list gemacht hättest in den paar Millisekunden, die das normalerweise dauert, bis "off" zurückkommt ::) .

Bist du sicher, dass die WLAN-Verbindung wirklich zuverlässig läuft?
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

DasQ

#3
Also bei mein pow schaut das List anders aus


Ist aber auch auf meine Bedürfnisse zugeschnitten.

Internals:
   CID        sonoffPow1
   DEF        sonoffPow1
   DEVICETOPIC sonoff_Waeschetrockner
   FUUID      5c4f38e4-f33f-9f3d-89b6-78725c1862e62fe2
   IODev      MQTT2_Broker
   LASTInputDev MQTT2_Broker
   MQTT2_Broker_MSGCNT 2745
   MQTT2_Broker_TIME 2019-09-12 09:53:35
   MSGCNT     2745
   NAME       sonoff_Waeschetrockner
   NR         83
   STATE      <a href="http://192.168.1.190" target="_blank">
Online
</a>
1:on
uptime: 51T20:22:38
<br>
aktuell: 0 W
Tag: 0.000 kWh
Gestern: 0.000 kWh
Gesamt: 179.935 kWh
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-09-12 09:53:35   ENERGY_ApparentPower 0
     2019-09-12 09:53:35   ENERGY_Current  0.000
     2019-09-12 09:53:35   ENERGY_Factor   0.00
     2019-09-12 09:53:35   ENERGY_Period   0
     2019-09-12 09:53:35   ENERGY_Power    0
     2019-09-12 09:53:35   ENERGY_ReactivePower 0
     2019-09-12 09:53:35   ENERGY_Today    0.000
     2019-09-12 09:53:35   ENERGY_Total    179.935
     2019-09-12 09:53:35   ENERGY_TotalStartTime 2019-01-28T17:54:21
     2019-09-12 09:53:35   ENERGY_Voltage  232
     2019-09-12 09:53:35   ENERGY_Yesterday 0.000
     2019-07-22 13:32:37   FallbackTopic   cmnd/sonoffPow1_fb/
     2019-07-22 13:32:37   GroupTopic      sonoffs
     2019-09-12 09:53:35   Heap            18
     2019-07-22 13:32:37   Hostname        SonOff-Pow1
     2019-07-22 13:32:37   IPAddress       192.168.1.190
     2019-09-12 05:36:22   LWT             Online
     2019-09-12 09:53:35   LoadAvg         19
     2019-07-22 13:32:37   Module          Sonoff Pow R2
     2019-07-18 09:16:42   OtaUrl          http://thehackbox.org/tasmota/release/sonoff-basic.bin
     2019-09-12 05:36:22   POWER           
     2019-09-12 09:53:35   POWER1          on
     2019-07-22 13:32:37   RestartReason   Power on
     2019-05-17 11:19:23   SaveData        on
     2019-05-17 11:19:23   SetOption26     on
     2019-09-12 09:53:35   Sleep           50
     2019-09-12 09:53:35   SleepMode       Dynamic
     2019-05-17 11:19:22   StateText1      off
     2019-05-17 11:19:22   StateText2      on
     2019-05-17 11:19:22   StateText3      toggle
     2019-05-17 11:19:23   StateText4      hold
     2019-09-12 09:53:35   Time            2019-09-12T08:53:35
     2019-07-18 09:17:02   UPGRADE         Successful. Restarting
     2019-07-18 09:16:42   Upgrade         Version 6.5.0 from http://thehackbox.org/tasmota/release/sonoff-basic.bin
     2019-09-12 09:53:35   Uptime          51T20:22:38
     2019-09-12 09:53:35   Vcc             3.193
     2019-07-22 13:32:37   Version         6.6.0(release-basic)
     2019-07-22 13:32:37   WebServerMode   Admin
     2019-09-12 09:53:35   Wifi_AP         1
     2019-09-12 09:53:35   Wifi_BSSId      7C:FF:4D:EC:69:23
     2019-09-12 09:53:35   Wifi_Channel    11
     2019-09-12 09:53:35   Wifi_Downtime   0T00:05:29
     2019-09-12 09:53:35   Wifi_LinkCount  47
     2019-09-12 09:53:35   Wifi_RSSI       22
     2019-09-12 09:53:35   Wifi_SSId       1
Attributes:
   IODev      MQTT2_Broker
   devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on
   group      Trockner
   model      A_01c_tasmota_POW
   readingList tele/sonoffPOW1/LWT:.* LWT
  tele/sonoffPOW1/STATE:.* { json2nameValue($EVENT) }
  tele/sonoffPOW1/SENSOR:.* { json2nameValue($EVENT) }
  tele/sonoffPOW1/INFO.:.* { json2nameValue($EVENT) }
  stat/sonoffPOW1/RESULT:.* { json2nameValue($EVENT) }
sonoffPow1:stat/sonoffPOW1/POWER1:.* POWER1
sonoffPow1:tele/sonoffPOW1/UPTIME:.* { json2nameValue($EVENT) }
sonoffPow1:cmnd/sonoffPOW1/POWER:.* POWER
sonoffPow1:stat/sonoffPOW1/UPGRADE:.* UPGRADE
   room       Waschkueche
   setList    POWER1:on,off,toggle cmnd/sonoffPOW1/POWER1 $EVTPART1
   setStateList on off toggle
   sortby     1
   stateFormat <a href="http://IPAddress" target="_blank">
LWT
</a>
1:POWER1
uptime: Uptime
<br>
aktuell: ENERGY_Power W
Tag: ENERGY_Today kWh
Gestern: ENERGY_Yesterday kWh
Gesamt: ENERGY_Total kWh
   webCmd     POWER1


Hast du mal den pow neu gestartet?
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

sibewald

Hallo zusammen,

erst mal vielen Dank für Eure Hilfe.
Speziell danke an DasQ. Dein List hat mir sehr geholfen zu verstehen, wie das Ganze funktioniert und mein Device sieht jetzt auch viel besser aus :-)
Das Problem hat es aber nicht gelöst.

Ich habe dann auch etwas in den Einstellungen im Configure Logging des Devices mit der Telemetrieperiode. (Danke an Skusi!)
Die war bei mir auf 300 und hat dafür gesorgt, dass ich nur alle 5 Minuten eine Rückmeldung bekomme. Stelle ich das Intervall kürzer ein, kommen die Meldungen schon schneller.

Das Einzige, was mir jetzt noch fehlt, wäre ein Empfangen der Daten bei Änderung. Geht das irgendwie oder habe ich einen Denkfehler?

Danke
sibewald

Beta-User

Wenn der POW was sendet, sollte das auch ausgewertet werden. Es kommt also ziemlich sicher nichts an, wie bereits angemerkt.

Ich finde es sinnvoll, bei einem einkanaligen Device "POWER1" zu nutzen, und das nicht in "state" umzuleiten, wie das template das macht. Dann "kann" man auch "on-for-timer" usw..

Wenn es Änderungswünsche/Vorschläge zu dem template gibt, weil irgendwas nicht funktioniert: Bitte melden. (Aber wie gesagt: da ist m.E. irgendwo ein  (technisches) Kommunikationsproblem, das du lösen mußt, mit FHEM/MQTT hat das wenig zu tun.)
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

DasQ

Also in deim oberen List sind doch die empfangen werte. Oder seh ich da was falsch?

   2019-09-11 22:25:42   ENERGY_ApparentPower 58
     2019-09-11 22:25:42   ENERGY_Current  0.257
     2019-09-11 22:25:42   ENERGY_Factor   0.99
     2019-09-11 22:25:42   ENERGY_Period   3
     2019-09-11 22:25:42   ENERGY_Power    58
     2019-09-1


Mir ist jetzt nicht so ganz klar was du mit dem empfangen meinst?

Also bei mir, wenn die Waschmaschine läuft ist was weis ich, alle 10 Sekunden eine Aktualisierung. Realtime macht bei einem Verbraucher wie einer Waschmaschine keinen Sinn und Müllt nur unnötig den log voll.

Wie das jetzt bei einer Photovoltaikanlage ist kann ich nicht sagen, aber ich denk das ist eher linear, also ,,verändert" sich nicht soviel, ggf ist das ja dein Problem.

Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

flummy1978

Hallöchen,

ich bin nicht sicher, ob ich Dein Problem richtig verstanden habe, aber wenn ich es richtig sehe, werden nicht alle readings aktualisiert. Weshalb Du eine unvollständige Kommunikation mit dem Sonoff Teil hast. Ich hab bei mir einige Dinger laufen und es dauert ein wenig, aber vor allem hat in einem ähnlichen Fall wie Du ihn hast. folgendes geholfen:

autocreate ==> 1 

Zusätzlich ein wenig Power1 hin und her schalten und Geduld. Dann kommen noch mehr Readings dazu ;)

Wenn wir schon mal bei allgemeinen Tipps sind:

- wenn ich eine neues (Tasmota) Gerät anlege nehme ich immer erst das Template: A_01z_tasmota_set_lowercase_texts_and_state1 danach erst das benötigte. Hat den oben schon mal erwähnten Vorteil, dass auch bei nur einem Relais die Funktion sich immer in "POWER1" und nicht mal  in POWER mal in POWER1 versteckt. Zusätzlich werden viele Sachen einheitlich geschrieben, keine "Anfänger" Probleme mit Groß Klein Schreibung. Die Sonoff Teile sind alle gleich, aber darüber hinaus gibt es ja noch mehr was von Tasmota unterstützt wird und genial ist.

- Meiner Meinung nach ist dein stateformat sehr umständlich:

POWER1
<br>
Aktuell:  ENERGY_Power W
<br>
Heute:    ENERGY_Today kWh
<br>
Gestern:  ENERGY_Yesterday kWh
<br>
Gesamt:   ENERGY_Total kWh

So und ähnlich sehen meine aus. Ausgabe sieht dann so aus als bsp:

#ICON#

Aktuell:  0 W
Heute:    0.000 kWh
Gestern:  3.143 kWh
Gesamt:   10.731 kWh
(Ja man könnte den Punkt in Komma ändern, stört mich aber nicht, ich weiss dass ich gestern keine 3143 sondern 3,143 kWh verbraucht habe an der Stelle ;) )

ZitatIch finde es sinnvoll, bei einem einkanaligen Device "POWER1" zu nutzen, und das nicht in "state" umzuleiten, wie das template das macht. Dann "kann" man auch "on-for-timer" usw..
Das kann ich nur bestätigen: Von Anfang an daran gewöhnt, funktionieren viele Sachen und die stateformat sehen in jedem Device gleich aus. Hilft sehr beim automatisieren mit Notifys oä. Und wenn man immer alles gleich macht, muss man beim erstellen eines ersten notifys nicht auf einmal alle Tasmota geräte ändern / anpassen ;) (*in Erinnerungen ein paar Monate zurück schwelg* gg* )

Vielleicht hilft Dir das für den Anfang ein wenig :)

Grüße
Andreas


steve6502

Weiss nicht ob das noch interessant ist, aber beim tasmota kann man mit "SetOption59 1" erreichen, dass auf ein COMMAND immer mit einem State / Sensor geantwortet wird. Dadurch hast du das update der Readings gleich und abhängig von der eingestellen TelePeriod.

Gruß S.

memed

weiterer tipp ist:
PowerDelta 101
In der Web-Console auf dem Tasmota device eingeben -nur damit konfiguriert man Telemetrie updates bei powerverbauch Änderung ein, hier steht 101 für 1 Watt - mehr -> siehe Tasmota doku.