NEWS
Servicemeldungen - All inclusive für Homematic -
-
von mir "gelöscht"
-
meine CCU hat grad die Meldung, dass ein Update verfügbar ist. Das Script greift die Meldung der CCU aber nicht ab oder?
-
Eine neue Firmware ist keine Servicemeldung. Die neue Firmware erscheint nur auf der Startseite der ccu nicht im Punkt Servicemeldunden. Also nein aber möglich wäre es, da wir die Firmware als Datenpunkt in iobroker haben. Man müsste aslo nur den Server von eq3 abfragen. Ich befürchte das hierfür meine Script Kenntnisse nicht ausreichen
-
@cash
Also ich habe die neue Firmware (2.41.8) installiert, bis jetzt ist alles Ok.
Ist eine kleine, aber wichtige Änderung wegen Sicherheit....Changelog 2.41.8 Fehlerbehebungen [HMCCU-153] Security Update des Web Session Managements der CCU (Unberechtigtes Login durch Manipulation mit der SessionID) Risiko: Angriffsmöglichkeit bestand - aus dem Internet: Wenn Port Forwarding eingerichtet war (siehe Warnung oben) - aus dem LAN: Wenn unsichere / nicht vertrauenswürdige Systeme Zugang zum LAN haben
-
mir ging es darum eine Nachricht ebzusetzen wenn eine neue Firmwareversion zur Verfügung steht.
Zur Zeit steht bei mir die Info, das eine neue Version zur Verfügung steht in der CCU. Die Frage ist nun
wie bekomme ich die Information von der CCU in iobroker... -
Aha, jetzt verstehe ich was du meinst...
Muss mal überlegen... -
Hätte noch ein paar Geräte einzupflegen:
HM-LC-Sw1-SM --- Batterietyp fehlt im Script
HM-LC-Sw1-SM --- Batterietyp fehlt im Script
HM-LC-Sw4-SM --- Batterietyp fehlt im Script
HM-LC-Sw4-SM --- Batterietyp fehlt im Script
HM-LC-Sw4-SM --- Batterietyp fehlt im Script
HM-Sys-sRP-Pl --- Batterietyp fehlt im ScriptDas sind allesamt Geräte an 230V, also ohneBatterie.
Vielen Dank für das Skript!
-
Hallo ich habe bislang noch das Script von paul53 und pix am laufen, zusätzlich teste ich gerade mit diesem Script.
Ist es möglich auch ein Fenster mit allen anstehenden Meldungen anzeigen zu lassen, so ähnlich war es in dem Vorgänger Script.
Habe an folgenden Stellen ein wenig gespielt.
//Variablen für Servicemeldung in Objekt schreiben // Wenn einer Meldung auftritt wird diese in ein Textfeld geschrieben. Auf dieses kann man dann reagieren //und z. B. die Nachricht per Telegram verschicken oder in vis anzeigen var write_message = true; // true schreibt beim auftreten einer Servicemeldung die Serviemeldung in ein Objekt var id_Text_Servicemeldung = 'MeineObjekte.0.TEST.NEU'/*Test neu*/;
In dem TAG wird die meldung geschrieben, wenn sie allerdings nicht mehr ansteht, wird diese Meldung auch nicht gelöscht.
//Ergebnis in Datenfelder schreiben var write_state = true; //Schreibt die Ergebnisse der Servicemeldungen in Datenfelder. (true = schreiben, false, kein schreiben) //nicht benutzte Felder einfach leer lassen --> var id_IST_XXX = ''; var id_IST_LOWBAT = 'Systemvariable.0.Servicemeldungen.Anzahl_LOWBAT'/*Anzahl LOWBAT*/; var id_IST_LOW_BAT = ''; //var id_IST_G_LOWBAT = ''; var id_IST_UNREACH = "Systemvariable.0.Servicemeldungen.Anzahl_UNREACH"/*Anzahl_UNREACH*/; var id_IST_STICKY_UNREACH = "Systemvariable.0.Servicemeldungen.Anzahl_STICKY_UNREACH"/*Anzahl_STICKY_UNREACH*/; var id_IST_CONFIG_PENDING = ''; var id_IST_UPDATE_PENDING = ''; var id_IST_DEVICE_IN_BOOTLOADER = ''; var id_IST_ERROR = ''; var id_IST_ERROR_NON_FLAT_POSITIONING = ''; var id_IST_ERROR_CODE = ''; var id_IST_FAULT_REPORTING = ''; var id_IST_SABOTAGE = 'MeineObjekte.0.TEST.TABLE'/*Test neu*/; var id_IST_Gesamt = "Systemvariable.0.Servicemeldungen.Anzahl_GESAMT"/*Anzahl_GESAMT*/;
Hier habe ich auch gespielt, aber in der TEST.TABLE wird nichts geschrieben, wo im ioBroker findet man Systemvariable.0, konnte das nirgendwo finden.
-
@zahnheinrich Danke habe ich in der nächsten Version ergänzt.
@mike2712 Ich verstehe Deine Fragen nicht so ganz?
Das Script zeigt fast alle Servicemeldungen von allen Homematic Geräten, auch von Fenstern. Eine Servicemeldung wäre z. B. Batterie leer oder Sabotage.
Eine Servicemeldung wird nicht erzeugt beim öffnen eines Fensters.Der Umstand das das Feld id_Text_Servicemeldung nicht gelöscht wird wenn die Meldung weg ist ist mir bekannt. Ist historisch gewachsen und störte bisher nicht weil das Feld benutzt wurde um darüber z. B. etwas per Telegram zu verschicken. Ich werde das in einer der nächsten Versionen anpassen.
Meine eigenen Objekte führe ich unter Systemvariable.0
Du Deine anscheinend unter MeineObjekte.0Wenn Du das Script so laufen läßt wie gezeigt sollte es ein paar Fehler im Log bringen, da es bei Dir ja meine Felder nicht gibt?
Also am Besten die nicht benötigen Felder leeren mit ''Danach sollte es im Log keine Fehler geben. Aber es sollten dort viele Infos auftauchen zumindest wenn onetime =true...
-
@cash
danke für die Antwort,Ich würde gerne ein Fenster anzeigen lassen in dem alle anstehenden Meldungen stehen, dieses Beispiel ist blöd da nur eine vorhanden ist, wenn die Meldung nicht mehr vorhanden ist soll sie weg gehen, so war das in dem alten script.
-
@mike2712 sagte in Servicemeldungen - All inclusive für Homematic -:
Ich würde gerne ein Fenster anzeigen lassen in dem alle anstehenden Meldungen stehen, dieses Beispiel ist blöd da nur eine vorhanden ist, wenn die Meldung nicht mehr vorhanden ist soll sie weg gehen, so war das in dem alten script.
Ich würde mich auch freuen, wenn das gehen würde.
-
@cash
Folgende Meldungen habe ich im LOG
Variablen habe ich komplett angepasst
//Ergebnis in Datenfelder schreiben var write_state = true; //Schreibt die Ergebnisse der Servicemeldungen in Datenfelder. (true = schreiben, false, kein schreiben) //nicht benutzte Felder einfach leer lassen --> var id_IST_XXX = ''; var id_IST_LOWBAT = 'MeineObjekte.0.Service.Meldungen.LOWBAT'/*Lowbat*/; var id_IST_LOW_BAT = ''; //var id_IST_G_LOWBAT = ''; var id_IST_UNREACH = 'MeineObjekte.0.Service.Meldungen.UNREACH'/*Unreach*/; var id_IST_STICKY_UNREACH = 'MeineObjekte.0.Service.Meldungen.STICKY_UNREACH'/*Sticky unreach*/; var id_IST_CONFIG_PENDING = ''; var id_IST_UPDATE_PENDING = ''; var id_IST_DEVICE_IN_BOOTLOADER = ''; var id_IST_ERROR = ''; var id_IST_ERROR_NON_FLAT_POSITIONING = ''; var id_IST_ERROR_CODE = ''; var id_IST_FAULT_REPORTING = ''; var id_IST_SABOTAGE = 'MeineObjekte.0.Service.Meldungen.SABOTAGE'/*Sabotage*/; var id_IST_Gesamt = 'MeineObjekte.0.Service.Meldungen.TOTAL'/*Total*/;
Welche Datentypen müssen hier angeben werden, ich habe überall Meldung Wrong Type... habe es mit Zahl und String versucht.
Wrong type of MeineObjekte.0.Service.Meldungen.No_UNREACH: "number". Please fix, while deprecated and will not work in next versions.
-
Gibt es eine Möglichkeit, einzelne Geräte von Meldungen auszuschliessen, weil sie vorübergehend ausser Betrieb sind?
-
@mike2712 die Objekte müssen vom Typ Zahl sein. Damit gibt es bei mir keine Meldungen. Ich nutze latest bei den Instanzen?
Dieses Script unterstützt das nicht mit alle Meldungen in einen Fenster. Das Script hat einen anderen Ansatz und dieser heißt wenn eine Meldung auftritt werde ich direkt benachrichtigt per Push. Generell würde ich diesen Ansatz auch gerne ermöglichen aber dazu müsste ich das komplette Script umschreiben und auf viele anderen Funktionen verzichten.
-
@zahnheinrich Gibt es diese Funktion nicht teilweise auf der ccu selber? Ich weiß nicht wie da der Stand der Dinge ist (zumindest war das in Planung). In meinen Script habe ich das nicht vorgesehen. Bei mir steckt eine Steckdose die ich nicht brauche trotzdem in der Steckdose somit habe ich damit keine Probleme.
-
@sveni_lee @sigi234 könntet Ihr mal dieses Script testen und im log schauen. Es sollte überprüfen ob Eure Firmware aktuell ist. Ob ich es in dieses Script einbaue oder ein sep. mache weiß ich aber noch nicht. Erst mal gucken ob es läuft. Bei mir kommt das meine Version nicht aktuell ist was auch stimmt. Ihr müsst im Script den Datenpunkt anpassen wo die aktuelle Firmware Version in Biobroker hinterlegt ist. Das ist irgendwo als Objekt im Rega.Adapter zu finden. Und Ihr müsst wählen ob Ihr eine ccu2 oder ccu3 habt.
var logging = true; var debugging = false; var CCU_Version = 2; //Hier die nr der CCU eintragen 2 = CCU2 oder 3 = CCU3 //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter) var id_Version_installiert = "hm-rega.0.MEQ0228930.0.FIRMWARE_VERSION"/*hm-rega.0.MEQ0228930.0.FIRMWARE_VERSION*/; //Eigentliches Script var ccu2 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345'; var ccu3 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU3&serial=12345'; var ccu; if(CCU_Version == 3){ccu = ccu3;} else{ccu = ccu2;} var request = require('request'), url = ccu; request({url : url}, function (error, response, body) { var Version_installiert = getState(id_Version_installiert).val; var Version = body.split("'"); if(error){ log('error: ' + error); } else{ if(Version_installiert == Version[1]){ if(logging){ log('Installierte Version der CCU ist aktuell'); } } else{ if(logging){ log('Version ist nicht aktuell. Installiert: ' +Version_installiert +' --- Verfügbare Version: '+Version[1]); } } if(debugging){ log('body: ' + body); log('Länge ' + Version.length + ' --- Version: ' + Version[1]); log('response: ' + JSON.stringify(response)); } } } );
-
@cash sagte in Servicemeldungen - All inclusive für Homematic -:
@zahnheinrich Gibt es diese Funktion nicht teilweise auf der ccu selber? Ich weiß nicht wie da der Stand der Dinge ist (zumindest war das in Planung). In meinen Script habe ich das nicht vorgesehen. Bei mir steckt eine Steckdose die ich nicht brauche trotzdem in der Steckdose somit habe ich damit keine Probleme.
In der CCU gibt´s das nicht.
Wohl dagegen im dort verbreiteten Skript von Alchy.
Ich praktisch, wenn einzelne Aktoren, wie z.B. Funksteckdosen nur temporär in Gebrauch sind. -
@cash Ich benutze eigentlich auch latest
mit Zahl habe ich versucht und bekomme auch die Warnmeldungen, ich habe gesehen das es sowohl mit Zahl als auch String funktioniert, es werden jeweils die States beschrieben wenn ich das Script ausführe. -
funktioniert bei mir... (nachdem ich den State zur installierten Firmware angepasst habe)
Danke... ich könnte mit einem separaten script leben. einmal oder zweimal am tag das script starten lassen und gut... -
@sveni_lee was heißt es funktioniert? Wie sieht das Log aus? Hast Du dort auch eine Leerzeile erhalten? Ich vermute dort noch einen Fehler in einem Adapter?