[HowTo] Sonoff POW an Fhem anbinden

Begonnen von Reinhart, 07 November 2016, 16:53:53

Vorheriges Thema - Nächstes Thema

dev0

@SirusX: Wir sind gewillt Dir zu helfen, aber mache es uns bitte nicht unnötig schwer: lese und verstehe bitte die angepinnten Beiträge im Anfängerbereich. Ja, ich meine lesen, nicht überfliegen. Das spart uns allen auf Dauer kostbare Zeit, auch wenn es nur Minuten sind. Danach solltest Du wissen in welcher Form welche Informationen benötigt werden. zB. Logeinträge während des "define ..." und die entsprechenden list Ausgaben.

t1me2die

Moin liebe Leute, ich versuche zur Zeit aus meinen Sonoff POW das Reading für die Power Messung zu unterteilen, leider vergebens.

List von meinem Sonoff POW Device: ku_Tiefkuehlschrank


Internals:
   CHANGED   
   IODev      myBroker
   NAME       ku_Tiefkuehlschrank
   NR         684
   STATE      ON
   TYPE       MQTT_DEVICE
   READINGS:
     2018-03-25 15:09:35   ENERGY          {"Time":"2018-03-25T14:09:34","ENERGY":{"Total":0.071,"Yesterday":0.000,"Today":0.071,"Period":6,"Power":74,"Factor":0.93,"Voltage":236,"Current":0.336}}
     2018-03-25 15:07:59   state           ON
     2018-03-25 15:09:35   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/ku_Tiefkuehlschrank/POWER
       values:
         ON
         OFF
   sets:
     OFF       
     ON         
   subscribe:
     tele/ku_Tiefkuehlschrank/SENSOR
     stat/ku_Tiefkuehlschrank/POWER
   subscribeExpr:
     ^tele\/ku_Tiefkuehlschrank\/SENSOR$
     ^stat\/ku_Tiefkuehlschrank\/POWER$
   subscribeReadings:
     stat/ku_Tiefkuehlschrank/POWER:
       cmd       
       name       state
     tele/ku_Tiefkuehlschrank/SENSOR:
       cmd       
       name       ENERGY
Attributes:
   DbLogExclude .*
   IODev      myBroker
   devStateIcon OFF:FS20.off:on ON:FS20.on:off
   event-on-change-reading state
   genericDeviceType light
   homebridgeMapping On=state,values=OFF:off;ON:on,cmdOff=OFF,cmdOn=ON
   icon       hue_filled_outlet
   publishSet ON OFF cmnd/ku_Tiefkuehlschrank/POWER
   room       Homekit,Kueche,Tasmota
   subscribeReading_ENERGY tele/ku_Tiefkuehlschrank/SENSOR
   subscribeReading_POWER stat/ku_Tiefkuehlschrank/POWER
   subscribeReading_state stat/ku_Tiefkuehlschrank/POWER
   webCmd     ON:OFF


Im Readings ENERGY habe ich den kompletten JSON String, super.
Jedoch bekomme ich diesen nicht unterteilt.

Dazu einmal das JSON Device List:

Internals:
   CFGFN     
   DEF        ku_Tiefkuehlschrank:ENERGY:.*:.{.*} (Total|Yesterday|Today|Period|Power|Factor|Voltage|Current)
   NAME       ej3
   NR         1184
   NTFY_ORDER 50-ej3
   STATE      active
   TYPE       expandJSON
   s_regexp   ku_Tiefkuehlschrank:ENERGY:.*:.{.*}
   t_regexp   (Total|Yesterday|Today|Period|Power|Factor|Voltage|Current)
   version    1.12
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1521980893.21173
           VALUE      active
   READINGS:
     2018-03-25 15:14:35   state           active
Attributes:
   DbLogExclude .*
   room       Tasmota


Es werden im Device ku_Tiefkuehlschrank leider keine weiteren Readings angelegt, wie erhofft.
Habe ich irgendwo was überlesen oder nicht richtig verstanden?

Gruß
Mathze

dev0

Die source regex ist nich ok.
ku_Tiefkuehlschrank:ENERGY:.{.*}

t1me2die

#303
Leider auch keine Veräbnderung  :(


Internals:
   CHANGED   
   IODev      myBroker
   NAME       ku_Tiefkuehlschrank
   NR         684
   STATE      ON
   TYPE       MQTT_DEVICE
   READINGS:
     2018-03-25 20:34:41   ENERGY          {"Time":"2018-03-25T19:34:40","ENERGY":{"Total":0.266,"Yesterday":0.000,"Today":0.266,"Period":0,"Power":0,"Factor":0.00,"Voltage":231,"Current":0.000}}
     2018-03-25 15:07:59   state           ON
     2018-03-25 20:34:41   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/ku_Tiefkuehlschrank/POWER
       values:
         ON
         OFF
   sets:
     OFF       
     ON         
   subscribe:
     tele/ku_Tiefkuehlschrank/SENSOR
     stat/ku_Tiefkuehlschrank/POWER
   subscribeExpr:
     ^tele\/ku_Tiefkuehlschrank\/SENSOR$
     ^stat\/ku_Tiefkuehlschrank\/POWER$
   subscribeReadings:
     stat/ku_Tiefkuehlschrank/POWER:
       cmd       
       name       LIGHT
     tele/ku_Tiefkuehlschrank/SENSOR:
       cmd       
       name       ENERGY
Attributes:
   DbLogExclude .*
   IODev      myBroker
   devStateIcon OFF:FS20.off:on ON:FS20.on:off
   event-on-change-reading state
   genericDeviceType light
   homebridgeMapping On=state,values=OFF:off;ON:on,cmdOff=OFF,cmdOn=ON
   icon       hue_filled_outlet
   publishSet ON OFF cmnd/ku_Tiefkuehlschrank/POWER
   room       Homekit,Kueche,Tasmota
   subscribeReading_ENERGY tele/ku_Tiefkuehlschrank/SENSOR
   subscribeReading_state stat/ku_Tiefkuehlschrank/POWER
   webCmd     ON:OFF



Internals:
   CFGFN     
   DEF        ku_Tiefkuehlschrank:ENERGY:.{.*}
   NAME       ej31
   NOTIFYDEV  ku_Tiefkuehlschrank
   NR         4281
   NTFY_ORDER 50-ej31
   STATE      active
   TYPE       expandJSON
   s_regexp   ku_Tiefkuehlschrank:ENERGY:.{.*}
   t_regexp   .*
   version    1.12
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1521997443.05291
           VALUE      active
   READINGS:
     2018-03-25 20:33:26   state           active
Attributes:
   DbLogExclude .*
   room       Tasmota


Der Mitschnitt in Putty schaut auch korrekt aus.

Gruß
Mathze

dev0

Kann ich nicht nachvollziehen:

define ku_Tiefkuehlschrank dummy

define ej3 expandJSON ku_Tiefkuehlschrank:ENERGY:.{.*}

setreading ku_Tiefkuehlschrank ENERGY {"Time":"2018-03-25T19:34:40","ENERGY":{"Total":0.266,"Yesterday":0.000,"Today":0.266,"Period":0,"Power":0,"Factor":0.00,"Voltage":231,"Current":0.000}}

list ku_Tiefkuehlschrank
Internals:
   CFGFN     
   NAME       ku_Tiefkuehlschrank
   NR         102
   STATE      ???
   TYPE       dummy
   READINGS:
     2018-03-26 09:22:04   ENERGY          {"Time":"2018-03-25T19:34:40","ENERGY":{"Total":0.266,"Yesterday":0.000,"Today":0.266,"Period":0,"Power":0,"Factor":0.00,"Voltage":231,"Current":0.000}}
     2018-03-26 09:22:04   ENERGY_Current  0
     2018-03-26 09:22:04   ENERGY_Factor   0
     2018-03-26 09:22:04   ENERGY_Period   0
     2018-03-26 09:22:04   ENERGY_Power    0
     2018-03-26 09:22:04   ENERGY_Today    0.266
     2018-03-26 09:22:04   ENERGY_Total    0.266
     2018-03-26 09:22:04   ENERGY_Voltage  231
     2018-03-26 09:22:04   ENERGY_Yesterday 0
     2018-03-26 09:22:04   Time            2018-03-25T19:34:40
Attributes:


dev0

Habe mir gerade das list von ku_Tiefkühlschrank noch einmal angesehen, Du hast event-on-change-reading falsch gesetzt. Nimm das raus.

t1me2die

Zitat von: dev0 am 26 März 2018, 09:33:12
Habe mir gerade das list von ku_Tiefkühlschrank noch einmal angesehen, Du hast event-on-change-reading falsch gesetzt. Nimm das raus.

Jetzt, wo du es sagst, logisch.
Oh man.
Recht herzlichen Dank  :)

Gruß
Mathze

Snobs

Hallo ,ich habe mich da jetzt lange dran probiert und kriege es nicht hin :(
Grundsätzlich funktioniert es wenn ich den filter setzte wie Reinhardt das beschrieben hat.
Nun möchte ich den Filter aber eingrenzen und die Readings werden nicht gestetzt egal was ich tue und bitte mal darüber zu schauen.

ZitatInternals:
   IODev      Mosquitto
   NAME       Sonoff_Pow
   NR         158
   STATE      aktuell: 10.0 W Tag: 0.01 Kw/h
   TYPE       MQTT_DEVICE
   READINGS:
     2018-03-30 12:20:10   ENERGY_Current  0.119
     2018-03-30 12:20:10   ENERGY_Factor   0.38
     2018-03-30 12:20:10   ENERGY_Period   0
     2018-03-30 12:20:10   ENERGY_Power    10
     2018-03-30 12:20:10   ENERGY_Today    0.008
     2018-03-30 12:20:10   ENERGY_Total    1.659
     2018-03-30 12:20:10   ENERGY_Voltage  221
     2018-03-30 12:20:10   ENERGY_Yesterday 0.06
     2018-03-30 11:55:31   POWER           ON
     2018-03-30 11:55:31   RESULT          {"POWER":"ON"}
     2018-03-30 12:37:10   STATE           {"Time":"2018-03-30T11:37:10","ENERGY":{"Total":1.661,"Yesterday":0.060,"Today":0.010,"Period":0,"Power":13,"Factor":0.49,"Voltage":224,"Current":0.124}}
     2018-03-30 12:20:10   Time            2018-03-30T11:20:09
     2018-03-30 11:02:02   UPTIME          {"Time":"2018-03-30T10:02:00","Uptime":"23T15:53:13"}
     2018-03-09 23:35:51   state           OFF
     2018-03-30 12:37:10   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/3d_printer/power
       values:
         on
         off
   sets:
     off       
     on         
   subscribe:
     tele/3d_printer/SENSOR
     stat/3d_printer/POWER
     stat/3d_printer/RESULT
     tele/3d_printer/UPTIME
   subscribeExpr:
     ^tele\/3d_printer\/SENSOR$
     ^stat\/3d_printer\/POWER$
     ^stat\/3d_printer\/RESULT$
     ^tele\/3d_printer\/UPTIME$
   subscribeReadings:
     stat/3d_printer/POWER:
       cmd       
       name       POWER
     stat/3d_printer/RESULT:
       cmd       
       name       RESULT
     tele/3d_printer/SENSOR:
       cmd       
       name       STATE
     tele/3d_printer/UPTIME:
       cmd       
       name       UPTIME
Attributes:
   IODev      Mosquitto
   alias      3d_Drucker
   eventMap   ON:on OFF:off
   icon       measure_power
   publishSet on off cmnd/3d_printer/power
   room       00.Büro,Sonoff
   stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef))}
   subscribeReading_ENERGY tele/3d_printer/SENSOR
   subscribeReading_POWER stat/3d_printer/POWER
   subscribeReading_RESULT stat/3d_printer/RESULT
   subscribeReading_STATE tele/3d_printer/SENSOR
   subscribeReading_UPTIME tele/3d_printer/UPTIME
   webCmd     on:off

Das einzige was geht ist folgender
Zitat#define ej1 expandJSON device:sourceReading:.{.*} targetReading
define ej3 expandJSON (Sonoff_Pow.*:.*:.{.*.*{.*.*}})
#define ej3 expandJSON (Sonoff_Pow.*:ENERGY.*:.{.*.*{.*.*}})
#define ej3 expandJSON Sonoff_Pow.*:ENERGY.*:.{.*} (Power|Yesterday|Today)
#define ej3 expandJSON Sonoff_Pow.*:.*:.{.*} (Power|Current|Voltage|Yesterday|Today|Total|Period)
#define ej3 expandJSON Sonoff.*:.*:.{.*} (Power|Yesterday|Today)
attr ej3 room Sonoff

Bitte helft mir den Filter richtig zu setzten.

VG
Sascha

Lucky2k12

Bei mir sieht es in der neuesten Tasmota-Version 5.12.0i jetzt so aus:
S|sonoff.*:.*:.{.*} (.*Power|Current|.*Voltage|.*Yesterday|.*Today|AnalogInput0|Uptime|Switch.*|.*RSSI|.*Humidity|.*Temperature)

Wichtig waren die .* vor Power etc, weil die ein level weiter runter gewandert sind, unter ENERGY{Power...}

so werden ENERGY_Power Readings generiert...
Gruß
HP T610, HM, Jeelink, LGW, mapleCUL868+434

ChrisW

#309
Hat mal jemand den FHEM code für einen sonoff POW r2 ?? ON/Off klappt aber die Werte in FHEM nicht. Da ist wohl beim R2 was anders?

Erkennen tut er in Fhem wohl. Jedoch die Anzeige Aktuell / Tag klappt nicht
Hier ein List:


Internals:
   IODev      myBroker
   NAME       Sonoff_Pow_kellergarten
   NR         868
   STATE      aktuell: 0.0 W Tag: 0.00 Kw/h
   TYPE       MQTT_DEVICE
   .attraggr:
   .attrminint:
   .qos:
     *          0
   .retain:
     *          0
   READINGS:
     2018-10-01 09:07:02   ENERGY          {"Time":"2018-10-01T08:07:01","ENERGY":{"Total":6.107,"Yesterday":5.598,"Today":0.509,"Period":1,"Power":34,"Factor":0.80,"Voltage":229,"Current":0.184}}
     2018-10-01 09:07:02   ENERGY_Current  0.184
     2018-10-01 09:07:02   ENERGY_Factor   0.8
     2018-10-01 09:07:02   ENERGY_Period   1
     2018-10-01 09:07:02   ENERGY_Power    34
     2018-10-01 09:07:02   ENERGY_Today    0.509
     2018-10-01 09:07:02   ENERGY_Total    6.107
     2018-10-01 09:07:02   ENERGY_Voltage  229
     2018-10-01 09:07:02   ENERGY_Yesterday 5.598
     2018-10-01 08:48:37   POWER           ON
     2018-10-01 09:07:02   Time            2018-10-01T08:07:01
     2018-10-01 08:48:36   state           
     2018-10-01 09:07:02   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/sonoffpowkeller/POWER
       values:
         ON
         OFF
   sets:
     OFF       
     ON         
   subscribe:
     tele/sonoffpowkeller/SENSOR
     stat/sonoffpowkeller/POWER
     cmnd/sonoffpowkeller/POWER
     tele/sonoffpowkeller/ENERGY
   subscribeExpr:
     ^tele\/sonoffpowkeller\/SENSOR$
     ^stat\/sonoffpowkeller\/POWER$
     ^cmnd\/sonoffpowkeller\/POWER$
     ^tele\/sonoffpowkeller\/ENERGY$
   subscribeQos:
     cmnd/sonoffpowkeller/POWER 0
     stat/sonoffpowkeller/POWER 0
     tele/sonoffpowkeller/ENERGY 0
     tele/sonoffpowkeller/SENSOR 0
   subscribeReadings:
     cmnd/sonoffpowkeller/POWER:
       cmd       
       name       state
     stat/sonoffpowkeller/POWER:
       cmd       
       name       POWER
     tele/sonoffpowkeller/ENERGY:
       cmd       
       name       ENERGY
     tele/sonoffpowkeller/SENSOR:
       cmd       
       name       ENERGY
Attributes:
   IODev      myBroker
   icon       measure_power
   publishSet ON OFF cmnd/sonoffpowkeller/POWER
   room       STROM
   stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
   subscribeReading_ENERGY tele/sonoffpowkeller/ENERGY
   subscribeReading_POWER stat/sonoffpowkeller/POWER
   subscribeReading_state cmnd/sonoffpowkeller/POWER
   webCmd     ON:OFF
Raspberry PI3 mit allem möglichen.

dev0

Zitat
Jedoch die Anzeige Aktuell / Tag klappt nicht
stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}

Die Readings 'Power' und 'Today' gibt es ja auch nicht.

ChrisW

jep nun auch gemerkt falls es jemand braucht mein Code ... hab noch mehr hinzugefügt:
define Sonoff_Pow_kellergarten MQTT_DEVICE
attr Sonoff_Pow_kellergarten userattr subscribeReading_state subscribeReading_status
attr Sonoff_Pow_kellergarten IODev myBroker
attr Sonoff_Pow_kellergarten devStateIcon ON:on:OFF Off:off:ON
attr Sonoff_Pow_kellergarten event-on-change-reading .*
attr Sonoff_Pow_kellergarten eventMap ON:on OFF:off
attr Sonoff_Pow_kellergarten publishSet ON OFF toggle cmnd/sonoffpowkeller/POWER
attr Sonoff_Pow_kellergarten qos 1
attr Sonoff_Pow_kellergarten retain 1
attr Sonoff_Pow_kellergarten room STROM
attr Sonoff_Pow_kellergarten stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h Gestern: %.3f Kw/h Gesamt: %.4f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
attr Sonoff_Pow_kellergarten subscribeReading_sensor tele/sonoffpowkeller/SENSOR
attr Sonoff_Pow_kellergarten subscribeReading_state stat/sonoffpowkeller/POWER
attr Sonoff_Pow_kellergarten webCmd on:off:toggle

Raspberry PI3 mit allem möglichen.

popy

Hallo, danke für diesen Thread.
Will die Sonoff Pow verwenden um den Stromverbrauch der Waschmaschine zu messen und wenn diese fertig ist (Stromverbrauch niedrig) eine Nachricht an die Smartphones senden bzw. Die Stromzufuhr kappen.

Bevor ich mir die Teile besorge noch eine Frage : geht auch die R2 Version bzw.  Was genau ist der Unterschied?

In AliExpress findet man beide aber mehr die R2.

Danke pOpY

Gesendet von meinem LG-H815 mit Tapatalk


germanikus666

Hallo, ich habe auch versucht den Sonoff Pow bei mir einzurichten.

define Sonoff_Pow_kellergarten MQTT_DEVICE
attr Sonoff_Pow_kellergarten userattr subscribeReading_state subscribeReading_status
attr Sonoff_Pow_kellergarten IODev myBroker
attr Sonoff_Pow_kellergarten devStateIcon ON:on:OFF Off:off:ON
attr Sonoff_Pow_kellergarten event-on-change-reading .*
attr Sonoff_Pow_kellergarten eventMap ON:on OFF:off
attr Sonoff_Pow_kellergarten publishSet ON OFF toggle cmnd/main/POWER
attr Sonoff_Pow_kellergarten qos 1
attr Sonoff_Pow_kellergarten retain 1
attr Sonoff_Pow_kellergarten room MQTT
attr Sonoff_Pow_kellergarten stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h Gestern: %.3f Kw/h Gesamt: %.4f Kw/h", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
attr Sonoff_Pow_kellergarten subscribeReading_sensor tele/main/SENSOR
attr Sonoff_Pow_kellergarten subscribeReading_state stat/main/POWER
attr Sonoff_Pow_kellergarten webCmd on:off:toggle


Ich habe mir mal den Code von weiter oben kopiert.

Ich bekomme im Log folgenden Fehler.

2019.02.09 17:08:10 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 65) line 1.
2019.02.09 17:08:10 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 66) line 1.
2019.02.09 17:08:10 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 67) line 1.
2019.02.09 17:08:11 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 68) line 1.
2019.02.09 17:08:11 1: PERL WARNING: Use of uninitialized value in sprintf at (eval 69) line 1.

Kann mir einer weiter helfen?

DasQ

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