NEWS
Servicemeldungen - All inclusive für Homematic -
-
@metaxa das datum_neu ist ein Fehler. Die Variable gab es früher einmal. Richtig muss es datum_seit heißen (also einfach ersetzen und das var xxx wieder entfernen). Wie kommst Du darauf das die Zeile 473 und 476 fehlerhaft sind? Nur weil der Javascript Adapter etwas rot anzeigt? Ich bin der Meinung, dass dort der Adapter irrt. Im log wirst Du dazu keinen Fehler finden.
Werde Heute oder Morgen eine neue Version hochladen wo der Fehler mit datum_neu berichtigt wurde.
Danke fürs melden.
-
@cash sagte in Servicemeldungen - All inclusive für Homematic -:
Alchy aus dem Homematic Forum
Hallo, bin noch am Anfang mit iobroker Wie binde ich dieses Script ein? Habe bisher immer mit Blockly gearbeitet. Statt Blockly nehme ich ja den Javascript import, aber es sind ja mehrer Dateien?! Danke schon einmal.
-
@marcbroe sagte in Servicemeldungen - All inclusive für Homematic -:
Statt Blockly nehme ich ja den Javascript import,
Nein, neues JS Skript anlegen, dann das Skript einfügen, anpassen, speichern , starten.
aber es sind ja mehrer Dateien
Nein, nimm die neue Beta Version. Anklicken, Alles Kopieren und im Neuen JS Script einfügen
-
@cash sagte in Servicemeldungen - All inclusive für Homematic -:
Wie kommst Du darauf das die Zeile 473 und 476 fehlerhaft sind?
Ich maße mir in keinsten Fall an, Fehler da oder dort zuzuweisen. Habe keine Ahnung von JS, von daher habe ich mich nur an die rote Anzeige rechts gehalten. Ja es stimmt, keine Fehlermeldung im Log.
Zur Zeit habe ich auch keine Servicemeldungen, was mir auch recht ist
LG, mxa
-
Habe gerade die aktuelle Beta hochgeladen. Vom Funktionsumfang jetzt identisch mit der alten Version.
Ich habe dort einen Log eingebaut bei doppelten Meldungen von unreach und sticky_unreach. Falls jemand eine Meldung bekommt bitte bei mir melden.
@metaxa War nicht böse gemeint. Ich bin auch kein javascript Profi...
-
Hatte heute zufällig mal wieder unreach-Meldungen. Leider funktioniert meine Idee noch nicht so ganz.
Also gibt es eine neue Beta-Version auf GitHub mit etwas mehr log-Einträgen damit ich hoffentlich das Problem finde.
-
Es gibt es neue Version (als Beta). Ich hoffe die letzte. Wenn ich mich nicht täusche sollten ab jetzt doppelte Meldungen unterdrückt werden.
-
Hallo cash,
wollte so was Ähnliches auch programmieren und habe bei der Suche dein Script entdeckt.
Bin echt begeistert davon und du hast mir bestimmt viel Arbeit erspart.
Meine Frau wird es dir auch dankenHabe die Version 1.36 am laufen und funktioniert so weit ganz gut.
Jetzt habe ich noch eine Frage zu meinem Verständnis und hoffe, dass zu Zeit hast zu antworten.- Bewirkt die Constante "autoAck" dasselbe wie die Einstellung in der Benutzerverwaltung der CCU "Automatische
Bestätigung der Servicemeldung Gerätekommunikation war gestört" ? Oder ist damit noch was anderes realisiert ?
Werde jetzt erst mal dein Script durchgehen,
bevor ich noch weiter Fragen stelle, das meiste wird sich dann wahrscheinlich von selbst beantworten.Gruß Arno
- Bewirkt die Constante "autoAck" dasselbe wie die Einstellung in der Benutzerverwaltung der CCU "Automatische
-
Hallo cash,
habe jetzt noch eine Frage
Mir ist aufgefallen, dass du in deinem Script die ID STICKY_UNREACH_ALARM auswertest. Hat das einen bestimmten Grund ? Die STICKY_UNREACH_ALARM zeigt eigentlich nur das eine Kommunikationsstörung Vorlag und sagt nichts über die aktuelle Störung der CCU aus. Bei den HMIP Geräten gibt es diesen Datenpunkt bereits nicht mehr, da sinnfrei.
Ich erhalte doppelte Pushover Meldungen, die von der ID STICKY_UNREACH_ALARM ausgelöst werden, da diese nur verzögert von der Rega quittiert werden also bereits nicht mehr aktuell sind. Wenn ich bei mir diesen Teil deines Scripts auskommentiere, bekomme ich nur die aktuellen Störungen gemeldet.
Wolltest du damit eine Quittiermeldung über Pushover realisieren ?Sorry das ich so viel nachfrage.
-
@ArnoD ob der Paramter das gleiche bewirkt weiß ich nicht 100% klingt zumindest so? Wenn ich mich nicht täusche gibt es die Option nur beim raspberrymatic...
Also bei IP Geräten gibt es keinen Sticky-Unreach das ist richtig. Ich möchte die Meldung auf jeden Fall haben, denn sie sagt das es eine Kommunikationsstörung gab die man nun mit dem Paramter autoACK erledigen kann.
Früher wollte man eigentlich schon wissen wieviel Kommunikationsstörungen hat meine ccu denn und wieviele erledigen sich von ganz alleine.
Sinn des Scripts ist es halt jede Servicemeldung zu pushen.
In meiner aktuellen Version (ich glaube 1.43) werden doppelte Meldungen rausgefiltert. Werde die Version heute Abend oder am Wochenende hochladen. Habe in der Version aber immer noch kleine ungereimtheiten. Ich bekomme leider nicht regelmäßig Servicemeldungen, so dass das Fehler finden nicht so einfach ist
Du kannst natürlich den Teil löschen oder auskommentieren. Einfacher geht es wenn Du ganz unten bei if(obervation) die drei Zeilen mit Sticky_Unreach auskommentierst.
Du kannst das Script jederzeit Deinen Bedürfnissen anpassen.
-
@cash danke für deine schnelle Antwort und für die neue Version 1.43
@cash said in Servicemeldungen - All inclusive für Homematic -:
@ArnoD ob der Paramter das gleiche bewirkt weiß ich nicht 100% klingt zumindest so? Wenn ich mich nicht täusche gibt es die Option nur beim raspberrymatic...
Ok wieder was gelernt, wuste nicht das diese Option nur bei der raspberrymatic vorhanden ist.
Habe heute die neue Version 1.43 am laufen und bin gerade wieder am testen.
Einen Fehler habe ich finden können, allerdings nicht im Script sondern in der automatischen Quittierfunktion der Raspberrymatic. Wenn ein Teilnehmer nicht mehr erreichbar ist wird die Störung automatisch quittiert und STICKY_UNREACH_ALARM auf 2 gesetzt obwohl die Störung immer noch besteht und eigentlich nicht quittiert werden kann, UNREACH bleibt auf true. Nach etwa 60 sek. wird STICKY_UNREACH_ALARM wieder auf 1 gesetzt. Das hat zur Folge das eine weitere Push Nachricht verschickt wird.
Das sieht dann so aus:
Ist aber eher ein Thema für Jens Maus
Ist es eigentlich gewollt das beide Meldungstexte verschickt werden? Also die Störung und das es sich um eine quttierbare Störung handelt.
Wenn es dir hilft bin ich immer gerne bereit zu testen, habe mehrer RF HMIP und Wired Geräte im Einsatz.
-
Hallo cash,
ich habe mal eine Frage zu deinem Script: Du verwendest bei den Push-Funktionen eine Variable messgae. Weiter unten im Script wird eine Variable message benutzt. Als temporäre Variablen nutzt du messgae_temp.Ist das so beabsichtichtigt? Oder verstehe ich deinen Code nicht (bin Anfänger
-
@ArnoD Ja es ist beabsichtigt das beide Meldungen kommen. Den Grund sieht man in der ersten Pushmeldung. Es kann ja sein, das es nur eine Sticky_Unreach Meldung gibt und nicht auch eine Unreach.
In Deinem Fall hätte die zweite Meldung eigentlich nicht kommen sollen. Das finde ich eher unschön und versuche ich zu unterdrücken. Das nachstellen ist halt immer schwierig um so eine Lösung zu finden.
Und was den Parameter von raspberrymatic angeht glaube ich das Jens etwas schummelt. Wenn ich mich nicht täusche unterdrückt er nur die Anzeige, da bin ich mir aber nicht so ganz sicher. Anderseits mache ich das im Script auch. Wenn man ein Gerät bei no_observation einträgt und es kommt eine Meldung wird halt nur keine Push verschickt im Protokoll taucht die Meldung trotzdem auf...
@MartyBr ich weiß nicht genau was Du meinst. Ich benutzte glaube in der aktuellen Version verwende ich kein message_tmp mehr (bin mir unsicher am ipad ist er mühsam den Code sich komplett anzugucken). Aus dem Kopf:
Früher habe ich die Meldungen erstmal in message_tmp bzw message_tmp1 aufgenommen. Unterschied war einmal mit html tags und einmal ohne. Da Telegram z. B. damit nicht umgehen kann Irgendwo im Script habe ich dann einfach message = message_tmp gesetzt so dass sie identisch sind. Den genauen Hintergrund warum ich das gemacht habe kann ich Dir nicht mehr sagen. Aber meistens habe ich mir irgend etwas dabei gedacht wenn ich eine Script Zeile schreibe
-
Hallo cash,
das sind diese Code passagen:
sendTo(pushover_Instanz, { device: device, message: message, title: titel, priority: prio, retry: 60, expire: 600, html: 1 }); } function send_telegram (messgae, user_telegram) { sendTo('telegram.0', { text: messgae, user: user_telegram, parse_mode: 'HTML' });
Wenn du nach messgae suchst, dann findes du die Variable an mehreren Stellen:
var servicemeldung = []; var formatiert_servicemeldung = []; var messgae_tmp = ''; var messgae_tmp1 = ''; var log_manuell = false;
Das wird wahrscheinlich auch nur ein Tippfehler sein.
-
@MartyBr wie ich schon schrieb ich habe mir etwas dabei gedacht. In der aktuellen Version verwende ich message_tmp garnicht mehr. Oder meine suche funktioniert nicht.
Falls Du nicht die V1.44 benutzt aktualisiere bitte das Script.
-
@MartyBr aber nochmal zu Erklärung. Ursprünglich habe ich nur message verwendet. Irgendwann kam der Wunsch auf das ich Telegram intergriere. Telegramm kann aber nicht mit html-Tags umgehen. Also habe ich zwei Variablen benutzt. Aus message wurde message_tmp und für Telegram gab es message_tmp1. Da ich viel aus meinen anderen Scripten immer wieder kopiere und meine Standard Pushover Function mit message funktioniert habe ich es so umgesetzt das ich dann die Vaiable message entweder mit message_tmp fülle oder eben mit message_tmp1 und somit hat das Script korrekt gearbeitet.
Man hätte es anders lösen können oder eben so wie ich. Viele Wege führen zum Ziel. Aber es ist eh eine alte Version. Bei der neuen habe ich es anders umgesetzt aber auch bei der Version gibt es die Variable message.
-
@cash
Alles klar verstanden -
Ich denke @MartyBr meinte den Buchstabendreher in message, da wurde bei message das a und g vertauscht.
Bei den Funktionen send_telegram und send_mail.genauso weiter unten im Script bei den Variablen messgae_tmp und messgae_tmp1. Ist aber nur ein kosmetischer Fehler
-
Ich habe bei mir jetzt den Fehler mit der doppelten Push Meldung korrigiert, eventuell willst du ja die Lösung in deinem Script übernehmen.
Es ist eigentlich derselbe Fehler, wie Jens bei seiner Quittierung der Fehler macht.
Das ein Fehler, der noch aktuell ansteht, versucht wird zu quittieren, was natürlich nicht geht.
Die Schleife STICKY_UNREACH darf erst durchlaufen werden, wen UNREACH= false ist, sonst kann der Fehler nicht quittiert werden.
Ich habe in deiner Funktion Servicemeldung(obj) eine neue Variable var id_UNREACH und status_UNREACH eingefügt und folgenden code geändert:
Ist Programmiertechnisch nicht die beste Lösung aber es funktioniert und mir ist nichts besseres eingefallen ohne das ganze Script abzuändern.
-
und so sieht es dann in Pushover aus: