Neues Modul: ESPEasy [war: ESPEasy ohne MQTT]

Begonnen von dev0, 18 Juli 2016, 11:53:28

Vorheriges Thema - Nächstes Thema

fhem-challenge

Zitat von: Otto123 am 17 Januar 2017, 14:46:15
Hallo Andreas,

ist auf alle Fälle nicht normal. Ich denke, Du duplizierst irgendwo den Event.
Schau Dir das im Eventmonitor an.

Ich habe bei den ESPEasy_ noch event-on-change reading gesetzt.

Was macht das attr espBridge ueberwache_attribut STATE=initialized ? Gibt es bei mir nicht.

Gruß Otto

Hallo Otto,

okay Danke für die schnelle Antwort.

Bei mir ist es jetzt "temporary solved". Ich habe schlicht "attr xxxxx setState 0" bei allen ESP Devices gesetzt und die doppelten Events (und damit auch im FileLog) sind nun weg.

D.h. im Umkehrschluss darf ich nicht setState > 0 setzen, dann bekomme ich alles doppelt ?



Die "attr espBridge ueberwache_attribut STATE=initialized" sind es nicht, das ist eine meiner 99_utils... funktionen, die alle Devices überwachen und dann (bei Ausfall) mir mails schicken.


Viele Grüße!

Andreas






Otto123

Hallo Andreas,

ZitatsetState
Summarize received values in state reading.
A positive number determines the number of characters used for reading names. Only readings with an age less than interval will be considered. If your are not satisfied with format or behavior of setState then disable this attribute (set to 0) and use global attributes userReadings and/or stateFormat to get what you want.
Possible values: integer >=0
Default: 3 (enabled with 3 characters abbreviation)
Ich verstehe das auf die Schnelle nicht, ich habe aber nichts gesetzt -> d.h Standard=3?

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

Waldmensch

setState macht nix anderes als die reading namen im State zu verkürzen. Aus dem Reading "Helligkeit" wird bei setState 3 "HEL" und bei setState 1 "H" im state.

dev0

Zitat von: Waldmensch am 17 Januar 2017, 13:52:25
@dev0: Ich habe heute meine H801 bekommen. Ich würde gern Dein Plugin in mein ESPEasy Git einbinden und für die User ein Binary für den H801 zur Verfügung stellen (wenn es bei mir läuft).

Kannst Du machen, aber ein Binary macht aus meiner Sicht nicht viel Sinn, da das Plugin noch nicht fertig ist. Es fehlt eine Farb/Gamma-Korrektur, wenn man keinen oder nur 1 Weißkanal benutzt. Mit 2 weißen Kanälen (ww/cw) finde ich es für schon brauchbar, zumindest nutze ich es im Moment noch so. Habe mir aber schon für ein paar Cent 4MBit Flash Chips bestellt, die ich einlöten werde um die Software aus für diesen Controller mit dem H801 zu nutzen.

Aktuell schreibe ich eine Software für WS2812B/SK6812 und benutze die Fastled Library, die hat Funktionen zur Farbkorrektur schon eingebaut ;) Ist zwar kein ESPEasy Plugin, aber läßt sich über das ESPEasy Modul wie ein Plugin steuern.

Zitat
In das offizielle ESPEasy Git wird es ja leider nicht mehr aufgenommen. Wär schade um die Arbeit.

Bisher ist die Arbeit an ESPEasy(Mega) nur auf Hold, oder hast Du andere Infos?

dev0

Zitat von: fhem-challenge am 17 Januar 2017, 14:32:50
Warum bekomme ich prinzipiell doppelte Werte im LOG ?

Kann ich nicht nachvollziehen. Die Ursache sehe ich (noch?) nicht im ESPEasy Modul, die Events werden irgendwo anders in Deiner Installation erzeugt.

Zitat von: Waldmensch am 17 Januar 2017, 15:53:24
setState macht nix anderes als die reading namen im State zu verkürzen.

Das Attribut setState=0 schaltet die Generierung des State Readings komplett ab. Es wird dann nur noch mit open/initialized beschrieben.

dev0

Zitat von: fhem-challenge am 17 Januar 2017, 14:57:34
D.h. im Umkehrschluss darf ich nicht setState > 0 setzen, dann bekomme ich alles doppelt ?

Nein, das heißt es nicht.

Waldmensch

ZitatHabe mir aber schon für ein paar Cent 4MBit Flash Chips bestellt, die ich einlöten werde um die Software aus für diesen Controller mit dem H801 zu nutzen.

Wenn ich das richtig interpretiere hat mein H801 einen 8MBit SPI Flash (BergMicro 25Q80ASTIG). Eine Board Revision steht leider nirgendwo drauf

- 25Q,25QA, 25QF, 25QH = 3.0V Serial Flash with 4KB uniform-sector, dual and quad I/O
- 80, 80A = 8Mbit (1024kx8)

dev0

Sorry, ich meinte ein 4 MByte Flash, nicht MBit. Bei mir ist leider nur ein 512 kByte Chip verbaut.

Waldmensch

Warum nutzt Du die FastLed Library nicht im ESPEASY Plugin? Wenns um Platz geht, könnte man ja die ganzen Sensoren Plugins aus dem Sketch kicken. Die wird man ja auf einem H801 nie brauchen.


Gesendet von iPhone mit Tapatalk

fhem-challenge

#714
Zitat von: Waldmensch am 17 Januar 2017, 15:53:24
setState macht nix anderes als die reading namen im State zu verkürzen. Aus dem Reading "Helligkeit" wird bei setState 3 "HEL" und bei setState 1 "H" im state.

ja richtig. Nur wenn ich setState=0 setzen, wird das "state" reading nicht mehr mit dem Inhalt der Variable (in meinem Fall RSSI -Wert) gesetzt, sondern steht lediglich auf "opened". Das verhindert bei mir die doppelten Events.

Nur ist die Frage, ist es ein Workaround (in meinem Fall) , oder ist es gewünscht, dass der Wert bei setState > 0 dann auch im reading "state" geschrieben wird, was ja der Fall ist ?

Ich habe mal die drei Bilder angehängt, die das Problem verdeutlichen:

Bild1: Hier steht im reading "state" "opened" wie erwartet, weil ich setState=0 gesetzt habe
Bild2: Hier wird (parallel zum Reading "rssi") auch das Reading "state" mit dem wert von rssi gefüllt (dadurch kommen bei mir doppelte Events)
Bild3: Hier das logFile vor, und nach dem Setzen von setState=4

ggf. ist ein "event.on-change-reading" ... auch eine Lösung die doppelten Events zu verhindern (also nur bei WerteÄnderung) ?


Viele Grüße!

Andreas




Otto123

Hallo Andreas,

alles gut, Du hast die Erklärung gefunden. Ich wurde sagen: works as designed  8)

Ich würde generell mit event-on-change loggen, da fällt viel weniger an Daten an. Aber das löst dein "Problem" nicht, weil Du einfach alles von allen ESPEasy_ Geräten loggst. Das ist zwar ein einfaches regEx aber wie Du siehst nicht so gut.
Stell doch einfach Dein regEx schärfer und logge nur die Daten die Du wirklich brauchst.

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

dev0

#716
Zitat von: fhem-challenge am 19 Januar 2017, 09:20:09
Das verhindert bei mir die doppelten Events.

Die Events sind nicht doppelt. Einmal ist das Event vom RSSI Reading und einmal vom Reading state. In Deinem Fall sind die Events identisch, da Du nur ein Reading pro FHEM Device benutzt. Hättest Du mehrere Readings (attr combineDevices), dann wäre das nicht so.

Da ich den Benutzer nicht bevormunden möchte, für welche Readings Events erzeugt werden und für welche nicht, werden immer alle Events erzeugt und der Anwender kann mit den globalen Attributen event-.* und timestamp-.* selbst entscheiden unter welchen Umständen Events erzeugt werden sollen.

Wenn Du eine Anzeige in STATE haben möchtest, aber setState auf 0 setzt, dann kannst Du das mit dem Attribut stateFormat selbst vornehmen.

Edit: Wenn Du die identisch lautende Events auseinander halten möchtest, dann kannst Du in den Zieldevices wie notify oder filelog auch das Attribut addStateEvent setzen.

fhem-challenge

Zitat von: dev0 am 19 Januar 2017, 09:54:55
Die Events sind nicht doppelt. Einmal ist das Event vom RSSI Reading und einmal vom Reading state. In Deinem Fall sind die Events identisch, da Du nur ein Reading pro FHEM Device benutzt. Hättest Du mehrere Readings (attr combineDevices), dann wäre das nicht so.

Da ich den Benutzer nicht bevormunden möchte, für welche Readings Events erzeugt werden und für welche nicht, werden immer alle Events erzeugt und der Anwender kann mit den globalen Attributen event-.* und timestamp-.* selbst entscheiden unter welchen Umständen Events erzeugt werden sollen.

Wenn Du eine Anzeige in STATE haben möchtest, aber setState auf 0 setzt, dann kannst Du das mit dem Attribut stateFormat selbst vornehmen.

Edit: Wenn Du die identisch lautende Events auseinander halten möchtest, dann kannst Du in den Zieldevices wie notify oder filelog auch das Attribut addStateEvent setzen.

Vielen Dank für die schnellen Antworten (auch an Otto123)

ich denke, ich werde event-on-change reading in Kombination mit event-min-interval (wg. der besseren Darstellung in den gplots, falls sich lange nichts an den werten ändert) nutzen (das mache ich auch bei vielen anderen Devices bereits) ... und (in der Tat) mein RegEx weniger "global" definieren (derzeit ist das ESPEasy Modul) noch bei mir in der Testphase ... deshalb ist mein Log-RegEx auch so global, weil zunehmend mehr ESP8266 bei mir dran kommen.

Momentan ist es ein! ESP8266 (12E) mit Gassensor, Radar Bewegungsmelder, 2 TürSensoren (reed) , ein BME280 und zwei WasserSensoren (... da sind nun alle GPIO's weg (auch serial ports)) ... aber es geht.

Bis dato läuft das ESPEasy-Modul sehr gut ... und ich denke, das ich es in Kürze dann auch produktiv verwenden werde und ich nun kein MQTT mehr mache (weil so einfacher).

Viele Grüße!

Andreas

Bennemannc

Hallo,

ich habe masseweise
2017.01.16 12:05:56 2: ESPEasy espBridge_192.168.11.5_5184: No basic authentication active but credentials received
Im Log stehen. Ich habe passwd und user gesetzt. Habe jetzt erst einmel verbise auf 1 gesetzt, aber woher kommen diese Meldungen und wie bekomme ich die weg.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

dev0

Zitat von: Bennemannc am 21 Januar 2017, 07:52:47
und wie bekomme ich die weg.

Commandref lesen ;)

Zitat
Attributes (bridge)
...
authentication
  Used to enable basic authentication for incoming requests.
  Note that user, pass and authentication attribute must be set to activate basic authentication
  Possible values: 0,1
  Default: 0