[HowTo] Sonoff POW an Fhem anbinden

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

Vorheriges Thema - Nächstes Thema

Michi240281

Also kann man am POW keine zusätzlichen Sensoren betreiben? Das wär ja blöd, weil meine Anwendung dann nicht funktioniert. Hab da nämlich einen Heizlüfter fürs Gartenhaus dran und wollte da mit dem DS18b20 ne Regelung draus machen, dass der dann heizt wenn Temperatur < x....
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

pink99panther

Mit der S20 geht das.
Verbrauch kannst ja über die Einschaltdauer errechnen.

Axel74

Hallo

Mit PowerLow und PowerHigh triggere ich mit dem Sonoff Pow eine Ambientebeleuchtung in meinem Wohnzimmer, sobald der Fernseher eingeschaltet wird.
Es kommt allerdings machmal vor, dass die Beleuchtung vollkommen unmotiviert angeht.
Bei der Fehlersuch bin ich über die folgenen inkorrekten Einträge in der Sonoff Console gestolpert:


2017-12-18_16:04:45 Sonoff_Pow01 transmission-state: incoming publish received
2017-12-18_16:04:45 Sonoff_Pow01 MARGINS: {"PowerLow":"OFF"}
2017-12-18_16:04:45 Sonoff_Pow01 PowerLow: OFF
2017-12-18_16:04:46 Sonoff_Pow01 transmission-state: incoming publish received
2017-12-18_16:04:46 Sonoff_Pow01 MARGINS: {"PowerLow":"ON"}
2017-12-18_16:04:46 Sonoff_Pow01 PowerLow: ON


Das PowerLow wird innerhalb von einer Sekunde als OFF und dann als ON gemeldet, obwohl sich der Zustand des Fernsehers nicht verändert hat und der Powerwert deutlich unter dem festgelegten Low-Wert liegt.
Dafür meldet er kein PowerHigh=OFF, obwohl der aktuelle Wert unter dem Grenzwert liegt.

Hat jemand eine Idee woran das liegt?
Update der Firmware am Sonoff hat keine Veränderung bewirkt.

Kann das, das unmotivierte Einschalten der Beleuchtung bewirken?

Das ist übrigens mein DOIF mit der ich die Ambientebeleuchtung schalte:
   
DOIF (([Wohnzimmer_Fernseher_Status] eq "Aus") and ([Sonoff_Pow01:PowerHigh] eq "ON") and ([T:light] < 5)) (set Wohnzimmer_Fernseher_Status An,set Sonoff_Switch02 on) DOELSEIF (([Wohnzimmer_Fernseher_Status] eq "An") and ([Sonoff_Pow01:PowerLow] eq "ON")) (set Wohnzimmer_Fernseher_Status Aus) (set Sonoff_Switch02 off)

Wohnzimmer_Fernseher_Status ist hierin übrigens nur eine Dummy mit dem ich en Status des TV anzeige.

andies

Kann es sein, dass der Strom des TV sehr gering ist? Ich hatte bei geringem Verbrauch nahezu unsinnige Werte von Sonoff.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Axel74

#274
Wenn der Fernseher im StandBy ist, zeigt der Pow ca. 15W an. Die PowerLow-Grenze habe ich bei 30W gesetzt. PowerHigh ist bei 70W.

Ich glaube, dass es sich hier um einen Fehler im Tasmota handelt.

Eigentlich müsste der POW doch folgendes melden, wenn der PowerWert unterhalb des LOW-Wert liegt:

PowerHigh: OFF
PowerLow: ON

Stattdessen meldet er zweimal PowerLow: Erst OFF und dann nach einer Sekunde ON.

bloodybeginner

Hi,

ich brauch mal jemanden der mich in die richtige Richtung schubst.
Ich habe einen Sonoff Pow mit FW 5.11.0 der auch brav publisht.

tele/Sonoff_Pow/SENSOR {"Time":"1970.01.01 01:42:19","ENERGY":{"Total":0.04267,"Yesterday":0.00000,"Today":0.04268,"Period":0.0,"Power":0.0,"Factor":0.00,"Voltage":0,"Current":0.000}}


auf der fhem Seite ist der Broker angelegt:
defmod myBroker MQTT 192.168.0.20:1883
attr myBroker room MQTT
attr myBroker verbose 4

setstate myBroker opened
setstate myBroker 2018-01-15 17:00:36 connection active
setstate myBroker 2018-01-15 00:04:43 state opened


und der Json Konverter:
defmod ej3 expandJSON Sonoff.*:(ENERGY.*|SENSOR.*):.{.*} (Power|Current|Voltage|Yesterday|Today|AnalogInput0|RSSI|.*Humidity|.*Temperature|Counter1|pwr|cnt)
attr ej3 room MQTT
attr ej3 verbose 4

setstate ej3 active
setstate ej3 2018-01-15 14:59:00 state active


und das zugehörige Device:
defmod Sonoff_Pow MQTT_DEVICE
attr Sonoff_Pow IODev myBroker
attr Sonoff_Pow autoSubscribeReadings +/Sonoffpow/+
attr Sonoff_Pow event-on-change-reading . *
attr Sonoff_Pow icon measure_power
attr Sonoff_Pow publishSet ON OFF cmnd/Sonoffpow/POWER
attr Sonoff_Pow room MQTT
attr Sonoff_Pow stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
attr Sonoff_Pow subscribeReading_LWT tele/Sonoffpow/LWT
attr Sonoff_Pow subscribeReading_POWER stat/Sonoffpow/POWER
attr Sonoff_Pow subscribeReading_RESULT stat/Sonoffpow/RESULT
attr Sonoff_Pow subscribeReading_SENSOR tele/Sonoffpow/SENSOR
attr Sonoff_Pow subscribeReading_STATE tele/Sonoffpow/STATE
attr Sonoff_Pow subscribeReading_UPTIME tele/Sonoffpow/UPTIME
attr Sonoff_Pow webCmd ON:OFF

setstate Sonoff_Pow aktuell: 0.0 W Tag: 0.00 Kw/h
setstate Sonoff_Pow 2018-01-15 15:17:01 LWT
setstate Sonoff_Pow 2018-01-15 15:16:48 POWER OFF
setstate Sonoff_Pow 2018-01-15 15:16:48 RESULT {"POWER":"OFF"}
setstate Sonoff_Pow 2018-01-15 15:15:57 SENSOR {"Time":"1970.01.01 00:03:17","ENERGY":{"Total":0.04147,"Yesterday":0.00000,"Today":0.04148,"Period":0.4,"Power":64.1,"Factor":1.00,"Voltage":220,"Current":0.284}}
setstate Sonoff_Pow 2018-01-15 15:15:57 STATE {"Time":"1970.01.01 00:03:17","Uptime":1,"Vcc":3.409,"POWER":"ON","Wifi":{"AP":1,"SSId":"UPC921BA84","RSSI":82,"APMac":"D0:17:C2:65:29:F4"}}
setstate Sonoff_Pow 2018-01-15 15:14:42 UPTIME {"Time":"1970.01.01 00:02:00","Uptime":1}
setstate Sonoff_Pow 2018-01-15 15:17:01 transmission-state subscription acknowledged


beim state vermisse ich leider eine "gescheite" Anzeige der Werte

Wo habe ich den Fehler gemacht?  ;)
Hat jemand einen Hinweis für mich?

Danke für die Unterstützung
   // bb

lewej

Hi,

mach mal ein list auf dein device. Ich vermute, das deine Readins POWER heissen und nicht Power. So ist das bei meinen Sonoff Devices.

gruss
lewej

bloodybeginner

hier das entsprechende List:

Internals:
   CFGFN
   CHANGED
   IODev      myBroker
   NAME       Sonoff_Pow
   NR         839
   STATE      aktuell: 0.0 W Tag: 0.00 Kw/h
   TYPE       MQTT_DEVICE
   READINGS:
     2018-01-15 18:16:56   LWT             online
     2018-01-15 15:16:48   POWER           OFF
     2018-01-15 15:16:48   RESULT          {"POWER":"OFF"}
     2018-01-15 18:45:55   SENSOR          {"Time":"1970.01.01 03:28:50","ENERGY":{"Total":0.04293,"Yesterday":0.00000,"Today":0.04294,"Period":0.0,"Power":0.0,"Factor":0.00,"Voltage":0,"Current":0.000}}
     2018-01-15 18:45:54   STATE           {"Time":"1970.01.01 03:28:50","Uptime":4,"Vcc":3.410,"POWER":"OFF","Wifi":{"AP":1,"SSId":"UPC921BA84","RSSI":78,"APMac":"D0:17:C2:65:29:F4"}}
     2018-01-15 18:19:04   UPTIME          {"Time":"1970.01.01 03:02:00","Uptime":4}
     2018-01-15 18:18:26   state           OFF
     2018-01-15 18:45:55   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/Sonoffpow/POWER
       values:
         ON
         OFF
   sets:
     OFF
     ON
   subscribe:
     tele/sonoffpow/LWT
     tele/Sonoffpow/STATE
     tele/Sonoffpow/SENSOR
     tele/Sonoffpow/UPTIME
     stat/Sonoffpow/RESULT
     stat/Sonoffpow/POWER
     tele/Sonoffpow/LWT
     +/Sonoff_Pow/+
     tele/Sonoff_Pow/LWT
     tele/Sonoff_Pow/STATE
     tele/Sonoff_Pow/SENSOR
     tele/Sonoff_Pow/UPTIME
   subscribeExpr:
     ^tele\/sonoffpow\/LWT$
     ^tele\/Sonoffpow\/STATE$
     ^tele\/Sonoffpow\/SENSOR$
     ^tele\/Sonoffpow\/UPTIME$
     ^stat\/Sonoffpow\/RESULT$
     ^stat\/Sonoffpow\/POWER$
     ^tele\/Sonoffpow\/LWT$
     ^[^/]+\/Sonoff_Pow\/([^/]+)$
     ^tele\/Sonoff_Pow\/LWT$
     ^tele\/Sonoff_Pow\/STATE$
     ^tele\/Sonoff_Pow\/SENSOR$
     ^tele\/Sonoff_Pow\/UPTIME$
   subscribeReadings:
     stat/Sonoffpow/POWER:
       cmd
       name       POWER
     stat/Sonoffpow/RESULT:
       cmd
       name       RESULT
     tele/Sonoff_Pow/LWT:
       cmd
       name       LWT
     tele/Sonoff_Pow/SENSOR:
       cmd
       name       SENSOR
     tele/Sonoff_Pow/STATE:
       cmd
       name       STATE
     tele/Sonoff_Pow/UPTIME:
       cmd
       name       UPTIME
     tele/Sonoffpow/LWT:
       cmd
       name       LWT
     tele/Sonoffpow/SENSOR:
       cmd
       name       SENSOR
     tele/Sonoffpow/STATE:
       cmd
       name       STATE
     tele/Sonoffpow/UPTIME:
       cmd
       name       UPTIME
     tele/sonoffpow/LWT:
       cmd
       name       LWT
Attributes:
   IODev      myBroker
   autoSubscribeReadings +/Sonoff_Pow/+
   event-on-change-reading . *
   icon       measure_power
   publishSet ON OFF cmnd/Sonoffpow/POWER
   room       MQTT
   stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
   subscribeReading_LWT tele/Sonoff_Pow/LWT
   subscribeReading_POWER stat/Sonoffpow/POWER
   subscribeReading_RESULT stat/Sonoffpow/RESULT
   subscribeReading_SENSOR tele/Sonoff_Pow/SENSOR
   subscribeReading_STATE tele/Sonoff_Pow/STATE
   subscribeReading_UPTIME tele/Sonoff_Pow/UPTIME
   webCmd     ON:OFF

lewej

Was genau vermisst du jetzt? Willst du im stateformat was anderes sehen?

bloodybeginner

mhh - ich hätte jetzt erwartet das die Werte (speziell Today, weil ungleich 0) von
SENSOR          {"Time":"1970.01.01 03:28:50","ENERGY":{"Total":0.04293,"Yesterday":0.00000,"Today":0.04294,"Period":0.0,"Power":0.0,"Factor":0.00,"Voltage":0,"Current":0.000}}
an der Stelle von:
STATE      aktuell: 0.0 W Tag: 0.00 Kw/h
auftauchen - oder habe ich da was falsch verstanden?

lewej

#280
dein expand json fühlt nicht alle Readings, teste mal das:

Sonoff.*:.*:.{.*}

lewej

du greifst auf das Reading Today zu und das hat dein Device nicht, nur POWER hast und im stateformat musst du auch das POWER schreiben und nicht Power!

bloodybeginner

#282
Nach Änderung des expand json werden die Readings jetzt anders befüllt:

Internals:
   CFGFN
   CHANGED
   IODev      myBroker
   NAME       Sonoff_Pow
   NR         14024
   STATE      aktuell: 0.0 W Tag: 0.00 Kw/h
   TYPE       MQTT_DEVICE
   READINGS:
     2018-01-15 21:18:37   LWT             online
     2018-01-15 21:24:00   POWER           ON
     2018-01-15 21:24:00   RESULT          {"POWER":"ON"}
     2018-01-15 21:24:55   STATE           {"Time":"1970.01.01 06:07:50","ENERGY":{"Total":0.08090,"Yesterday":0.00000,"Today":0.08090,"Period":1.6,"Power":63.4,"Factor":0.86,"Voltage":220,"Current":0.337}}
     2018-01-15 21:19:05   UPTIME          {"Time":"1970.01.01 06:02:00","Uptime":7}
     2018-01-15 21:24:00   state           ON
     2018-01-15 21:24:55   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/Sonoff_Pow/POWER
       values:
         ON
         OFF
   sets:
     OFF
     ON
   subscribe:
     tele/Sonoff_Pow/SENSOR
     cmnd/Sonoff_Pow/POWER
     +/Sonoff_Pow/+
     tele/Sonoff_Pow/LWT
     stat/Sonoff_Pow/RESULT
     stat/Sonoff_Pow/POWER
     tele/Sonoff_Pow/STATE
     tele/Sonoff_Pow/UPTIME
   subscribeExpr:
     ^tele\/Sonoff_Pow\/SENSOR$
     ^cmnd\/Sonoff_Pow\/POWER$
     ^[^/]+\/Sonoff_Pow\/([^/]+)$
     ^tele\/Sonoff_Pow\/LWT$
     ^stat\/Sonoff_Pow\/RESULT$
     ^stat\/Sonoff_Pow\/POWER$
     ^tele\/Sonoff_Pow\/STATE$
     ^tele\/Sonoff_Pow\/UPTIME$
   subscribeReadings:
     cmnd/Sonoff_Pow/POWER:
       cmd
       name       POWER
     stat/Sonoff_Pow/POWER:
       cmd
       name       POWER
     stat/Sonoff_Pow/RESULT:
       cmd
       name       RESULT
     tele/Sonoff_Pow/LWT:
       cmd
       name       LWT
     tele/Sonoff_Pow/SENSOR:
       cmd
       name       STATE
     tele/Sonoff_Pow/STATE:
       cmd
       name       STATE
     tele/Sonoff_Pow/UPTIME:
       cmd
       name       UPTIME
Attributes:
   IODev      myBroker
   autoSubscribeReadings +/Sonoff_Pow/+
   event-on-change-reading . *
   icon       measure_power
   publishSet ON OFF cmnd/Sonoff_Pow/POWER
   room       MQTT
   stateFormat {sprintf("aktuell: %.1f W Tag: %.2f Kw/h", ReadingsVal($name,"POWER",undef), ReadingsVal($name,"Today",undef))}
   subscribeReading_LWT tele/Sonoff_Pow/LWT
   subscribeReading_POWER stat/Sonoff_Pow/POWER
   subscribeReading_RESULT stat/Sonoff_Pow/RESULT
   subscribeReading_STATE tele/Sonoff_Pow/STATE
   subscribeReading_UPTIME tele/Sonoff_Pow/UPTIME
   webCmd     ON:OFF


der STATE ist aber immer noch:
STATE
aktuell: 0.0 W Tag: 0.00 Kw/h

egal ob ich stateformat "Power" oder "POWER" benutzte


Bei der Gelegenheit habe ich mich an die kalibrierung gemacht
06:26:30 CMD: cmnd/Sonoff_Pow/HLWPcal 10000
06:26:30 RSL: empfangenes topic /HLWPcal, Datengröße 5, Daten 10000
06:26:30 RSL: Gruppe 0, Index 1, Befehl HLWPCAL, Daten 10000
06:26:30 MQT: stat/Sonoff_Pow/RESULT = {"Command":"Unknown"}


wie ist denn die korrekte Syntax auf der POW Konsole? bzw ich hab 3Watt Abweichung bei 60W Glühobst. Ist das ok oder geht das besser?

pink99panther

#283
Dir fehlt

attr Sonoff_Pow subscribeReading_ENERGY tele/sonoff_pow/ENERGY

EDIT:
Dein List sieht irgendwie eigenartig aus.
Hier mal der Auszug aus meiner fhem.cfg
define Sonoff_Pow1 MQTT_DEVICE
attr Sonoff_Pow1 IODev MyBroker
attr Sonoff_Pow1 alias POW_Waschmaschine
attr Sonoff_Pow1 eventMap ON:on OFF:off
attr Sonoff_Pow1 genericDeviceType switch
attr Sonoff_Pow1 icon measure_power
attr Sonoff_Pow1 publishSet on off cmnd/sonoffpow1/power
attr Sonoff_Pow1 room Wäsche,Keller
attr Sonoff_Pow1 stateFormat {sprintf("akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
attr Sonoff_Pow1 subscribeReading_ENERGY tele/sonoffpow1/ENERGY
attr Sonoff_Pow1 subscribeReading_STATE tele/sonoffpow1/STATE
attr Sonoff_Pow1 webCmd on:off

und hier das List dazu
Internals:
   IODev      MyBroker
   NAME       Sonoff_Pow1
   NR         80
   STATE      akutelle Leistung: 2.0 W Tagesverbrauch: 0.04 Kw/h
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       Power:
         logdb:
           TIME       1516050816.54114
           VALUE      2
   READINGS:
     2018-01-15 22:13:36   Current         0.068
     2018-01-15 22:13:36   ENERGY          {"Time":"2018-01-15T22:13:36", "Total":15.832, "Yesterday":0.048, "Today":0.044, "Period":0, "Power":2, "Factor":0.12, "Voltage":229, "Current":0.068}
     2018-01-15 22:13:36   Factor          0.12
     2018-01-15 22:13:36   POWER           on
     2018-01-15 22:13:36   Period          0
     2018-01-15 22:13:36   Power           2
     2018-01-15 22:13:36   Power_avg_day   2.0
     2018-01-15 22:13:36   Power_avg_month 4.3
     2018-01-15 22:13:36   Power_cum_day   160032
     2018-01-15 22:13:36   Power_cum_month 5952993
     2018-01-15 00:00:40   Power_max_day   2.0
     2018-01-07 18:32:52   Power_max_month 2145.0
     2018-01-15 00:00:40   Power_min_day   2.0
     2018-01-10 20:34:24   Power_min_month 0.0
     2018-01-15 22:13:36   STATE           {"Time":"2018-01-15T22:13:36", "Uptime":58, "Vcc":3.122, "POWER":"ON", "Wifi":{"AP":1, "SSId":"XXXXXXX", "RSSI":64, "APMac":"BC:05:43:51:EC:55"}}
     2018-01-15 22:13:36   Time            2018-01-15T22:13:36
     2018-01-15 22:13:36   Today           0.044
     2018-01-15 22:13:36   Total           15.832
     2018-01-15 22:13:36   Uptime          58
     2018-01-15 22:13:36   Vcc             3.122
     2018-01-15 22:13:36   Voltage         229
     2018-01-15 22:13:36   Wifi_AP         1
     2018-01-15 22:13:36   Wifi_APMac      BC:05:43:51:EC:55
     2018-01-15 22:13:36   Wifi_RSSI       64
     2018-01-15 22:13:36   Wifi_SSId       XXXXXXX
     2018-01-15 22:13:36   Yesterday       0.048
     2017-12-10 18:54:56   state           ON
     2018-01-15 22:13:36   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/sonoffpow1/power
       values:
         on
         off
   sets:
     off       
     on         
   subscribe:
     tele/sonoffpow1/ENERGY
     tele/sonoffpow1/STATE
   subscribeExpr:
     ^tele\/sonoffpow1\/ENERGY$
     ^tele\/sonoffpow1\/STATE$
   subscribeReadings:
     tele/sonoffpow1/ENERGY:
       cmd       
       name       ENERGY
     tele/sonoffpow1/STATE:
       cmd       
       name       STATE
Attributes:
   DbLogInclude Power
   IODev      MyBroker
   alias      POW_Waschmaschine
   eventMap   ON:on OFF:off
   genericDeviceType switch
   icon       measure_power
   publishSet on off cmnd/sonoffpow1/power
   room       Wäsche,Keller
   stateFormat {sprintf("akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
   subscribeReading_ENERGY tele/sonoffpow1/ENERGY
   subscribeReading_STATE tele/sonoffpow1/STATE
   webCmd     on:off

bloodybeginner

Zitat von: pink99panther am 15 Januar 2018, 21:50:41
Dir fehlt

attr Sonoff_Pow subscribeReading_ENERGY tele/sonoff_pow/ENERGY
Sollte das nicht durch
autoSubscribeReadings +/Sonoff_Pow/+
Automatisch hinzugefügt werden?

Aber auch das manuell hinzufügen des attr hat nichts gebracht



Gesendet von meinem SM-G930F mit Tapatalk