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
hi,
das ist stateFormat
gruss
"stateformat presence" wäre der Weg. der ESP muss dann aber regelmäßig Daten senden.
Danke ... stateFormat hatte ich jetzt auch gefunden ;o)
Manchmal hat man einfach ein "Brett vorm Kopf"
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.
Danke .. das ist ein guter Tipp!
RSSI_Werte lasse ich mir schon lange senden. Aber so zu Formatieren .. ist super.
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
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
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","")}
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
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
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
Du solltst bei ESPEasy (auf dem ESP) beide "Sender" einbauen können ... jedenfalls teoretisch. habe es nicht probiert
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
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.
attr ESPBridge allowedIPs .*
Also mal ernsthaft: Warum immer gleich Global alles freigeben? Warum nicht auf lokale IP-Adressen beschränken?
Hätte da aber noch 2 Fragen auf ESP-Seite:
1. Du setzt den TimeOut auf 1000ms .. ist das nicht etwas lang? Habe bei mir 100ms
2. Check Reply: Hast Du auf Ignore, ich dagegen auf enabled. Gibt es Gründe, das Du auf ignore?
Was mir noch aufgefallen ist:
Full Queue Action: ist bei Dir auf "Ignore New". Ich habe bei mir auf "Delete Oldest", da ich bei einer Queue Tiefe von 10 bestimmt den gleichen Wert 2 mal drin habe, der Neue also der aktuellere und damit der ist, der übertragen werden sollte.
Zitat von: Wernieman am 18 Januar 2019, 14:09:59
attr ESPBridge allowedIPs .*
Also mal ernsthaft: Warum immer gleich Global alles freigeben? Warum nicht auf lokale IP-Adressen beschränken?
Das kann noch ein Relikt der Anfangszeit sein. Da hatte ich einen ESP hier im Büro am FHEM Testsystem zuhause angebunden.
kann ich eigentlich wieder ändern. guter Hinweis, danke. --> oben im code geändert
Hatte durch editieren noch 2 Fragen (s.o.)
Und Danke fürs Anpassen. Gibt genug copy&paste Künstler ;o)
Zitat von: Wernieman am 18 Januar 2019, 14:09:59
Hätte da aber noch 2 Fragen auf ESP-Seite:
1. Du setzt den TimeOut auf 1000ms .. ist das nicht etwas lang? Habe bei mir 100ms
2. Check Reply: Hast Du auf Ignore, ich dagegen auf enabled. Gibt es Gründe, das Du auf ignore?
Was mir noch aufgefallen ist:
Full Queue Action: ist bei Dir auf "Ignore New". Ich habe bei mir auf "Delete Oldest", da ich bei einer Queue Tiefe von 10 bestimmt den gleichen Wert 2 mal drin habe, der Neue also der aktuellere und damit der ist, der übertragen werden sollte.
Ich denke das sind alles default Werte dieser ESP-Easy Version. Hab da nichts wissentlich angepasst.
Und es läuft auch stabil so.
Das ist aber auch nur eine Sonoff S20 Dose, die hat ESP-seitig nicht viel zu tun.
Naja .. das blöde ist, das man wenig "Erfahrungswerte" von anderen bekommt. Deshalb einfach mal nachgefragt :o)
Nur durch fragen kann man lernen
Hallo zusammen,
ich habe folgendes definiert:
defmod ESPEasy_Tiefgarage ESPEasy 192.168.175.40 80 espBridge Tiefgarage
attr ESPEasy_Tiefgarage IODev espBridge
attr ESPEasy_Tiefgarage Interval 300
attr ESPEasy_Tiefgarage eventMap /gpio 5 on:on/gpio 5 off:off/
attr ESPEasy_Tiefgarage group ESPEasy
attr ESPEasy_Tiefgarage presenceCheck 1
attr ESPEasy_Tiefgarage readingSwitchText 1
attr ESPEasy_Tiefgarage room ESPEasy
attr ESPEasy_Tiefgarage setState 3
attr ESPEasy_Tiefgarage stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"GPIO 5","")}
Bekomme leider aber immer den state absent und das Relais nicht geschalten. Kann mir jmd. helfen?
Dankke und Grüße
Julian
Doppelt gepostet?
Wozu?
Gesendet von meinem S68Pro mit Tapatalk
War ein Fehler. Lösche es sofort!