Probleme mit ESPeasy

Begonnen von M_I_B, 17 März 2018, 13:20:54

Vorheriges Thema - Nächstes Thema

M_I_B

Moin ...

... ich habe nunmehr einige SONOFF Teile umgeflasht. Das ist auch grundsätzlich kein Problem und funktioniert. Wo ich aber immer noch Probleme habe, ist die Einbindung in FHEM...

Die Geräte lassen sich grundsätzlich schalten (set SONOFF1 on|off). Nach der Inbetriebnahme werden die auch kurz als "present" angezeigt, nach ca. 1 Minute aber nur noch als "absent". Ein Schalten direkt über die WEBgui ist dann nicht mehr möglich, wenn ich denn den Status der Präsenz auch erfassen möchte...

Vermutlich habe ich irgendwo Murks gemacht, aber auch nach einigen Wochen, in denen ich die Teile nunmehr in Betrieb habe, komme ich einfach nicht dahinter und erbitte nunmehr Hilfe. Dazu anbei mal der Code in FHEM, exemplarisch geltend auch für die anderen SONOFF- Teile:

Definition einer Steckdose in FHEM:
define SONOFF_ST2 ESPEasy 192.168.1.51 80 espBridge SONOFF_RY_TA
attr SONOFF_ST2  IODev espBridge
attr SONOFF_ST2  devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:on
attr SONOFF_ST2  eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr SONOFF_ST2  group ESPEasy Device
attr SONOFF_ST2  icon hue_filled_outlet
attr SONOFF_ST2  room _90 HW - ESPeasy
attr SONOFF_ST2  stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"RY","")}
attr SONOFF_ST2  webCmd :


Listing dazu:
Internals:
   .eventMapCmd on:noArg off:noArg off:noArg off:noArg
   CFGFN      /opt/fhem/_HW/WL.Sonoff.cfg
   DEF        192.168.1.51 80 espBridge SONOFF_RY_TA
   HOST       192.168.1.51
   IDENT      SONOFF_RY_TA
   INTERVAL   300
   IODev      espBridge
   NAME       SONOFF_ST2
   NOTIFYDEV  global
   NR         959
   NTFY_ORDER 50-SONOFF_ST2
   PORT       80
   STATE      absent
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.38
   .attraggr:
   .attrminint:
   READINGS:
     2018-03-17 13:19:39   presence        absent
     2018-03-17 13:19:39   state           absent
   helper:
     fpc        1521286151
     pm:
       Encode     1
       JSON       1
     received:
Attributes:
   IODev      espBridge
   devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:on
   eventMap   /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
   group      ESPEasy Device
   icon       hue_filled_outlet
   room       _90 HW - ESPeasy
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"RY","")}
   webCmd     :


Die Bridge sieht so aus:
define espBridge ESPEasy bridge 8383
attr espBridge authentication 0
attr espBridge autocreate 1
attr espBridge autosave 1
attr espBridge combineDevices 1
attr espBridge group System
attr espBridge room System


Die Konfiguration der Steckdose habe ich als Bilder angehängt.


Otto123

Hallo Micha,

ich verlinke Dir mal kurz meine schon etwas älteren Mitschriften.

Der Trick ist einen zweiten Wert zu nehmen (z.B. rssi) der immer übertragen wird.

Ich weiß es gab eine elegantere Lösung hier im Forum als meine, vielleicht findest Du die durch meine Stichworte im Artikel :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Frank_Huber

Zitat von: Otto123 am 17 März 2018, 13:48:13
Der Trick ist einen zweiten Wert zu nehmen (z.B. rssi) der immer übertragen wird.

mein "Trick" ist es das Attribut presencecheck zu setzen. :-)
attr SONOFF_02 presenceCheck 0

dev0

ZitatDer Trick ist einen zweiten Wert zu nehmen (z.B. rssi) der immer übertragen wird.
ESPEasy muss einfach nur regelmäßig die benötigten Werte schicken: in der ESP Easy Firmware Device Konfig: "Send Data" aktivieren und ein Interval (Delay) setzen, dass <= dem ESPEasy Modul Interval ist.

Zitatmein "Trick" ist es das Attribut presencecheck zu setzen. :-)
Blödsinn! Bitte unterlasse diese "Hilfestellung", die ich schon öfters von Dir lesen mußte.

Frank_Huber

#4
Zitat von: dev0 am 17 März 2018, 15:05:17
Blödsinn! Bitte unterlasse diese "Hilfestellung", die ich schon öfters von Dir lesen mußte.

Wenn ich keine Presence benötige dann schalte ich es ab. was soll daran Blödsinn sein?
Wenn ich ein Sonoff anlege der den Relais Zustand sendet dann sendet er den nur wenn geschalten wird.
Will ich das "absent" hier verhindern setzte ich das Attribut. Wozu ist das Attribut sonst da?

Klar kann ich alle 30 Sekunden den Zustand des Relais schicken, aber warum soll ist die ESPBridge und FHEM derart unnötig zumüllen?...?

M_I_B

@Otto:
Gute Idee! Werde ich mir mal merken für andere Problemfälle; mir war nicht klar, dsa RSSI periodisch gesendet wird.

@Frank:
Ich will ja eine Präsenz- Anzeige und diese nicht abschalten. Dieses Attribut habe ich schon länger mit "1" gesetzt.

@dev0 (Vornamen hatte ich auch schon mal auf dem Schirm; sorry):
Dein Hint funktioniert! Ich habe jetzt den Button und das Relays jeweils auf 10sec gesetzt (vermutlich zu kurz, aber das hochsetzen kommt später). Jetzt weiß ich auch, für was diese Option da ist. Nun sind alle S20 auch dauerhaft präsent... aBär... Ich habe da wohl noch ein eklatantes Verständnisproblem...

Wenn ich mir in der GUI einen S20 anzeigen lasse (Code siehe oben), dann habe ich ja nur den Button zum schalten. Einschalten geht, ausschalten nicht mehr. Rufe ich nun das Device auf, erkenne ich, das an dieser Stelle das Device immer noch als "absent" dargestellt wird (siehe Screenshot 1). Zudem ist das Reading "presence" identisch mit dem Reading "state"; kann also irgendwie nicht klappen.
Nun finde ich unten unter "Probably associated with" nicht nur die Bridge, sondern zudem ein weiteres Device, welches den gleichen Namen hat, aber ein Prefix "ESPEasy_". Rufe ich nun dieses Device auf (Screenshot 2), sehe ich die vermissten Readings in diesem Device.
Das verwirrt mich nun ungemein  :o Wie hängt das zusammen, das eine schnöde S20 in FHEM auf zwei Devices verteilt ist und wie bekomme ich das in der üblichen Form in ein Device zusammengefasst?

dev0

Lösche beide Devices (nicht die Bridge) und lasse das Device via autocreate neu anlegen und vergib die benötigten Attribute neu. Ursache könnte das unsachgemäße editieren der fhem.cfg sein.