NEWS
Bei Störung E-Mail versenden ?
-
@Dutchman: Du triggerst auf "was changed", was voraussetzt, dass sich der Text ändert. Allerdings kann es sein, dass immer wieder die gleiche Instanz mal läuft und dann irgendwann nicht mehr läuft. In diesem Fall würde nur einmal getriggert.
-
@Dutchman: Du triggerst auf "was changed", was voraussetzt, dass sich der Text ändert. Allerdings kann es sein, dass immer wieder die gleiche Instanz mal läuft und dann irgendwann nicht mehr läuft. In diesem Fall würde nur einmal getriggert. `
Stimmt, zur Erklärung: Ich wollte damit eine mail Wiederholung vermeiden wen man aber den effect haben möchte wie du beschreibst muss man de Trigger auf "wurde aktualisiert" ändern.
–-----------------------
Send from mobile device
-
Erst mal vielen Dank
Funktioniert auch
-
Habe es jetzt getestet, funktioniert gut [emoji4] Habe mir eine neue E-Mail Adresse dafür angelegt
Geht das auch mit anstehenden Updates? Oder sogar mit neuen verfügbaren Adaptern ?
-
Geht das auch mit anstehenden Updates? `
Dafür gibt es den(die) Datenpunkt(e) mit der ID "admin.N.info.updatesList" (N = 0,1, …). -
Danke [emoji106][emoji106][emoji106] das kann ich ja sofort weiterverarbeiten
-
Danke [emoji106][emoji106][emoji106] das kann ich ja sofort weiterverarbeiten `
Beachte aber das Updates erst nach einem Befehl
iobroker update
Sichtbar sind
Dafür könntest du das Kommando auch mit blockly ausführen
–-----------------------
Send from mobile device
-
1. Befehl IOBroker Update bewirkt nur das prüfen nach Updates oder werden die dann sofort installiert?
2. wie kann ich den Befehl absetzen? Unter Funktionen JavaScript-Funktion
-
1. Befehl IOBroker Update bewirkt nur das prüfen nach Updates oder werden die dann sofort installiert? `
update kommando sorgt nur dafuer das geprueft wird ob es updates gibt, update selber macht man mit
Alle adapter
iobroker upgrade
Nur den gewuenschten adapter
iobroker upgrade >adaptername<
2. wie kann ich den Befehl absetzen? Unter Funktionen JavaScript-Funktion `
mit blockly, in diesem beispiel haben ich ein cron drangehaengt damit er es jeden tag um 15Uhr mach kan man beliebig anpasssen:
hier noch der code zum importieren:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="schedule" id="G)SIufc?c]cK@sSp.*jw" x="87" y="63"><field name="SCHEDULE">* 15 * * *</field> <statement name="STATEMENT"><block type="exec" id="bKofe~Zg@2yFu|2CsnRC"><mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG">debug</field> <value name="COMMAND"><shadow type="text" id="?bD]P7ESC9u@OcnOH,:%"><field name="TEXT">cd /opt/iobroker/ && iobroker update</field></shadow></value></block></statement></block></xml>
oder als javascript:
// Jeden tag um 15 Uhr schedule("* 15 * * *", function () { //ausfuehren des consolen befehls exec('cd /opt/iobroker/ && iobroker update'); });
PS: ich habe gerade bemerkt das der wert "admin.0.info.updatesList" nach einen upgrade commando auf der konsole nicht eneuert wird. dafuer mus man nochmal das kommand update geben dan ist der wert richtig
-
Super vielen Dank
Werde ich noch ausprobieren.
-
Hallo, danke für das super kleine script…macht was es soll...
habe leider noch nicht raus wie ich den Emailtext alarmMail(txt) in die email packe...Mache das im Moment so wie unten...Aber denke mit der function alarmMail(txt) geht das auch schöner als mit dem eigenen Text.. sendTo("email", "ein System Adapter oder mehrere System Adapter inaktiv");
function alarmMail(txt) { sendTo("email", "ein System Adapter oder mehrere System Adapter inaktiv"); } // Instanz wird inaktiv on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) { var id = dp.id.split('.'); id = 'system.adapter.' + id[2] + '.' + id[3]; var instance = getObject(id); if(instance.common.enabled) alarmMail(dp.common.name); });
-
Hat sich erledigt, habs hinbekommen danke…
-
Postest Du noch, wie Du es geschafft hast?
Dann haben alle was davon.
Gruß,
Eric
Von unterwegs getippert
-
` > Postest Du noch, wie Du es geschafft hast?
Dann haben alle was davon. `
function alarmMail(txt) { sendTo('email', 'System Adapter meldet Probleme '+(txt)); } // Instanz wird inaktiv on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) { var id = dp.id.split('.'); id = 'system.adapter.' + id[2] + '.' + id[3]; var instance = getObject(id); if(instance.common.enabled) alarmMail(dp.common.name); });
zu dem script muss eigentlich nur noch der emailadapter eingerichtet werden… Funktioniert wunderbar, habe es mit mehreren Adaptern probiert...Der Script Ersteller hat ganze Arbeit geleistet..danke schön..
-
Hi, hätte gerne noch eine Statusanzeige in Vis, ganz simple eine objekt id auf true setzen wenn eine email bei störung versand wurde..
Bei Status true soll das Widget aufpoppen und bei Betätigung des Widget den Status wieder auf false setzen und verschwinden…
Kann man das so machen ? Funktioniert aufjedenfall schonmal wie ich es möchte.
createState('Adapterüberwachung.Störung', { read: true, write: false, type: "boolean" }); function alarmMail(txt) { sendTo('email', 'System Adapter meldet Probleme '+(txt)); setState('javascript.0.Adapterüberwachung.Störung', true ); } // Instanz wird inaktiv on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) { var id = dp.id.split('.'); id = 'system.adapter.' + id[2] + '.' + id[3]; var instance = getObject(id); if(instance.common.enabled) alarmMail(dp.common.name); });
-
on({id: /^system\.adapter\..+\.alive$/, change: 'ne',val: true}, function(dp) { sendTo('telegram.0', 'iobroker - System Adapter laufen fehlerfrei'); setState('javascript.0.Adapterüberwachung.iobroker.Störung', false ); setState('javascript.0.Adapterüberwachung.iobroker.Text', 'ioBroker - System Adapter laufen fehlerfrei '); });
Hi, mit oben gezeigtem Auszug wollte ich meine vis anzeige nach einem gemeldeten Fehler noch zurück setzen und ne Rückmeldung and telegram schicken..Funktioniert auch, nur bekomme ich die Rückmeldung, dass die Adapter nun fehlerfrei laufen öfters…Jemand ne idee was an dem Script auszug falsch sein könnte oder wie ich das unterbinden kann...eine Rückmeldung bis zum nächsten Statuswechsel reicht mir eigentlich...
-
'ioBroker - System Adapter laufen fehlerfrei ' ```` `
Mit dieser Aussage würde ich vermuten, dass sie Auskunft geben soll, dass <u>alle</u> Instanzen laufen. Für diese Aussage braucht es aber eine UND-Verknüpfung des "alive" aller aktivierten Instanzen. Der Trigger liefert allerdings nur die Information, dass eine zuvor nicht laufende Instanz nun wieder läuft.
-
Hallo paul 53 danke für die Rückmeldung…Ja du hast recht, ich möchte natürlich die Störmeldung in Vis zurücksetzen, wenn alle aktiven Adapter wieder alive also fehlerfrei - grün sind...Habe schon ein paar Varianten durchgespielt, bekomme das aber nicht so zum laufen wie ich es mir vorstelle...
Kann ich das irgendwie mit ner else Verknüpfung unter function alarmMail(txt) { lösen?
Komme mit try and error nicht so recht weiter...und mit dem Scripten haperts noch etwas...
-
Habe schon ein paar Varianten durchgespielt, bekomme das aber nicht so zum laufen wie ich es mir vorstelle… `
Wie wäre es mit einem Alarm-Zähler ?var cnt = 0; // Instanz wird inaktiv on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) { var id = dp.id.split('.'); id = 'system.adapter.' + id[2] + '.' + id[3]; var instance = getObject(id); if(instance.common.enabled) { alarmMail(dp.common.name); cnt++; } }); on({id: /^system\.adapter\..+\.alive$/, change: 'ne',val: true}, function(dp) { cnt--; if(cnt <= 0) { sendTo('telegram.0', 'iobroker - System Adapter laufen fehlerfrei'); setState('javascript.0.Adapterüberwachung.iobroker.Störung', false ); setState('javascript.0.Adapterüberwachung.iobroker.Text', 'ioBroker - System Adapter laufen fehlerfrei '); cnt = 0; // falls cnt < 0 (verzählt) } });
-
super Lösungsansatz, danke….habe das jetzt komplett so übernommen..also dein komplettes Script mit Fehlermeldung und Gutmeldung...
Im ersten Versuch macht es was es soll...
Mal gespannt ob jetzt die Gutmeldungen nicht wieder ständig aufpoppen...Vielen Lieben Dank dafür..
createState('Adapterüberwachung.iobroker.Störung', {"name": "iobroker Servicemeldungen Störung" }); 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.Störung', true ); setState('javascript.0.Adapterüberwachung.iobroker.Text', 'System Adapter meldet Probleme '+(txt)); } var cnt = 0; // Instanz wird inaktiv on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) { var id = dp.id.split('.'); id = 'system.adapter.' + id[2] + '.' + id[3]; var instance = getObject(id); if(instance.common.enabled) { alarmMail(dp.common.name); cnt++; } }); on({id: /^system\.adapter\..+\.alive$/, change: 'ne',val: true}, function(dp) { cnt--; if(cnt <= 0) { sendTo('telegram.0', 'iobroker - System Adapter laufen fehlerfrei'); setState('javascript.0.Adapterüberwachung.iobroker.Störung', false ); setState('javascript.0.Adapterüberwachung.iobroker.Text', 'ioBroker - System Adapter laufen fehlerfrei '); cnt = 0; // falls verzählt und cnt < 0 } });