ESP8266, S20, sonoff- bidirektionale Verbindung

Begonnen von chq, 02 Juni 2018, 10:56:27

Vorheriges Thema - Nächstes Thema

kadettilac89

Zitat von: chq am 02 Juni 2018, 21:42:12
Bin am abarbeiten und hänge momentan an "defmod".

https://wiki.fhem.de/wiki/Trick_der_Woche#defmod

legt ein device an wenn es noch nicht existiert, ansonsten ändert es ein bestehendes. Ist default wenn man sich in der rawdefinition was ansieht.

Was raw definition ...
https://wiki.fhem.de/wiki/Import_von_Code_Snippets

Omega

Ich möchte jetzt den Thread nicht kapern, glaube aber, dass das vom Thema auch hierher passt. Ansonsten bitte ich die Experten, hier https://forum.fhem.de/index.php/topic,87511.0.html zu antworten.

Auch mir geht es um die direkte Rückkopplung, ob direkt am Device (bei mir ein Sonoff Touch) geschaltet wurde oder nicht. Ich habe allerdings für dieses Device zum 1. mal Tasmota (5.13.1) geflashed.

In der Regel schalte ich meine Lampe über einen Bewegungsmelder in Verbindung mit einem DOIF immer nur für eine kurze Zeit (on-for-timer) ein.
Wenn ich aber am Löten bin, bewege ich mich manchmal ,,zu wenig" und das Licht geht aus. Dafür würde ich gerne den Touch über ein längeres ,,Drücken" permanent einschalten können. Ich bekomme es aber nicht hin, dass irgendwo ein ,,hold" auftaucht, dass ich dann abfangen und auswerten könnte.
Die verschiedenen SetOptions im Tasmota Wiki habe ich gesehen, komme aber nicht wirklich klar damit. ,,SetOption13 off" alleine reicht nicht. Als MQTT-Anfänger fehlt mir zusätzlich die Vorstellung, was ich auf dieser Ebene zu berücksichtigen hätte.

Hier noch ein List von meinem Device:
Internals:
   IODev      MyBroker
   NAME       KG.Flur_2.Deckenlicht
   NR         979
   STATE      OFF
   TYPE       MQTT_DEVICE
   qos        *:1
   retain     *:1
   Helper:
     DBLOG:
       state:
         myFHEMdb:
           TIME       1528010339.72996
           VALUE      OFF
         myFHEMdb_LT:
           TIME       1528010339.75816
           VALUE      OFF
   READINGS:
     2018-06-03 09:18:59   state           OFF
     2018-06-03 09:18:59   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/KG.Flur_2.Deckenlicht/POWER
       values:
         on
         off
   sets:
     off       
     on         
   subscribe:
     stat/KG.Flur_2.Deckenlicht/POWER
   subscribeExpr:
     ^stat\/KG.Flur_2.Deckenlicht\/POWER$
   subscribeQos:
     stat/KG.Flur_2.Deckenlicht/POWER 0
   subscribeReadings:
     stat/KG.Flur_2.Deckenlicht/POWER:
       cmd       
       name       state
Attributes:
   DbLogExclude transmission-state
   IODev      MyBroker
   devStateIcon OFF:FS20.off:on ON:FS20.on:off
   icon       light_ceiling
   publishSet on off cmnd/KG.Flur_2.Deckenlicht/POWER
   qos        1
   retain     1
   room       Keller
   stateFormat state
   subscribeReading_state stat/KG.Flur_2.Deckenlicht/POWER
   useSetExtensions 1
   webCmd     on:off


Bin für jede Unterstützung dankbar
LG
Holger

NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

chq

#17
Guten Morgen,

also ich habe mittlerweile meine S20 so konfiguriert (https://wiki.fhem.de/wiki/Sonoff#ESPEasy_einstellen), wie von kadettilac89 hier (https://forum.fhem.de/index.php/topic,88324.msg807765.html#msg807765)beschrieben.

Der Name der beiden Devices "Key" und "Relay" innerhalb von ESPEasy ist wie in der Anleitung beschrieben beidesmal "PUMP".

Da ich das umgebaut habe, konnte ich nun leider die von Dir vorgeschlagen Attribute nicht mehr so umsetzen, wie von Dir hier (https://forum.fhem.de/index.php/topic,88324.msg807730.html#msg807730)vorgeschlagen, Gear.

Mein einziges Problem ist nun, dass ich es nicht hinbekomme, dass per webCmd (So macht man das doch, oder?) gezielt das Relay über die Fhem Weboberfläche geschaltet werden kann.

Wenn ich einfach nur webCmd "setze", scheint Fhem nachvollziehbar nicht klar zu sein, was zu schalten ist und gibt eine Fehlermeldung aus.

Wie kann man das denn definieren? Ist hierfür eventMap zuständig?

Gruß Chris

Internals:
   CFGFN     
   DEF        XXX.XXX.XXX.XXX 80 espBridge ug_PUMP
   ESP_BUILD  20000
   ESP_BUILD_GIT v2.0-20180322
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID 17: ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   1
   ESP_VERSION 2
   HOST       XXX.XXX.XXX.XXX
   IDENT      ug_PUMP
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     33
   NAME       ESPEasy_ug_PUMP
   NOTIFYDEV  global
   NR         2802
   NTFY_ORDER 50-ESPEasy_ug_PUMP
   PORT       80
   STATE      absent
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.39
   espBridge_MSGCNT 33
   espBridge_TIME 2018-06-03 09:21:24
   READINGS:
     2018-06-02 22:17:53   Key             off
     2018-06-03 09:21:24   Relay           off
     2018-06-03 09:50:20   presence        absent
     2018-06-03 09:50:20   state           absent
   helper:
     fpc        1527968061
     pm:
       Encode     1
       JSON       1
     received:
Attributes:
   IODev      espBridge
   Interval   300
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy
   setState   3


Edit:

Zitat von: kadettilac89 am 02 Juni 2018, 22:11:39Ist default wenn man sich in der rawdefinition was ansieht.

Diesen Satz verstehe ich leider nicht.
So einfach wie möglich, so kompliziert wie nötig

Omega

Bei meinem SONOFF Basic habe ich das so gelöst:

Internals:
   DEF        192.168.0.51 80 espBridge SONOFF_1
   HOST       192.168.0.51
   IDENT      SONOFF_1
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     1
   NAME       ESPEasy_SONOFF_1
   NOTIFYDEV  global
   NR         870
   NTFY_ORDER 50-ESPEasy_SONOFF_1
   PORT       80
   STATE      absent
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.39
   WARNING    192.168.0.51: Keine Route zum Zielrechner
   espBridge_MSGCNT 1
   espBridge_TIME 2018-06-03 10:37:09
   Helper:
     DBLOG:
       presence:
         myFHEMdb:
           TIME       1528015029.36809
           VALUE      absent
       state:
         myFHEMdb:
           TIME       1528015026.3005
           VALUE      off
   READINGS:
     2017-11-07 22:37:02   Key             off
     2018-03-19 09:33:30   RSSI            -77
     2018-04-12 17:59:11   Relay           off
     2018-03-19 08:57:38   Uptime          53.64
     2018-06-03 10:37:09   presence        absent
     2018-06-01 15:39:01   state           opened
   helper:
     fpc        1527860355.25946
     pm:
       Encode     1
       JSON       1
     received:
Attributes:
   IODev      espBridge
   Interval   300
   devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off
   eventMap   /longpulse 12 on:on-for-timer:textField/longpulse 12 off:off-for-timer:textField/gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/statusRequest:status gpio 12/
   group      ESPEasy Device
   icon       hue_filled_outlet
   presenceCheck 1
   readingSwitchText 1
   room       Arbeitszimmer,ESPEasy
   setState   0
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Relay","")}
   webCmd     :


LG
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

chq

Bzgl. der visuellen Anzeigen der Fhem Weboberfläche scheint nun alles gut zu sein.

Worüber ich mir noch immer nicht sicher bin ist die Frage, welche Zustände ich vom ESP aus in Richtung Fhem schicken lassen soll. Eigentlich kommen nur zwei Varianten in Frage:

a) Nur den Zustand des Relais
b) Den Zustand des Relais und der Taste

Eigentlich müsste es doch reichen, sich den Zustand des Relais schicken zu lassen, oder?

Gruß Chris
So einfach wie möglich, so kompliziert wie nötig