Servicemeldungen *allinclusive* Script

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von Tibin » 06.04.2018, 14:21

Hallo Alchy,
ich wollte dich schon länger mal danach fragen..... und da sich irgendwie die Geräte mit NICHT-Meldungen häufen....
Wäre es evtl. eine Idee das Skript so umzubauen, dass die Systemvariable zwingend benötigt wird und diese abgefragt wird?
Da die SV ja scheinbar immer befüllt wird mit der richtigen Meldung (nur halt ohne "ALTE Servicemeldung")
Wie gesagt.. nur eine Idee. Ob gut oder schlecht darfst du entscheiden :mrgreen:
Gruß Tino

otto
Beiträge: 8
Registriert: 05.04.2018, 16:19

Re: Servicemeldungen *allinclusive* Script

Beitrag von otto » 06.04.2018, 15:36

also zu den 2 Ausführungen des Programms erkläre ich wie folgt:

habe zur Sabotage den BM aus der Halterung genommen -> 1. durchlauf
dann habe ich mails aktualisiert ( leider keine bekommen )
dann 30 sek später den BM in seine Halterung zurück gesteckt. Ist dabei der 2. Durchlauf entstanden?


Habe nun die Verzögerung des Scriptes auf sofort umgestellt und dann die Sabotage nocheinmal durchgespielt. Habe zwischen der Sabotage und dem zurückstecken in die Halterung des BM 3 Minuten gewartet.

Änderung in CCU2 auf sofort:
CUxD meldet nichts.

Ich ziehe einen BM aus der Halterung:
Dann wird die Servicemeldung in der Variable siehe anlage abgespeichert.
Die Frage ist, warum steht hier "ALTE Servicemeldung" obwohl diese Servicemeldung ja
just in diesem Augenblick entstanden ist.

Die CUxD meldet folgendes

Code: Alles auswählen

Apr  6 15:24:44 homematic-ccu2 user.debug script: [ALCHY ALLINScript START]
Apr  6 15:24:44 homematic-ccu2 user.debug script: [ALCHY ALLINScript ENDE]
Ich aktualisiere meine Mails:
KEINE Email auch nicht nach 3 Minuten warten.

Dann habe ich den BM wieder reingesteckt:
Servicemeldung in der Variable bleibt unverändert.

Die CUxD meldet wieder:

Code: Alles auswählen

Apr  6 15:28:27 homematic-ccu2 user.debug script: [ALCHY ALLINScript Abbruch BLOCK]
Apr  6 15:28:27 homematic-ccu2 user.debug script: [ALCHY ALLINScript START]
verstehe nicht warum das Script nach dem in die Halterung stecken nun Abbruch und Start in der CUxD meldet. Dies tut es mal in der Reihenfolge Abbruch / Start und auch Start / Abbruch.


Ich habe die BM in einem anderen Programm laufen wo mir die "Bewegung erkannt" gemeldet wird, dies passiert ebenfalls über 1sek verzögerung und da klappt auch die Benachrichtigung super und fehlerfrei.

Vielen Dank vorab.
Dateianhänge
Bildschirmfoto 2018-04-06 um 15.25.04.png
Bild Sabotage auslösen
Bildschirmfoto 2018-04-06 um 15.25.04.png (21.85 KiB) 2630 mal betrachtet

otto
Beiträge: 8
Registriert: 05.04.2018, 16:19

Re: Servicemeldungen *allinclusive* Script

Beitrag von otto » 10.04.2018, 09:04

Hallo Alchy,

ich muss die Fehlerbeschreibung nocheinmal korrigieren:

Gestern hat der BM an dem ich die Sabotage getestet habe,
"kommunikation ist gestört" gemeldet.

Die Systemvariable enthielt nun "Neue Servicemeldung .... "

Ich habe eine korrekte eMail erhalten. mit dem Inhalt:

Code: Alles auswählen

NEUE Servicemeldung
BM_Server_Raum : hat Kommunikationsfehler seit: 09.04.18 13:53(09.04.18 13:53)
Die CUxD hat folgendes gemeldet:

Code: Alles auswählen

Apr  9 13:53:41 homematic-ccu2 user.debug script: [ALCHY ALLINScript START]
Apr  9 13:53:41 homematic-ccu2 user.debug script: [ALCHY ALLINScript ENDE]
Ich nehme an, dass dies der richtige Ablauf des Scriptes sein soll, oder?

Davon mal abgesehen, dieser BM ist ca. 2m von der CCU2 entfernt und hat nagelneue Batterien drin.
Wieso ist bei diesem die Kommunikation gestört, und warum wird diese nicht von allein nach geraumer wiederhergestellt?
Habe heute morgen den BM aus der Halterung gehoben, danach war diese Servicemeldung wieder weg bzw. die Kommunikation war nicht mehr gestört.

Bei diesem "Sabotage" -Akt zur Beseitigung der Servicemeldung ist aber weiterhin gleiches nicht richtig ausgeführtes Allinclusive Script ( keine Email und die Variable enthält automatisch ALTE Servicemeldung) wie aus dem Post zuvor beschrieben, "ausgeführt" worden. :?

Kann es sein das der Status "Sabotage" bei dem HmIP anders ist ist als bei den nicht IP modellen?

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 10.04.2018, 18:46

Es ist einfach so, das manche Geräte den Zähler für die Servicemeldungen nach meinen Tests nicht "richtig" setzen.
Oft handelt es sich dabei um IP Geräte, natürlich immer wieder welche, welche ich persönlich nicht habe. Aber das ist ein anderes Thema.
Begonnen naht eigentlich alles damit, das ich leider den Anspruch hatte, das die Systemvariable immer den Systemzustand abbilden sollte.
Und das eben auch, wenn du z.B. 3 Servicemeldungen hast, und eine geht weg. Dann will keiner eine Nachricht haben....

Nehmen wir an du hast eine alte Servicemeldung. Nun meldet ein weiteres Geräte eine neue Servicemeldung.
Lastvalue = 1 Value= 2 also NEUE Servicemeldung also versenden des Scriptdurchlaufes.
Soweit die Theorie und lange so "normal".
Plötzlich tauchten Probleme damit auf, Tests ergaben das manche Geräte dabei den Zähler verunstalten in dem sie den Zähler erst hoch und dann wieder runter setzen noch bevor das Script startete.bzw. Lastvalue eben nicht den Zähler enthielt vor der neu hinzugekommenen Meldung usw. Das alles habe ich aber schon irgendwo im Thread hier geschrieben.

Du kannst in der Zeile

if ( dom.GetObject(41).Value() > dom.GetObject(41).LastValue() )

ändern auf >=

das ist aber keine allgemein gültige Lösung und wird daher von mir hier nicht integriert.
Ich hatte immer noch die Hoffnung, das das komische Verhalten mancher Geräte von EQ3 gefixt wird, dies scheint jedoch nicht zu passieren.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

DirtyFrank
Beiträge: 76
Registriert: 08.09.2011, 15:48

Sonderzeichen in Gerätenamen

Beitrag von DirtyFrank » 01.05.2018, 19:46

Ich hatte Schwierigkeiten mit Pushbullet, wenn sich in Gerätenamen Sonderzeichen befanden (keine Nachricht erhalten, wohingegen E-Mail funktioniert hat).
Nach etwas Recherche und Ausprobieren habe ich dann die folgende Passage im Skript

Code: Alles auswählen

! 04.04.2017
! alte langsame Uebersetzung entfernt Leerzeichen kein Problem mehr bei Mail/Pushover/Telegram/ aber bei Pushbullet & Prowl?
! Sonderzeichen u.U. problematisch bei Pushover & Telegram daher Texte umgestellt
! 02.05.2017 neue Uebersetzung hinzugefügt
string Ersetzen = " ;ü;ä;ö;Ü;Ä;Ö;ß";
string ErsetzenDurch = "%20;%C3%BC;%C3%A4;%C3%B6;%C3%9C;%C3%84;%C3%9F";
string message = slist;integer Pos = 0;integer Index = 0;string Split = "";boolean Loop = true;
foreach (Split, Ersetzen.Split(";")) {
Loop = true;
while (Loop) {
Pos = message.Find(Split);
if (Pos == -1) { Loop = false;
}else{message = message.Substr(0,Pos) # ErsetzenDurch.StrValueByIndex(";",Index)  # message.Substr(Pos + Split.Length() , ((message.Length() - Pos) - Split.Length())  );
}}
Index = Index + 1;
}]
ersetzt durch

Code: Alles auswählen

slist = slist.ToUTF8();

Vielleicht hilft das ja dem einen oder anderen.


Beste Grüße,
Frank

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von Tibin » 03.05.2018, 13:42

Im Original von Alchy fehlt die Umwandlung vom "Ö", vielleicht war auch das die Ursache.
Richtig wäre....

Code: Alles auswählen

string Ersetzen = " ;ü;ä;ö;Ü;Ä;Ö;ß";
string ErsetzenDurch = "%20;%C3%BC;%C3%A4;%C3%B6;%C3%9C;%C3%84;%C3%96;%C3%9F";
aber...

Code: Alles auswählen

slist = slist.ToUTF8();
funzt ja scheinbar auch :mrgreen:
Gruß Tino

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 03.05.2018, 14:57

Natürlich funktioniert die neue Funktion auch. Das ist aber abhängig vom benutzten Dienst und vor allen von der benutzten Rega Version und deshalb nicht eingebaut.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

beckerpa
Beiträge: 57
Registriert: 15.04.2018, 08:34
Wohnort: 56329 St. Goar
Hat sich bedankt: 3 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von beckerpa » 21.05.2018, 19:52

Hallo zusammen,

ich hatte Probleme mit Umlauten in einem Fenster-offen - Script, welches mir (bei aktiver Heizungsregelung, also Winter) nach 30 min. offener Fenster (Kontakte) eine Pushover - Nachricht aufs Handy schickt.
Per eMail lange das Problem mit den Umlauten gelöst, nun endlich auch über Pushover.

Vielen Dank an alle, vor Allem aber an Alchy!!!

Gruß
beckerpa
Raspi 3B mit RaspberryMatic mit 104 Geräten HmIP, 29 Geräten HM, CUxD, hm_pdetect, 98 Programmen
Raspi 4B mit ioBroker
HmIP AP mit 79 Geräten

Hubiherzog
Beiträge: 143
Registriert: 15.10.2014, 20:04

Re: Servicemeldungen *allinclusive* Script

Beitrag von Hubiherzog » 03.06.2018, 12:52

Hallo, Alchy,
vielen Dank für Deine neue Version 1.96.
Ich habe eine Wetterdaten-Anzeige WA100HM von ELV installiert; sie zeigt aber keine leeren Batterien an; finde sie auch nicht im Script.

ELV Homematic Komplettbausatz Wetterdaten-Anzeige WA100HM für Smart Home / Hausautomation
Bestell-Nr. 68-13 04 52


Es werden 2 Micro AAA / LR03 benötigt.

Kann ich diese selbst im Script nachtragen und wie muß die Zeile dann aussehen ?

Vielen Dank für Deine Hilfe
Gruß
Hubiherzog

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 03.06.2018, 13:06

Und das Teil ist an der CCU angelernt und erzeugt auch eine Servicemeldung bei leeren Batterien?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“