Sonoff state aktualisieren

Begonnen von kurvi, 05 Juni 2017, 09:35:27

Vorheriges Thema - Nächstes Thema

kurvi

Hallo Fhem Gemeinde,
setze über MQTT mehrere Sonoff BASIC ein, die ich zum Licht schalten verwende.
Der Sonoff BASIC ist mit TASMOTA geflashed und hinter dem Lichtschalter verbaut. Der Lichtschalter selber schaltet direkt GPIO 14 vom Sonoff als 09 Swich1.
Der Sonoff selber schaltet dann über das Relais den Lampendraht, somit kann ich das Licht sowohl über den Lichtschalter als auch über Fhem, die Frontends Tablet UI, smartVISU oder die TASMOTA Web-Oberfläche schalten.

Beim ansteuern über Fhem, Tablet UI oder smartVISU ändert sich das Reading Power und state von ON auf OFF, leider aber nicht wenn ich den Lichtschalter (GPIO 14) betätige oder über die TASMOTA Web-Oberfläche schalte, dann ändert sich nur das Reading Power aber nicht state.

Könntet Ihr mir dabei helfen wie ich es hin bekomme, das sich auch state aktualisiert, wenn über GPIO 14 oder die TASMOTA Web-Oberfläche geschaltet wird.
Das heißt, der Zustand von Reading Power soll auch an state übergeben werden.


Hier die Konfiguration vom Sonoff  Basic:

defmod Sonoff_basic_01_Switch MQTT_DEVICE
attr Sonoff_basic_01_Switch IODev Mosquitto
attr Sonoff_basic_01_Switch alias Lichtschalter Esstisch
attr Sonoff_basic_01_Switch devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON
attr Sonoff_basic_01_Switch icon hue_filled_br30
attr Sonoff_basic_01_Switch publishSet ON OFF cmnd/Sonoff-Basic-01/POWER/set
attr Sonoff_basic_01_Switch room 1_Wohnzimmer,Mosquitto
attr Sonoff_basic_01_Switch stateFormat Power
attr Sonoff_basic_01_Switch subscribeReading_Power stat/Sonoff-Basic-01/POWER
attr Sonoff_basic_01_Switch subscribeReading_Sensor tele/Sonoff-Basic-01/SENSOR
attr Sonoff_basic_01_Switch subscribeReading_Status stat/Sonoff-Basic-01/STATUS
attr Sonoff_basic_01_Switch webCmd ON:OFF

setstate Sonoff_basic_01_Switch OFF
setstate Sonoff_basic_01_Switch 2017-06-05 05:22:46 Power OFF
setstate Sonoff_basic_01_Switch 2017-06-05 09:20:22 Sensor {"Time":"2017-06-05T08:20:22", "Switch1":"OFF"}
setstate Sonoff_basic_01_Switch 2017-06-05 09:20:22 Switch1 OFF
setstate Sonoff_basic_01_Switch 2017-06-05 09:20:22 Time 2017-06-05T08:20:22
setstate Sonoff_basic_01_Switch 2017-06-03 10:25:00 state OFF
setstate Sonoff_basic_01_Switch 2017-06-05 09:20:22 transmission-state incoming publish received

LG
Christian


smoudo

#1
Kannst du nicht einfach setreading state on:off
setzen? So hab ich das in einem doif gelöst in dem
Es mir andere readings gefüllt vom ESP gefüllt hat.

Grüße

Matze

kurvi

Hi Matze,
bin nicht ganz sicher ob ich Dich richtig verstehe. Könntest mir da noch mal auf die Sprünge helfen.
Verwende das MQTT_DEVICE mit einem IODev Mosquitto.
Hab mal ein Bild mitgeschickt.

Gruß
Christian

smoudo

Und du willst nur State mit in Off füttern?

attr stateformat state

Probier mal ob das funkt.
Ich hatte das ganze in einem doif verbaut und nen dummy gefüttert.
Warum gehst du über einen mqtt Broker? Ich mach die ESP direkt über
Das Modul easyesp und espeasy Firmware.

Grüße

Matze

kurvi

Mit TASMOTA kann ich meine Sonoff als Hue Bridge und Belkin WeMo direct ansprechen daher hatte ich mich dafür entschieden. Weiß nicht ob das mit espeasy auch möglich wäre.

"Stateformat state" hat keine Auswirkung wenn ich über GPIO 14 oder die TASMOTA Web-Oberfläche schalte.

Gruß
Christian

kurvi

Konnte das Problem lokalisieren,
hat nichts mit Sonoff oder ESP8266 zu tun, der MQTT-Brocker Mosquitto stellt die Daten korrekt zur Verfügung.

Das Modul MQTT_DEVICE aktualisiert bei einem neuen Readings auf Power das Readings state nicht.
Vielleicht hat jemand dazu noch eine Idee.

Gruß
Christian

kurvi

Konnte alle Probleme lösen,
mit der korrekten Attribut Vergabe läuft alles rund und sauber.

defmod Sonoff_basic_01_Switch MQTT_DEVICE
attr Sonoff_basic_01_Switch IODev Mosquitto
attr Sonoff_basic_01_Switch alias Lichtschalter Esstisch
attr Sonoff_basic_01_Switch devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON
attr Sonoff_basic_01_Switch icon hue_filled_br30
attr Sonoff_basic_01_Switch publishSet ON OFF cmnd/Sonoff-Basic-01/POWER/set
attr Sonoff_basic_01_Switch room 1_Wohnzimmer,Mosquitto
attr Sonoff_basic_01_Switch stateFormat state
attr Sonoff_basic_01_Switch subscribeReading_Sensor tele/Sonoff-Basic-01/SENSOR
attr Sonoff_basic_01_Switch subscribeReading_state stat/Sonoff-Basic-01/POWER
attr Sonoff_basic_01_Switch webCmd ON:OFF

setstate Sonoff_basic_01_Switch OFF
setstate Sonoff_basic_01_Switch 2017-06-07 14:09:10 Sensor {"Time":"2017-06-07T13:09:10", "Switch1":"ON"}
setstate Sonoff_basic_01_Switch 2017-06-07 14:09:10 Switch1 ON
setstate Sonoff_basic_01_Switch 2017-06-07 14:09:10 Time 2017-06-07T13:09:10
setstate Sonoff_basic_01_Switch 2017-06-07 11:33:11 state OFF
setstate Sonoff_basic_01_Switch 2017-06-07 14:09:10 transmission-state incoming publish received

In dieser Kombination funktioniert Tablet UI, smartVISU und direkte Ansteuerung über MQTT Brocker (Sonoff GPIO-PIN)
Gilt auch für Sonoff TH10/16, POW, wobei ich hier 2 Devices switch und sensor anlege.


Gruß
Christian

Billy

Konnte ich nachvollziehen!

Allerdings

attr Sonoff_2 publishSet ON OFF cmnd/sonoff_2/POWER1

anstatt

attr Sonoff_2 publishSet ON OFF cmnd/sonoff_2/POWER/set

Bei mir läuft Tasmota Program version   5.1.0

Gruß Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

kurvi

Interessant,
verwende noch Version 4.1.3, werde aber mal am WE auf 5.1.3 anheben und die Topics im Auge behalten.


zur Info, habe gestern Abend auch noch den DUAL getestet, funktioniert ebenfalls mit den Attributen.

attr Sonoff_dual_01_R1_Switch publishSet ON OFF cmnd/Sonoff-DUAL-01/POWER1/set
attr Sonoff_dual_01_R1_Switch stateFormat state
attr Sonoff_dual_01_R1_Switch subscribeReading_state stat/Sonoff-DUAL-01/POWER1

attr Sonoff_dual_01_R2_Switch publishSet ON OFF cmnd/Sonoff-DUAL-01/POWER2/set
attr Sonoff_dual_01_R2_Switch stateFormat state
attr Sonoff_dual_01_R2_Switch subscribeReading_state stat/Sonoff-DUAL-01/POWER2


Gruß
Christian

andies

Kurze Frage: müssen die Befehle ON/OFF groß geschrieben werden? Bei mir scheint das so zu gehen.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
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

B.Stromberg

#10
Moin!
Da scheint es mit groß oder klein eh irgendwie Konfusionen im Bereich MQTT / sOnOff zu geben.

Hatte in meinem anderen Thread auch das Problem, dass in der Tablet UI nicht der Schaltzustand von sOnOff Basic ausgelesen wurde, im FHEM Frontend aber sehr wohl.

Erst durch setzen von:

data-set-on="ON"
data-set-off="OFF"
data-get-on="ON"
data-get-off="OFF"


werden die Schaltzustände auch wirklich ausgelesen.

EDIT:
Nochmal was Anderes:

@kurvi

Du arbeitest doch auch mit dem sOnOff Basic.
Habe da eine Frage zum GPIO 14

Schaltet dieser nur das Relais?

Oder könnte man dort beispielsweise auch einen Schließer/Taster anschließen und dessen Zustand auslesen?

Hintergrund:
Ich nutze die 5V sOnOffs für meine Rolladen Steuerung. Schließt das Relais vom sOnOff erzeugt dieses einen Tastbefehl an den Rolladenmotoren und diese bewegen sich.
Nachteil, es kann nicht ausgelesen werden, ob offen oder geschlossen.

Nun ist meine Frage, ob man an einen GPIO einen Schließer anklemmen könnte und dessen Zustand auslesen / senden kann via MQTT?

Würde dann einfach einen Taster an den GPIO anklemmen und etwas an den Rolladen basteln.
Ist der Taster geschlossen, ist der Rolladen auf, ist er offen, ist der Rolladen geschlossen... Oder halt umgekehrt.

Würde das so gehen?

Oder sind die GPIOs nur zum schalten des Relais auf der Platine zu gebrauchen?

Falls ja, entsteht die nächste Frage. Habe Tasmota von Arends geflashed, dort finde ich nirgendwo die Option die GPIOs auszulesen....


Fragen über Fragen :(



 

McDiller

Hätte da auch mal so eine frage zum Thema satus aktualisieren

Folgendes problem: Würde gerne sagen wir mal alle 10 sek den status von meinem Sonoff Basic auslesen oder zumindestens das er mir den richtigen aktuellen status anzeigt!!!

Und eventuell mir eine rückmeldung gibt ob es mit dem anschalten bzw. ausschalten geklappt hat

Jemand eine Idee ?????


defmod Sonoff MQTT_DEVICE
attr Sonoff IODev Mosquitto
attr Sonoff devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON
attr Sonoff eventMap { dev=>{"is_on" => "on", "is_off" => "off"}, usr=>{"on"=>"set_on", "off"=>"set_off"} }
attr Sonoff icon hue_filled_br30
attr Sonoff publishSet ON OFF cmnd/Sonoff/POWER1
attr Sonoff stateFormat state
attr Sonoff subscribeReading_.* last_cmd
attr Sonoff subscribeReading_Licht stat/Sonoff/POWER1
attr Sonoff subscribeReading_Sensor tele/Sonoff/SENSOR
attr Sonoff subscribeReading_state state/Sonoff/POWER
attr Sonoff webCmd ON:OFF