FHEM Forum

Verschiedenes => Bastelecke => ESP Familie => Thema gestartet von: newby am 07 Februar 2017, 13:57:16

Titel: ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: newby am 07 Februar 2017, 13:57:16
Hallo,

ich versuche über die Rules vom ESP Easy ein Reading im Device des ESPs in FHEM zu ändern.
Im Tutorial habe ich folgenden Eintrag gefunden.
SendToHTTP 192.168.0.243,8080,/json.htm?type=command&paramm=switchlight&idx=174&switchcmd=On
und habe ih wie folgt abgeändert.
SendToHTTP 192.168.x.x,8080,/fhem?cmd.ESPTest=setReadings%20Alarm%20on

in den Logs des ESP sehe ich das der Befehl ausgeführt wird
aber Fhem zeigt weder einen Log-Eintrag noch wird das Reading geändert.

Kann mir jemand sagen was falsch ist oder welche Voraussetzungen dafür gegeben sein müssen?


Problem2: (offtopic???)
Ich versuche über die FTUI mit dem Befehl
http://192.168.2.29/control?cmd=event,Tueroeffner&XHR=1

den ESP anzusteuern, was auch funktioniert nur wird dabei jedesmal die Webseite geöffnet.
Kann man das unterbinden?

Vielen Dank für die Hilfe

Sven
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: eppi am 07 Februar 2017, 19:01:03
Hallo
Zitat von: newby am 07 Februar 2017, 13:57:16
SendToHTTP 192.168.x.x,8080,/fhem?cmd.ESPTest=setReadings%20Alarm%20on

Versuche mal:
SendToHTTP 192.168.x.x,8083,/fhem?cmd=setreading%20ESPTest%20Alarm%20on

Achte auf den Port (808x), die schreibweise von setreading... Wenn dein FHEM-Web mit basicAuth gesichert ist, müsstes du noch den Benutzernamen und Passwort mitsenden.
Viel Erfolg!
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: newby am 08 Februar 2017, 07:25:56
Hallo Eppi,

Port habe ich den der ESPEasy Bridge angegeben,muss der von der FHEM-Web Instanz angegeben werden?
FHEM-Web ist mit basicAuth gesichert.
Werde es heute Abend mal gleich testen.

Hast du auch eine Idee wie ich das mit dem HTTP-Aufruf hin bekomme das die Seite dabei nicht geöffnet wird?
Danke!

Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: dev0 am 08 Februar 2017, 14:40:07
Zitat von: newby am 08 Februar 2017, 07:25:56
Port habe ich den der ESPEasy Bridge angegeben,muss der von der FHEM-Web Instanz angegeben werden?

Bei der verwendeten Syntax mußt Du den den Port einer FHEMWEB Instanz nutzen, die ESPEasy Bridge erwartet einen passenden JSON String.

Meiner Meinung nach wäre es sinnvoller auf die entsprechenden 'ESP Device' Änderungen in FHEM mit einem Notify zu reagieren. Um dazu etwas genaueres sagen zu können reichen die gelieferten Infos nicht.
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: newby am 08 Februar 2017, 15:56:23
OK.
Wie müsste denn der JSON String aussehenß
Da muss dann aber auch user&password der ESP-Bridge mit übergeben werden oder?

Der ESP wird über den Alarmkontakt des Rauchmelders mit Strom versorgt und soll beim Booten den Befehl senden.

On System#Boot do    //When the ESP boots, do
SendToHTTP 192.168.x.x,8080,/fhem?cmd.ESPTest=setreading%20Alarm%20on
endon


Es ist sonst kein GPIO angeschlossen.
Es soll auch per Notify darauf reagiert werden und z.B. eine Mail gesendet werden.
Aber mein Problem ist das ich das Reading des ESP-Device in FHEM erst gar nicht geändert bekomme.


Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: dev0 am 08 Februar 2017, 18:58:33
Wie der JSON String aufgebaut ist siehst Du im Log, wenn Du den verbose level auf 5 stellst.
Ob basic auth benutzt wird kann Du per Bridge Attribut einstellen.
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: newby am 09 Februar 2017, 19:08:29
Also ich habe  jetzt lange rumprobiert.
Aber ohne Erfolg.
Ich habe folgenden Code über den Browser erfolgreich getestet.
https://192.168.x.x:8083/fhem?cmd=setreading%20ESPTest%20Alarm%20on&user=user&pwd=pwd
Und damit wohl den Fehler gefunden.
Kann ich auf eine Web_Instanz die https aktiviert hat sendto http realisieren?

Für json habe ich verbose 5 bei der bridge und dem device eingestellt.
Bekomme aber keine Einträge im log.
Hier der code
SendToHTTP  192.168.x.x,8383,/json.htm?cmd=setreading%20ESPTest%20Alarm%20off&user=user&pwd=pwd 
Sicherlich falsch.
Aber ich hab nur das tutorial gefunden mit code für domoticz.

Kann mir bitte jemand ein Beispiel geben?
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: dev0 am 10 Februar 2017, 08:39:00
mWn unterstützt ESPEasy keine SSL/TLS Verbindungen. Nimm http statt https.
FHEMWEB akzeptiert keine http Verbindungen, wenn TLS/SSL in der Instanz aktiviert ist.
Wenn Keine Daten im Log auftauschen, wenn werden auch keine empfangen. Entweder schickt der ESP keine oder die ESPEasy Bridge akzeptiert sie nicht, dann ist das aber auch im Log zu sehen.
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: newby am 10 Februar 2017, 19:05:42
Also,
ich habe jetzt eine eigene WEB Instanz angelegt ohne SSL da ich das SSL bei der anderen irgendwie nicht abschalten kann.
HTTPS auf 0
Allowed für die Instanz disabled
aber das Internal SSL bleibt auf 1
und ich kann die Seite nur über https erreichen und muss user&pwd eingeben
auch nach einem reboot
Aber das ist ein anderes Thema.

Hier der Code in den Rules des ESP
SendToHTTP 192.168.x.x,8888/fhem?cmd=setreading%20ESPTest%20Alarm%20on


LOG ESP
35006 : ACT : SendToHTTP 192.168.x.x,8888/fhem?cmd=setreading%20ESPTest%20Alarm%20on


Log FHEM
2017.02.10 18:47:57 4: Connection accepted from WEBESP_192.168.x.x_5701
2017.02.10 18:47:57 4: WEBESP_192.168.x.x_5701 GET HTTP/1.1; BUFLEN:0
2017.02.10 18:47:57 4: WEBESP: redirecting HTTP/1.1 to /fhem
2017.02.10 18:47:57 4: Connection closed for WEBESP_192.168.xx_5701: EOF


was sagt mir das jetzt?

mit JSON bin ich leider überhaupt nicht weiter gekommen.

ESP Rules
SendToHTTP  192.168.x.x,8383,/json.htm?hmd=setreading%20ESPTest%20Alarm%20off


15038 : ACT : SendToHTTP 192.168.x.x,8383,/json.htm?cmd=setreading%20ESPTest%20Alarm%20off


Log FHEM
2017.02.10 18:56:30 4: ESPEasy ESPTest: set statusRequest
2017.02.10 18:56:30 4: ESPEasy ESPTest: presence: absent
2017.02.10 18:56:30 5: ESPEasy ESPTest: Start internalTimer +303 => 2017-02-10 19:01:34


Ich bin einfach Ratlos



Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: dev0 am 10 Februar 2017, 19:37:38
Bei dem SendToHTTP Befehl, der funktionieren könnte, fehlt ein Komma nach dem Port.
Vergiss die Versuche mit der /json.htm. Das kann so nicht funktionieren.
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: newby am 11 Februar 2017, 13:59:50
OK.
Mit
SendToHTTP 192.168.x.x,8888,/fhem?cmd=setreading%20ESPTest%20Alarm%20off
kann ich jetzt zumindest das Reading setzen.
Auch wenn ich es unschön finde das ich dafür ohne https arbeiten muss.
Im Log steht folgendes
2017.02.11 13:16:00 4: Connection accepted from WEBESP_192.168.x.x_1601
2017.02.11 13:16:00 4: WEBESP_192.168.x.x_1601 GET /fhem?cmd=setreading%20ESPTest%20Alarm%20off; BUFLEN:0
2017.02.11 13:16:00 4: authorize WEBESP/cmd/setreading: allowedWEBhook returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/cmd/setreading: allowed_WEB returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/cmd/setreading: allowed_WEBphone returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/cmd/setreading: allowed_WEBtablet returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/cmd/setreading: allowed_telnetPort returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/devicename/ESPTest: allowedWEBhook returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/devicename/ESPTest: allowed_WEB returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/devicename/ESPTest: allowed_WEBphone returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/devicename/ESPTest: allowed_WEBtablet returned dont care
2017.02.11 13:16:00 4: authorize WEBESP/devicename/ESPTestM: allowed_telnetPort returned dont care
2017.02.11 13:16:00 4: Connection closed for WEBESP_192.168.x.x_1601: EOF


verstehe aber nicht warum das alles abgefragt wird wenn ich nur den Port von WEBESP angebe.

Sorry wenn ich da nochmal nachfrage.
Wenn es SO nicht mit JSON funktionieren kann wie dann?
Geht ein sendTo HTTP mit JSON generell nicht wenn man an FHEM sendet oder wie muss ich das verstehen?
Im Tutorial gibts ja auch das Beispiel für domoticz

Das muss doch auch irgendwie über die ESPBridge gehen, oder irre ich mich da?

Habe parallel mal versucht über Sysinternal>Internal VCC die Batteriespannung mit zu übertragen.
Bekomme hier aber nur -1.00 angezeigt (Im Device des ESP und im FHEM)
Was muss ich da noch machen?
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: dev0 am 11 Februar 2017, 15:48:09
Zitat von: newby am 11 Februar 2017, 13:59:50
Auch wenn ich es unschön finde das ich dafür ohne https arbeiten muss.
Wenn es Dich stört, dann implemetiere es in ESPEasy. Die Community wird es dankbar annehmen.

Zitat
2017.02.11 13:16:00 4: authorize WEBESP/cmd/setreading: allowed_WEBtablet returned dont care

verstehe aber nicht warum das alles abgefragt wird wenn ich nur den Port von WEBESP angebe.
Die Logausgaben wurden mich nicht, sie kommen ja nur bei verbose >= 4 vom allowed Modul...

Zitat
Wenn es SO nicht mit JSON funktionieren kann wie dann?
Geht ein sendTo HTTP mit JSON generell nicht wenn man an FHEM sendet oder wie muss ich das verstehen?
Im Tutorial gibts ja auch das Beispiel für domoticz
Wenn Du in ESPEasy den Controller "FHEM HTTP", dann werden die Daten an FHEM im JSON Format übertragen, wenn Du das über SentToHTTP nachamen möchtest, dann mußt Du ESPEasy erweitern (programmieren). Domoticz ist nicht FHEM - Eine Bedienungsanleitung für einen Audi A2 hilft Dir bei einem Ferrari 488GTB auch nicht weiter. Es gibt keine json.htm, die zu FHEM gehört.

Zitat
Das muss doch auch irgendwie über die ESPBridge gehen, oder irre ich mich da?
Bestimmt, aber nicht über die Rules, oder Du erweiterst ESPEasy um das Feature. Schau Dir mal die "Send Boot" Option in einigen der ESPEasy Devices an, vielleicht hilft Dir das weiter.

Zitat
Habe parallel mal versucht über Sysinternal>Internal VCC die Batteriespannung mit zu übertragen.
Kenne ich nicht. Wenn Du "System Info / Input VCC" meinst, dann mußt DU die Option im Source Code freischalten. Ist aber auch beschrieben.

Ich bin aus dem Thread hiermit raus, wenn Du weitere Fragen hast, dann mag Dir vielleicht jemand anderes weiterhelfen. Einige Deiner Fragen gehören auch eher ins ESPEasy Forum...
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: newby am 11 Februar 2017, 19:49:59
Sorry wenn ich dir irgendwie zu nahe getreten bin.
War nicht meine Absicht.
Ich bin ja froh das sich jemand die Arbeit macht so Leuten wie mir zu helfen.
Ich bin leider noch ganz am Anfang, was aber nicht heisst das es so bleiben soll.
Ich versuche nur die Sachen zu verstehen die ich da mache.
Stupides copy paste ist nicht mein Fall.
Da kommen leider manchmal so blöde Fragen bei raus die für euch Cracks blöde sind.

ZitatWenn es Dich stört, dann implemetiere es in ESPEasy. Die Community wird es dankbar annehmen.
Werde darauf zurückkommen wenn ich irgendwann mal in der Lage dazu bin.

Das mit de Log leuchtet mir ein.

ZitatWenn Du in ESPEasy den Controller "FHEM HTTP", dann werden die Daten an FHEM im JSON Format übertragen, wenn Du das über SentToHTTP nachamen möchtest, dann mußt Du ESPEasy erweitern (programmieren).
OK dann bin ich da von etwas nicht vorhandenen ausgegangen.
Das habe ich aus den vorherigen Aussagen nicht ganz rausgehört.Ist jetzt angekommen.

ZitatWenn Du "System Info / Input VCC" meinst, dann mußt DU die Option im Source Code freischalten
Ja genau das meinte ich.Werde ich mir anschauen.

Nochmal Sorry wenn ich dich verärgert haben sollte.
Aber trotzdem Vielen Dank für deine Geduld und deine Hilfe.
Titel: Antw:ESP Easy Rules SendTo HTTP für FHEM nutzen
Beitrag von: dev0 am 11 Februar 2017, 19:56:39
Du hast mich nicht verärgert, aber die Grundlagen mußt Du selbst lernen.