NEWS
Log Error an Pushover melden
-
Ich habe eine Überwachung der Adapter aktiv:
createState('Adapterüberwachung.iobroker.Störung', {"name": "iobroker Servicemeldungen Störung" }); createState('Adapterüberwachung.iobroker.Text', {"name": "iobroker Servicemeldungen Text"}); function alarmMail(txt) { txt = 'System Adapter ' + txt; sendTo("pushover", "send", { message: 'iobroker - ' + txt, sound: "" }); setState('javascript.0.Adapterüberwachung.iobroker.Text', txt); log('iobroker - System Adapter '+(txt)); } var cnt = 0; on(/^system\.adapter\..+\.alive$/, function(dp) { if (dp.state.val===true) log('trigger für Adapterüberwachung aktiv'); var id = (dp.id.split('.')); if(id[2] != 'tvspielfilm' && id[2] != 'tankerkoenig' && id[2] != 'dwd' && id[2] != 'daswetter' && id[2] != 'ical' ){ if(dp.state.val) { cnt--; if(cnt <= 0) { // alarmMail('laufen fehlerfrei'); setState('javascript.0.Adapterüberwachung.iobroker.Störung', false ); setState('javascript.0.Adapterüberwachung.iobroker.Text', ' iobroker - Systemadapter laufen fehlerfrei'); log('iobroker - System Adapter laufen fehlerfrei' ); cnt = 0; // falls verzählt und cnt < 0 } } else { if (dp.state.val === false) id = ('system.adapter.' + id[2] + '.' + id[3]); var instance = getObject(id); if(instance.common.enabled) { alarmMail('meldet Probleme ' + dp.common.name); setState('javascript.0.Adapterüberwachung.iobroker.Störung', true); } cnt++; } } });
Und das funktioniert einwandfrei.
Allerdings ist jetzt irgendwie die Kommunikation mit meinem Wandtablet ausgefallen und es wurde im Log ein Fehler abgelegt:
javascript.0 2018-09-26 17:20:03.791 error script.js.Wandtablet.Laden2: Fehler request: Error: connect EHOSTUNREACH 192.168.xxx.225:2323
So habe ich gemerkt das ich zwar die Adapter überwache, aber scheinbar Fehler die direkt in javascript.0 auftauchen nicht erkannt oder erfasst werden.
Hat jemand eine Idee wie ich das mit einbeziehen könnte?
Hintergrund ist, das über diesen Aufruf der Akkustand des Tablets aufgerufen wird und entsprechend eine Steckdose mit Ladegerät geschaltet wird. Wenn die Kommunikation allerdings ausfällt wird auch nicht geladen und das Wandtablet ist irgendwann leer.
Eine Alternativlösung wäre noch diese Kommunikation zu überwachen und bei Ausfall sofort das zugehörige Ladegerät einzuschalten. Aber da habe ich leider auch keine Ahnung wie ich die Überwachung realisieren könnte.
-
Wie wäre es mit dem Ping-Adapter?
Damit kannst Du testen, ob Dein Tablet erreichbar ist.
Das kann man ja im Script z. B. nach Deiner Routine einbauen. Oder sogar davor.
Und dann noch eine Telegram, Mail oder sonstwas Nachricht schicken. oder eine Lampe wild blinken lassen? Oder den StromAdapter weider einschalten.
Du könntest auch die Routinen/Funktionen die Du aufrufst jeweils den Returncode abfangen und diesen in einen eigenen State schreiben. Ein weiteres Skript wacht dann darauf und benachrichtigt dich dann.
Ersteres finde ich irgendwie pragmatischer.
Hilft das ein wenig?
So long,
Fitti
-
Danke,
gute Idee.
Leider scheint Ping nicht zu funktionieren wenn das Tablet im Ruhemodus ist. Erst wenn Fully den Bildschirm aktiv hat geht wieder Ping.
-
hier gibt es einen Beitrag über Log in vis…Dieses Script legt Datenpunkte an unter anderem auch für Warnmeldungen. Mit diesen Datenpunkten kannst du über ein weiteres kleines Script als Trigger wenn >1 Logeintrag eine pushovernachricht mit entsprechenden inhalt senden.
-
hier gibt es einen Beitrag über Log in vis…Dieses Script legt Datenpunkte an unter anderem auch für Warnmeldungen. Mit diesen Datenpunkten kannst du über ein weiteres kleines Script als Trigger wenn >1 Logeintrag eine pushovernachricht mit entsprechenden inhalt senden. `
Genau das würde ich suchen, kannst du mir da mehr Infos geben?
Hab da auch einen Threat schon geschrieben: viewtopic.php?f=8&t=21186
Aber da hat leider keine eine Lösung gehabt.
-
So habe ich gemerkt das ich zwar die Adapter überwache, aber scheinbar Fehler die direkt in javascript.0 auftauchen nicht erkannt oder erfasst werden.
Hat jemand eine Idee wie ich das mit einbeziehen könnte? `
Bei jedem Script error-catching machen oder nur mit Promises arbeiten.
-
Gibt es nicht inzwischen eine einfache Möglichkeit, dass wenn ein Error im Log steht diesen per Pushover oder Telegram zu versenden?
-
@sali84 sagte in Log Error an Pushover melden:
Gibt es nicht inzwischen eine einfache Möglichkeit, dass wenn ein Error im Log steht diesen per Pushover oder Telegram zu versenden?
Das würd mich auch interessieren
-
@sali84 sagte in Log Error an Pushover melden:
Gibt es nicht inzwischen eine einfache Möglichkeit, dass wenn ein Error im Log steht diesen per Pushover oder Telegram zu versenden?
Ich hab mir was gebastelt was funktioniert
Als erstes hab ich den ioBroker.logparser Adapter installiert.
Dann habe ich mir ein kleines Blockly Script gebastelt:
Die Objekt-ID ist der Datenpunk json unter logparser \ 0 \ filters \ WarnAndError \
Wie du die Buchstaben da dir zurecht bastelt musst du testen. In meinem Fall hab ich mir testweise nen Error vom Telegramadapter erzwungen und bekomme mit den Buchstabeneinstellungen in meinem Script eine Ausgabe über Telegram die so aussieht: "Log: error - telegram.0"
-
@dicken
Hi - hat mir echt geholfen. Danke! Habe die Ausgabe noch etwas "ge-pimpt", da ich davon ausgehe,
dass die Meldungen unterschiedlich lang sein können.Muss ich aber erst noch testen...bis dahin der Zwischenstand: