NEWS
Bei Störung E-Mail versenden ?
-
-
Danke Dir!
So hatte ich es auch versucht. Bekomme aber beim Start folgende Meldung:javascript.0 script.js.common.Test2 compile failed:
at script.js.common.Test2:12 -
-
Danke! Das Script funktioniert jetzt zwar, aber es hilft mir nicht weiter. Ich habe vereinzelt Instanzen, die (wenn diese den Server nicht erreichen) kurz grün werden und dann wieder rot oder gelb.
Dann bekomme ich im Minutentakt diese Meldungen...
Kann ich bei diesem Script irgendwie ein ganz einfaches Schedule einbauen?
Z.B. damit es nur alle 4 Stunden ausgeführt wird?
Das würde mir dann so schon ausreichen... -
@deifel sagte:
Instanzen, die (wenn diese den Server nicht erreichen) kurz grün werden und dann wieder rot oder gelb.
Verhält sich bei diesen Instanzen der Datenpunkt system.adapter.name.N.connected genauso, d.h. wird er zwischendurch mal kurz true ?
-
Ja, verhält sich leider genauso, wenn ich unter Objekte die Sache beobachte...
Das ist mit Sicherheit der Grund, dass das Script natürlich dann ständig reagiert. -
@deifel sagte:
verhält sich leider genauso
Dann sollten diese Adapter in diesem Skript ausgeblendet werden. Sie müssen getrennt behandelt werden.
Ausblenden in Zeile 12:
if(common.enabled && common.mode == 'daemon' && id[2] != 'adapter1' && id[2] != 'adapter2') {
adapter1, adapter2 sind durch die betreffenden Adapternamen zu ersetzen.
EDIT: Wenn Du mir verrätst, welche Instanzen betroffen sind, kann ich das Skript entsprechend ergänzen.
-
Ich danke Dir vielmals für Deine Hilfe!
Also bei mir sind das der Adapter netatmo und der cloud-Adapter.
Wobei ich mir nicht sicher bin, wie der cloud adapter reagiert bzw. ob auch dort der system.adapter.name.N.connected Eintrag sich verändert.
Bei Netatmo ist das definitiv der Fall. Sobald einer meiner Sensoren (Regen, Wind etc.) keinen Empfang hat, trennt sich gleich die ganze Verbindung des Adapters.
Wenn ich das davon nicht erfahre oder es nur zufällig in IOBroker sehe, dann merke es es gar nicht. Deshalb wäre das Script hier klasse...
Ich schaffe es jetzt zwar, dass Dein Script die Werte in ein Objekt schreibt und über ein Blockly-Script kann ich das 1 oder 2 mal am Tag abrufen und per Telegram etc. versenden - aber
besser wäre natürlich eine vernünftige Lösung über ein gutes Script (mit einer entsprechenden Prüfung etc.)...
Wenn ich den netatmo in Zeile 12 ausblende, dann berücksichtigt Dein Script diesen ja gar nicht mehr, richtig? -
@deifel sagte in Bei Störung E-Mail versenden ?:
dann berücksichtigt Dein Script diesen ja gar nicht mehr, richtig?
Richtig, deshalb benötigt er eine Sonderbehandlung.
createState('Adapterüberwachung.iobroker.Text', {"name": "iobroker Servicemeldungen Text"}); function alarmMail(txt) { sendTo('telegram.0', 'iobroker - System Adapter meldet Probleme ' + txt); setState('javascript.0.Adapterüberwachung.iobroker.Text', 'System Adapter meldet Probleme ' + txt); } // Instanz wird inaktiv on({id: /^system\.adapter\..+\.alive$/, val: false, oldVal: true}, function(dp) { var id = dp.id.split('.'); var common = getObject('system.adapter.' + id[2] + '.' + id[3]).common; if(common.enabled && common.mode == 'daemon' && id[2] != 'netatmo' && id[2] != 'cloud') { alarmMail(dp.common.name); } }); var timer1 = null; on({id: 'system.adapter.netatmo.0.alive', val: false, oldVal: true}, function(dp) { var common = getObject('system.adapter.netatmo.0').common; if(common.enabled) { if(!timer1) alarmMail(dp.common.name); else clearTimeout(timer1); timer1 = setTimeout(function() {timer1 = null;}, 300000); // 5 Minuten } }); var timer2 = null; on({id: 'system.adapter.cloud.0.alive', val: false, oldVal: true}, function(dp) { var common = getObject('system.adapter.cloud.0').common; if(common.enabled) { if(!timer2) alarmMail(dp.common.name); else clearTimeout(timer2); timer2 = setTimeout(function() {timer2 = null;}, 300000); // 5 Minuten } });
Die Instanz muss mind. 5 Minuten lang "alive" gewesen sein, bevor eine Meldung erzeugt wird.
-
Klasse! Vielen Dank! Das wäre ja klasse, wenn das so funktioniert.
Werde ich so testen.
Herzlichen Dank nochmals für Deine Hilfe - sehr nett!
LG
Frank -
@deifel Habe noch ein clearTimeout() (Retrigger) eingebaut !! Bitte übernehmen !
-
Frage ich connected auch mit enabled ab, oder ist das ein anderer Befehl.
-
@Oli sagte in:
Frage ich connected auch mit enabled ab
connected hat eine ähnliche Bedeutung wie alive. common.enabled ist die Aktivierung der Instanz und wird abgefragt, weil es keinen Sinn macht connected einer deaktivierten Instantanz zu testen.
-
dankeschön
-
@oli
Hallo
Ich weiss der Thread ist alt, aber ich wollte das oben verlinkte Script verwenden.
Ich bekomme aber nun Syntax Errors.
Kann mir da jemand helfen? Und zwar hier:
und da
Die Variable common hat nur icon name und role.
Nicht enabled und nicht mode.
Gruss Ralf -
@derrapf sagte: Nicht enabled und nicht mode.
Lass Dich nicht vom Script-Editor verwirren, denn der kennt nicht alle common-Eigenschaften der system.adapter.name.0-Objekte und meckert sie deshalb an.
-
@paul53
Tatsächlich.
Das Script läuft.
Das bin ich halt nicht gewohnt, dass die IDE Sysntaxfehler liefert obwohl es keine sind.
DankeGruss Ralf