(gelöst) ESPEasy-Modul: state auf present/absent

Begonnen von Wernieman, 16 Januar 2019, 11:06:29

Vorheriges Thema - Nächstes Thema

Wernieman

Ich habe bei meinen ESP8266 setState=0, damit ich besser den Überblick behalte. Damit ist state jetzt immer "Initialized"

Eigentlich kann man den state doch auch auf Werte setzen, die man selber will? Ich hätte dort eigentlich eher, ob der ESP8266 erreichbar ist oder nicht (PresentCheck). Mann kann dieses mit FHEM-Bordmitteln machen, aber irgendwie finde ich aktuell nicht die Möglichkeit dazu. Kann mir jemand auf "die Sprünge" helfen?

Lösung:
stateFormat ist das Stichwort
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

eisman

1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Frank_Huber

"stateformat presence" wäre der Weg. der ESP muss dann aber regelmäßig Daten senden.

Wernieman

Danke ... stateFormat hatte ich jetzt auch gefunden ;o)

Manchmal hat man einfach ein "Brett vorm Kopf"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Frank_Huber

Beispiel wie ich es handhabe:
Ich habe im esp ein System Device welches mir alle 120 Sec die Wifi RSSI sendet.
Das Stateformat sieht dann so aus:
attr ESP_SONOFF18 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Wifi-RSSI","")}
Der State zeigt mir die Wifi RSSI an wenn er present ist und "absent" wenn er absent ist.

Wernieman

Danke .. das ist ein guter Tipp!

RSSI_Werte lasse ich mir schon lange senden. Aber so zu Formatieren .. ist super.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Gisbert

Zitat von: Frank_Huber am 16 Januar 2019, 11:15:35
Beispiel wie ich es handhabe:
Ich habe im esp ein System Device welches mir alle 120 Sec die Wifi RSSI sendet.
Das Stateformat sieht dann so aus:
attr ESP_SONOFF18 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Wifi-RSSI","")}
Der State zeigt mir die Wifi RSSI an wenn er present ist und "absent" wenn er absent ist.

Hallo Frank_Huber,

kannst du ein list deines Devices und/oder die raw-Definition anhängen?
Ich krieg mit der einen Zeile, die du gepostet hast, nichts sinnvolles hin.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Frank_Huber

Zitat von: Gisbert am 17 Januar 2019, 21:46:12
Hallo Frank_Huber,

kannst du ein list deines Devices und/oder die raw-Definition anhängen?
Ich krieg mit der einen Zeile, die du gepostet hast, nichts sinnvolles hin.

Viele Grüße Gisbert
Klar, gern. Von was genau? Dem rssi device?

Gesendet von meinem Doogee S60 mit Tapatalk


Wernieman

Ich war zwar nicht angesprochen, aber hier eine List von meinem Test-Device (IP-Verschleiert)

Internals:
   .AttrList  IODev Interval adjustValue colorpicker:RGB,HSV,HSVp deepsleep:0,1 disable:1,0 disableRiskyCmds disabledForIntervals displayTextEncode:1,0 displayTextWidth do_not_notify:0,1 event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading mapLightCmds:lights,nfx maxCmdDuration:slider,0,0.25,15,1 parseCmdResponse pollGPIOs presenceCheck:1,0 readingPrefixGPIO readingSuffixGPIOState readingSwitchText:1,0,2 rgbGPIOs setState:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,50,100 useSetExtensions:0,1 userSetCmds:textField-long wwcwGPIOs
   DEF        1.2.3.4 80 ESPEasy esp_01
   ESPEasy_MSGCNT 77
   ESPEasy_TIME 2019-01-17 21:52:23
   ESP_BUILD  20103
   ESP_BUILD_GIT mega-20190107
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 2
   HOST       1.2.3.4
   IDENT      esp_01
   INTERVAL   300
   IODev      ESPEasy
   LASTInputDev ESPEasy
   MAX_CMD_DURATION 1
   MSGCNT     77
   NAME       ESPEasy_esp_01
   NOTIFYDEV  global
   NR         169
   NTFY_ORDER 50-ESPEasy_esp_01
   PORT       80
   STATE      -61
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.16
   .attraggr:
   .attreocr:
     .*
   .attrminint:
   READINGS:
     2019-01-17 21:52:21   FreeRam         14184
     2019-01-17 21:52:22   Humidity        1.0
     2019-01-17 21:52:23   Humidity-AM2320 43.7
     2019-01-17 21:50:53   Humidity-BMx280 40.3
     2019-01-17 21:51:35   Humidity-HTU21D 36.9
     2019-01-17 21:52:21   Load            25
     2019-01-17 21:50:53   Pressure-BMx280 1006.6
     2019-01-17 21:52:21   RSSI            -61
     2019-01-17 21:52:22   Temperature     22.8
     2019-01-17 21:52:23   Temperature-AM2320 21.6
     2019-01-17 21:50:53   Temperature-BMx280 24.1
     2019-01-17 21:52:22   Temperature-DS-1 21.6
     2019-01-17 21:52:22   Temperature-DS-2 21.1
     2019-01-17 21:51:35   Temperature-HTU21D 22.6
     2019-01-17 21:52:21   UpTime          18
     2019-01-17 21:49:04   presence        present
     2019-01-17 21:33:47   state           Initialized
   helper:
     fpc        1547757232
     pm:
       Encode     1
       JSON       1
     received:
       FreeRam    1547758341
       Humidity   1547758341
       Humidity-AM2320 1547758343
       Humidity-BMx280 1547758253
       Humidity-HTU21D 1547758295
       Load       1547758341
       Pressure-BMx280 1547758253
       RSSI       1547758341
       Temperature 1547758341
       Temperature-AM2320 1547758343
       Temperature-BMx280 1547758253
       Temperature-DS-1 1547758342
       Temperature-DS-2 1547758342
       Temperature-HTU21D 1547758295
       UpTime     1547758341
   sec:
     admpwd     
Attributes:
   IODev      ESPEasy
   Interval   300
   event-on-change-reading .*
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy
   setState   0
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"RSSI","")}
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Frank_Huber

List:
Internals:
   CHANGED   
   DEF        192.168.999.999 80 ESPBridge SONOFF_18_Wifi_RSSI
   ESPBridge_MSGCNT 4777
   ESPBridge_TIME 2019-01-17 21:56:13
   ESP_BUILD  20102
   ESP_BUILD_GIT mega-20181117
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   190
   ESP_VERSION 2
   HOST       192.168.999.999
   IDENT      SONOFF_18_Wifi_RSSI
   INTERVAL   300
   IODev      ESPBridge
   LASTInputDev ESPBridge
   MAX_CMD_DURATION 1
   MSGCNT     4777
   NAME       ESP190_SONOFF18
   NOTIFYDEV  global
   NR         228
   NTFY_ORDER 50-ESP190_SONOFF18
   PORT       80
   STATE      -26
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.15
   READINGS:
     2019-01-17 21:56:13   Wifi-RSSI       -26
     2019-01-17 21:55:10   presence        present
     2019-01-17 21:56:13   state           Wif: -26
   helper:
     fpc        1547472000
     pm:
       Encode     1
       JSON       1
     received:
       Wifi-RSSI  1547758573
   sec:
     admpwd     
Attributes:
   DbLogExclude .*
   IODev      ESPBridge
   Interval   300
   comment    PoE Schuppen
   event-on-change-reading .*
   group      System-Hardware
   presenceCheck 1
   readingSwitchText 1
   room       SYSTEM
   setState   3
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Wifi-RSSI","")}
   verbose    0


Raw:
Zitatdefmod ESP190_SONOFF18 ESPEasy 192.168.999.999 80 ESPBridge SONOFF_18_Wifi_RSSI
attr ESP190_SONOFF18 DbLogExclude .*
attr ESP190_SONOFF18 IODev ESPBridge
attr ESP190_SONOFF18 Interval 300
attr ESP190_SONOFF18 comment PoE Schuppen
attr ESP190_SONOFF18 event-on-change-reading .*
attr ESP190_SONOFF18 group System-Hardware
attr ESP190_SONOFF18 presenceCheck 1
attr ESP190_SONOFF18 readingSwitchText 1
attr ESP190_SONOFF18 room SYSTEM
attr ESP190_SONOFF18 setState 3
attr ESP190_SONOFF18 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Wifi-RSSI","")}
attr ESP190_SONOFF18 verbose 0

Screen hängt an

Gisbert

Hallo Frank_Huber und Wernieman,

vielen Dank für die rasche Antwort, ich bin mittlerweile zu müde, um noch etwas sinnvolles hinzubekommen.
Ich schaue es mir morgen an und gebe dann Antwort.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Gisbert

Hallo Frank_Huber,

ok, mein Fehler.
Ich nutze zwar ESPEasy Mega, aber nicht das Modul ESPEasy sondern MQTT; insofern konnte ich keinen Erfolg haben.
Das Modul ESPEasy hat anscheinend ganz interessante Möglichkeiten, so dass ich mich damit mal auseinandersetzen werde.
Ich habe Diskussionen über MQTT vs. Fhem-eigener Module gelesen und zunächst für mich beschlossen an der bestehenden Installation nichts zu ändern, da ich mich mit MQTT in der Zwischenzeit ganz gut auskenne. Diese Einschätzung ändert sich gerade etwas.

Vielen Dank für die Mühe, die mich auf eine weitere interessante Variante gebracht hat.
Viele Grüße
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Wernieman

Du solltst bei ESPEasy (auf dem ESP) beide "Sender" einbauen können ... jedenfalls teoretisch. habe es nicht probiert
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Gisbert

Zitat von: Wernieman am 18 Januar 2019, 13:30:30
Du solltst bei ESPEasy (auf dem ESP) beide "Sender" einbauen können ... jedenfalls teoretisch. habe es nicht probiert
Meinst Du damit unter "Controllers" ein bestimmtes "Protocol"? Zur Zeit nutze ich das Protocol "OpenHAB MQTT".
Welches "Protocol" müsste ich unter "Controllers" auswählen?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Frank_Huber

#14
Zitat von: Gisbert am 18 Januar 2019, 13:59:06
Meinst Du damit unter "Controllers" ein bestimmtes "Protocol"? Zur Zeit nutze ich das Protocol "OpenHAB MQTT".
Welches "Protocol" müsste ich unter "Controllers" auswählen?
FHEM http

defmod ESPBridge ESPEasy bridge 8383
attr ESPBridge authentication 1


User/Pass für die ESPs wird über "set" gesetzt und muss mit dem im ESP gesetzten übereinstimmen.
Alternativ (nicht empfohlen) ohne auth arbeiten.