Neues Modul: ESPEasy [war: ESPEasy ohne MQTT]

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

Vorheriges Thema - Nächstes Thema

dev0

Zitat von: Waldmensch am 01 Januar 2017, 17:47:00
Es ist in der Tat so, das man einem Task, den man mit einem gpio (mit-)setzen möchte, einen uniquen Namen geben muss. Dann legt die Bridge ein eigenes Device an und auf diesem muss man dann den gpio setzen.

Wenn Du verhindern möchtest, dass mehrere FHEM Devices, für unterschiedliche ESP Devices (tasks), angelegt werden, dann kannst Du das (sehr flexible) Attribut combineDevices aktivieren.

dev0

Zitat von: peterboeckmann am 01 Januar 2017, 17:50:52
Daher habe ich in der 34_ESPEasy.pm, Zeile 541, noch einen Aufruf der Methode ESPEasy_statusRequest($hash); ergänzt.
Evtl. könnte der Autor des Moduls das noch ergänzen. Vielen Dank!

Nein. Du hast zwei Dinge noch nicht verstanden:

- Wenn Du ESPEasy auf dem ESP mit einem Device vom Typ 'Input Switch' konfigurierst, dann werden die Status aktiv vom ESP an FHEM gemeldet. Auch dann, wenn Du am Gerät selbst schaltest oder von sonst wo

- Wenn Du keinen 'Input Switch' definieren möchtest (warum auch immer?), dann kannst Du den Status, auch ohne im Quellcode zu wildern, nach dem Schalten mit Hilfe des Attributs 'parseCmdResponse' setzten lassen. In diesem Fall wird dann die JSON Antwort von ESPEasy auf den HTTP Request benutzt um den aktuellen Zustand zu ermitteln.

Btw: Wenn Du meinst, dass der zweite Punkt in der Commandref nicht ausreichend beschrieben ist, dann kannst Du das gerne mit einem Pull Request ergänzen.

peterboeckmann

Hallo dev0,

danke erstmal für die schnelle Antwort.

Zitat von: dev0 am 02 Januar 2017, 07:30:29Wenn Du ESPEasy auf dem ESP mit einem Device vom Typ 'Input Switch' konfigurierst, dann werden die Status aktiv vom ESP an FHEM gemeldet.
Mein Fehler scheint dann noch irgendwo anders zu liegen. Das Device ist als "switch input" definiert, aber im FHEM kommen keine Redings an.
Ein autocreate ist auch nicht erfolgt. Kann ja auch nicht, ohne dass Readings ankommen.
Kannst Du mir da evtl. einen Tipp geben? Ich habe die ESP-Konfiguration mal angehängt.

Auf dem Reiter "Rules" habe ich außerdem noch folgendes eingefügt:

on Licht#Key do
if [Licht#Relay]=1
   gpio,12,0
else
   gpio,12,1
endif
endon
on Licht#Relay do
if [Licht#Relay]=1
   gpio,13,0
else
   gpio,13,1
endif
endon


Mein FHEM läuft mit https und basicAuth. Kann das das Problem sein?

Zitat von: dev0 am 02 Januar 2017, 07:30:29
Btw: Wenn Du meinst, dass der zweite Punkt in der Commandref nicht ausreichend beschrieben ist, dann kannst Du das gerne mit einem Pull Request ergänzen.

Mit derCommandref meinst Du scheinbar nicht diese? http://fhem.de/commandref_DE.html Dort habe ich leider nichts zu ESPEasy gefunden.
Ich habe mir wohl aus verschiedenen Quellen zusammengesucht, was ich brauchte. Dabei ist wohl ein bisschen was schief gegangen...

Viele Grüße,
Peter

RaspiLED

Moin, Nein, er meint Deine persönliche Command Reference! Diese wird bei jedem neuen Modul (oder Update) erweitert und ist in Deinem FHEM im Browser links unten zu finden. Alternativ im ESPEasy Device ganz unten rechts "Hilfe zu diesem Device" (oder so ähnlich ;-)
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

dev0

Die eingetragene Controller IP entspreicht der FHEM IP Adresse?

peterboeckmann

#635
Zitat von: dev0 am 02 Januar 2017, 09:42:18
Die eingetragene Controller IP entspreicht der FHEM IP Adresse?

Ja. Port, Username und Password sind auch korrekt.

Die Firmware auf dem Sonoff hat die R140.

Edit:
Mir fällt gerade auf, dass ich der ESPBridge den Port 8383 gegeben habe. Keine Ahnung, wo ich das gelesen hatte.
Muss hier der FHEM-Port (8083) oder der ESPEasy-Port (80) angegeben werden?

dev0

Ich würde:
- Die selbst angelegten FHEM Devices löschen, deaktivieren wird nicht ausreichen.
- Auf dem dem ESP noch ein zusätzliches Device vom Type "System Info" z.B. Wifi/RSSI anlegen, dass regelmäßig sendet.
- attr <esp-bridge> verbose 5
- ins log gucken ob Daten ankommen.

Wenn das auch nicht funktioniert, dann bitte noch ein list der Bridge in Code-Tags hier anhängen: 'list <esp-bridge>'

peterboeckmann

Danke nochmal für die Hilfe!

Ich habe den Fehler gerade gefunden: Ich hatte in der Main Config des ESPEasy den Port 8083 angegeben, nicht den Port 8383 der ESPEasy-Bridge.

dev0

Zitat von: peterboeckmann am 02 Januar 2017, 09:50:17
Edit:
Mir fällt gerade auf, dass ich der ESPBridge den Port 8383 gegeben habe. Keine Ahnung, wo ich das gelesen hatte.
Muss hier der FHEM-Port (8083) oder der ESPEasy-Port (80) angegeben werden?

Der Port der ESPEasy Bridge muss identisch mit dem Port sein, den Du auf dem ESP als Controller Port einträgst. Also auf beiden Seiten 8383, wenn Du der Bridge den Port 8383 gegeben hast.

... Aber das hast Du ja inzwischen korrigiert.

dev0

In dem Zusammenhang vielleicht noch einen Tipp (an alle): Wie Waldmensch schrieb kann es zu Problemen kommen, wenn man für mehrere ESP Devices (tasks) den gleichen Namen verwendet. Deshalb besser eindeutige Namen verwenden und das Attribut combineDevices benutzen, damit nicht mehrere FHEM Devices für einen ESP angelegt werden.

peterboeckmann

Da nun alles funktioniert, inkl. autocreate, hätte ich noch einen Wunsch:
Könntest Du in einer der nächsten Versionen noch den toggle-Befehl mit einbauen?

Mein Hintergedanke: Ich würde das Gerät gerne per AndFHEM-Widget als Umschalter steuern können. (Oder brauche ich dafür etwas anderes?)

dev0

#641
Zitat von: peterboeckmann am 02 Januar 2017, 10:35:47
Könntest Du in einer der nächsten Versionen noch den toggle-Befehl mit einbauen?

Mit eventMap solltest Du genau das selbst machen können. In Deinem geposteten Definitionen benutzt Du eventMap ja auch schon für on-for-timer...

Edit: Habe in der Commandref gesehen, dass eventMap keinen Perl Code erlaubt, daher wird das wohl nicht funktionieren. Dann wäre es mMn am sinnvollsten Toggle als Parameter des gpio Befehls im Switch Plugin zu implementieren. Dann funktioniert eventMap.

peterboeckmann



Zitat von: dev0 am 02 Januar 2017, 10:58:15
Dann wäre es mMn am sinnvollsten Toggle als Parameter des gpio Befehls im Switch Plugin zu implementieren. Dann funktioniert eventMap.

Sorry, das hab ich nicht verstanden.  ???
Was soll ich machen?

dev0

Zitat von: peterboeckmann am 02 Januar 2017, 12:05:24
Was soll ich machen?
Toggle als Parameter in das ESPEasy Switch Plugin einbauen, damit man z.B. 'set <esp> gpio 15 toggle' benutzen kann. Dann könntest Du mit eventMap den Toggle Befehl in FHEM benutzen.

Waldmensch

Semi OT: Ich habe es mal in das switch Plugin eingebaut: https://github.com/Tommy-LSA/ESPEasy/commit/bd1d99e3cf9553fe189b9f290f2af1ba616a4b40

FHEM Befehl: set <device> toggle <pin>

Erfolgreich getestet auf einer nodeMCU. Vermutlich wird es nicht mehr ins offizielle Git wandern. Schwere Entscheidung, was man da nun machen soll.