Neues Modul: ESPEasy [war: ESPEasy ohne MQTT]

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

Vorheriges Thema - Nächstes Thema

max333

Nein, ich hatte nichts angepasst.

Jetzt habe ich den BH1750 im ESPEASY gelöscht, REBOOT und neu angelegt, nun werden auch die Daten in Fhem mit Kommastelle dargestellt.
Vielleicht sind die Konfigurationsdaten mit der neuen Firmware etwas anders?

Jedenfalls vielen Dank für die schnelle Hilfe.

Kalli01

Danke dev0 für das Beispiel mit der Lampe.

Eine Frage habe ich jetzt noch. Kann man das Icon ändern wenn der ESP nicht mehr anwesend ist?
Im Moment reagiert der Button dann einfach nicht mehr.

Pyromane

In der neuesten Version des Plugins zusammen mit der Version 120 vom  ESPEasy(bin noch nicht updaten gekommen) erhalte ich einige Warnungen:
2016.09.02 09:12:50 1: PERL WARNING: Use of uninitialized value in hash element at ./FHEM/34_ESPEasy.pm line 597.
2016.09.02 09:12:50 1: PERL WARNING: Use of uninitialized value in hash element at ./FHEM/34_ESPEasy.pm line 598.
2016.09.02 09:12:50 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/34_ESPEasy.pm line 599.
2016.09.02 09:12:50 1: PERL WARNING: Use of uninitialized value $host in concatenation (.) or string at ./FHEM/34_ESPEasy.pm line 815.

dev0

Zitat von: Kalli01 am 02 September 2016, 16:09:20
Kann man das Icon ändern wenn der ESP nicht mehr anwesend ist?
Ja kann man.

Das funktioniert wie bei anderen Modulen auch, die die readingFnAtrributes benutzen.
Diese Grundlagen findest Du hier:
- http://fhem.de/commandref.html#stateFormat
- http://fhem.de/commandref.html#devStateIcon
- http://fhem.de/commandref.html#perl
- http://perldoc.perl.org/perlop.html#Conditional-Operator


attr <ESP> stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"GPIO15","")}
attr <ESP> devStateIcon on:ios-on-green:off off:ios-off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:check
attr <ESP> eventMap /gpio 15 on:on/gpio 15 off:off/status gpio 15:check/
attr <ESP> it_network
attr <ESP> webCmd :

dev0

Zitat von: Pyromane am 02 September 2016, 17:42:36
In der neuesten Version des Plugins zusammen mit der Version 120 vom  ESPEasy(bin noch nicht updaten gekommen) erhalte ich einige Warnungen:
2016.09.02 09:12:50 1: PERL WARNING: Use of uninitialized value in hash element at ./FHEM/34_ESPEasy.pm line 597.


Danke für den Hinweis. Diese Warnungen hatte ich Anfang der Woche auch entdeckt und behoben.
Der Fix kommt mit der nächsten Version.

dev0

Ich habe gerade das ESPEasy Modul aktualisiert und in den master branch verschoben.

Seit dem letzten develop release gab es noch folgende Änderungen:
Zitat
- improved removing of illegal chars in device + reading names
- removed uniqID helper from bridge if device was deleted
- use peer IP instead of configured IP (could be modified by NAT/PAT)
- added http response: 400 Bad Request
- added http response: 401 Unauthorized
- fixed oledcmd cmd usage string
- improved presence detection (incoming requests)

Download hier: https://github.com/ddtlabs/ESPEasy
oder über das FHEM update falls ihr das Repository zum update hinzugefügt habt.

Die Hinweise zum letzeten development release gelten natürlich auch für diese Version: https://forum.fhem.de/index.php/topic,55728.msg485804.html#msg485804

max333

#126
Die Firmware des ESPEasy scheint die angegebenen Kommastellen zu ignorieren. Beim DS18B20 werden immer 2 Kommastellen übertragen, egal was in dem Feld Decimals eingetragen wurde.

Des weiteren sollte die Zeile 199 im _P004. Dallas.ino ersetzt werde, damit auch die Temperatur vom DS1825 angezeigt wird:

if ((ROM[0] == 0x28 ) || (ROM[0] == 0x3b )) //DS18B20 or DS1825


dev0

Zitat von: max333 am 03 September 2016, 22:06:59
Die Firmware des ESPEasy scheint die angegebenen Kommastellen zu ignorieren.
Stimmt! Leider kommt an der Stelle ein unerwartetes Verhalten des Compilers oder einer Library in Spiel. Mit der neusten ArduinoJson Library bekomme ich das problemlos umgesetzt, mit der alten Version und entsprechenden Konvertierungen ergeben sich noch merkwürdige Effekte... Ich hoffe, dass ich einen Weg finde, der mit der aktuell verwendeten Library funktioniert.

Zitat von: max333 am 03 September 2016, 22:06:59
Des weiteren sollte die Zeile 199 im _P004. Dallas.ino ersetzt werde, damit auch die Temperatur vom DS1825 angezeigt wird:

if ((ROM[0] == 0x28 ) || (ROM[0] == 0x3b )) //DS18B20 or DS1825
Das ist so gar nicht meine Baustelle. Vieleicht magst Du hier einen eigenen Pull Request stellen?

max333

Mit welcher ArduinoJson Version funktioniert das? Ich hab die 5.6.6 und die Arduino IDE 1.6.11.

Außerdem ist mir noch aufgefallen, wenn ich mit der Firmware 126 den Hostnamen eintrage wird versucht mit der IP 0.0.0.0 eine Verbindung herzustellen. Mit der Firmware 120 funktioniert auch das noch.

Zitat von: dev0 am 04 September 2016, 13:41:44
Das ist so gar nicht meine Baustelle. Vieleicht magst Du hier einen eigenen Pull Request stellen?
Ich weiß, dass das nicht deine Baustelle ist, nur bin ich dort (noch) nicht registriert.


P.A.Trick

Zitat von: dev0 am 19 Juli 2016, 11:35:45
Daten werden noch nicht zum ESP übertragen. Kann ich aber bei Gelegenheit versuchen einzubauen. Testen müsstest Du das dann, da ich keine Anwendung dafür habe, ok?

Ich würde mich auch zum testen anbieten und zar mit einem Wemos OLED Display. Wäre klasse wenn man die Texte direkt senden könnte ohne über HTTP zu gehen!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Dominik83

Zitat von: dev0 am 01 September 2016, 07:04:05
Hier ein Beispiel für GPIO-15 mit Icon, devStateIcon, stateFormat,...
Den on/off Text kann man optional mit dem Atrribut webCmd ausblenden.


attr <ESP> icon FS20.off
attr <ESP> stateFormat GPIO15
attr <ESP> eventMap /gpio 15 on:on/gpio 15 off:off/status gpio 15:check/
attr <ESP> devStateIcon on:ios-on-green:off off:ios-off:on .*:ios-NACK:check

#optional:
attr <ESP> webCmd :


Edit: "attr <ESP> setState 0" entfernt, da es nicht benötigt wird.


Hi Zusammen,

ich hatte das selbe Problem. Dank der Anleitung kann ich nun per Schalter ein Relais schalten. Danke!

Ich habe hier aber noch eine Frage: Am Esp8266 ist noch ein Thermoeter angeschlossen, ich würde also gern in Fhem nicht nur den Schalter für das Relais zum Device anzeigen sondern noch zusätzlich die Temperatur.

Mit: stateFormat
temp ° C // Rssi dbm // GPI012

Klappt das auch schon so einigermaßen nur sobald ich das "devstateicon" analog des Beispiels einfüge ist alles kaputt.

Hat jemand einen Tip?

Gruß und Danke

Dominik

dev0

Zitat von: max333 am 04 September 2016, 14:16:13
Mit welcher ArduinoJson Version funktioniert das? Ich hab die 5.6.6 und die Arduino IDE 1.6.11.
Habe gerade gesehen, dass seit der R120 die mitgelieferte ArduinoJson Lib neu genug ist um float_with_n_digits() nutzen zu können. Kann ich mir aber erst im Laufe der nächsten Woche ansehen.

Zitat von: max333 am 04 September 2016, 14:16:13
Außerdem ist mir noch aufgefallen, wenn ich mit der Firmware 126 den Hostnamen eintrage wird versucht mit der IP 0.0.0.0 eine Verbindung herzustellen. Mit der Firmware 120 funktioniert auch das noch.
Ich werde es noch kontrollieren, aber das wird wahrscheinlich nicht an der _C009.ini liegen..

dev0

Zitat von: P.A.Trick am 04 September 2016, 14:50:27
Ich würde mich auch zum testen anbieten und zar mit einem Wemos OLED Display.
Was funktioniert denn nicht? Alle offiziellen Befehle sollten funktionieren, auch nicht offizielle über das RAW command.

dev0

Zitat von: Dominik83 am 04 September 2016, 15:54:53
Hat jemand einen Tip?
Getrennte Devices anlegen oder eine readingsGroup könnten Alternativen sein.

max333

Mit der optimized C009.ino https://raw.githubusercontent.com/ddtlabs/ESPEasy-Fork/optimized-_c009.ino/_C009.ino funktioniert der Hostname. Aber die Kommastellen werden genau so ignoriert und die Darstellung von Werten über 1000 wird weiterhin die wissenschaftliche Notation genutzt.