Hallo zusammen,
ich möchte prüfen, ob mein AccessPoint (AP) verfügbar ist.
Ein lan-ping reicht hier nicht aus, da der Ping zwar "present" wieder gibt, aber der AccessPoint trotzdem down ist.
Jetzt möchte ich also versuchen, das WebInterface des AP anzusprechen. Denn wenn ich diese Website erreiche (Beispiel: 192.168.178.43/index.asp), ist der AP da und nutzbar. Wenn die Webseite nicht erreichbar ist, ist der AP unten.
Ich probiere es gerade mit HTTPMOD, komme aber nicht weiter.
(Benutzername und Passwort beim login habe ich bei mir korrekt gesetzt. Gibt auch im httpheader ein "HTTP/1.0 200 OK". Habe ich hier nur rausgenommen.)
define AccessPoint HTTPMOD http://benutzername:passwort@192.168.178.43/ 60
Gibt es eine Möglichkeit "einfach" zu sagen "wenn die Webseite aufgerufen werden kann, dann Status ok. Wenn sie nicht reagiert, dann nicht ok" ?
Diesen "OK"- oder "nicht OK"-Status möchte ich nutzen, um ihn in FHEM oder meinem FTUI anzuzeigen und mich bei "nicht-OK" per Telegram benachrichtigen zu lassen. Telegram läuft bei mir auf andere Events schon ok.
Danke euch vorab für die Hilfe.
Also, wenn HTTPMOD die Antwort HTTP/1.0 200 OK liefert, dann ist die Webseite auf jeden Fall erreichbar. Das sollte reichen für deinen Bedarf? Ich würde aber den HTTPMOD auf 192.168.178.43/index.asp statt nur 192.168.178.43/ definieren.
Ja, das sollte reichen.
Die Änderung auf index.asp kann ich ja ohne Probleme machen.
Aber was lese ich jetzt wie aus, um das als OK oder nicht-OK zu interpretieren ?
Da stehe ich auf dem Schlauch bzw habe das Wissen nicht. :)
Vielleicht hättest du auch über syslog eine Möglichkeit einen Fehlerzustand zu erkennen. Die meisten Netzwerkgeräte bieten es an ihre events an einen syslog Server zu senden.
Wenn das etwas für dich wäre, könntest du das Modul Log2Syslog im Server-mode einsetzen, Mitteilungen deines AP empfangen und per notify darauf reagieren.
Hi, Syslog ist keine Option. hier geht es um einen billigen Router (EDIMAX), der als AP konfiguriert ist.
Ich bin also drauf angeweisen, zu prüfen, ob ich die Web Oberfläche erreiche oder nicht.
Zitat von: olvis am 15 Oktober 2018, 16:21:22
Ja, das sollte reichen.
Die Änderung auf index.asp kann ich ja ohne Probleme machen.
Aber was lese ich jetzt wie aus, um das als OK oder nicht-OK zu interpretieren ?
Da stehe ich auf dem Schlauch bzw habe das Wissen nicht. :)
z.B. mit
attr AccessPoint reading01Name retcode
attr AccessPoint reading01Regex HTTP/1.0 ([\d]+)
Mit attr showError kannst Du auch mit dem Reading LAST_ERROR spielen
Super. Danke.
Und mit
attr AccessPoint stateFormat retcode
kann ich den Wert dann in den State setzen und normal anzeigen/auslesen, z.B. für Dashboards.
Und mit
define AccessPointCheck at +*01:00:00 { if
(ReadingsVal("AccessPoint","retcode",404) != 200)
{ fhem("set Telegram message AccessPoint down") } }
müsste ich doch dann, mit hier als Beispiel stündlichem Check, ein Telegram bekommen (Telegram bei mir als "Telegram" aufgesetzt), wenn der retcode ungleich 200 ist, korrekt ?
Hallo zusammen,
ich habe das Ganze hier anhand der Anleitung umgesetzt.
Leider bekomme ich immer, auch wenn die Seite nicht verfügbar ist, folgenden httpheader:
HTTP/1.1 200 OK
Server: nginx/1.10.3
Date: Wed, 10 Apr 2019 19:41:15 GMT
Content-Type: text/html
Content-Length: 39530
Last-Modified: Wed, 10 Apr 2019 19:24:39 GMT
Connection: close
ETag: "5cae42f7-9a6a"
Accept-Ranges: bytes
Mit dem Regex HTTP/1.1 ([\d]+)
kann ich somit nicht unterscheiden, ob die Seite einmal nicht verfügbar ist.
Feedback ist immer "200" -> erreichbar.
Wo liegt denn der Fehler?
Bei Last_Error zeigt sich, dass die Seite nicht verfügbar ist. Feedback ist jedoch weiterhin immer "200"
vergleiche mal den timestamp von last_error, denn dieses reading wird nur bei einem fehler aktualisiert. der angezeigte fehler kann also schon alt sein.
dein header passt nicht zu "nicht erreichbar".