Auslöser eines Programmes finden und loggen

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

Moderator: Co-Administratoren

Benutzeravatar
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Baxxy » 10.09.2020, 15:45

Hallo Alchy,
würdest du Zeile 32 in deinem Script vielleicht ein klein wenig anpassen um auch bei einem HmIP-SRH die "Zustände" (statt 0,1,2) auszugeben.
Ich habe auch schon mal Vorarbeit geleistet. :wink:

Code: Alles auswählen

if ( (oSrc.ValueTypeStr() == "Integer") && ((dom.GetObject(((dom.GetObject(oSrc)).Channel())).HssType() == "ROTARY_HANDLE_SENSOR") || (dom.GetObject(((dom.GetObject(oSrc)).Channel())).HssType() == "ROTARY_HANDLE_TRANSCEIVER"))) {

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 10.09.2020, 19:09

Klar, kann ich bei Rechnerzugriff machen. Es gibt reichlich Datenpunkte deren Übersetzung nicht integriert sind. Zum einen, weil ich bei Weitem nicht alles habe und damit testen könnte. Zum andern wllte ich diese "Übersetzung" eigentlich immer vermeiden, da sie Fehler einbringen kann. Bei vielen Geräte kann man ja selber einstellen ob 0 nur offen oder zu bedeutet usw. Das Script, da ja statisch stur, würde also in dem Fall fehlerhafte Angaben machen. :oops:
Da müsste sich eigentlich EQ-3 oder der Herr der Rega mal Gedanken über z.b. .ValueName() machen.

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.

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von manfredh » 19.10.2020, 13:32

Ich bin gerade über die Forumssuche auf diesen Thread gestoßen.

Tolles Script! Wird mir sicher künftig sehr nützlich sein, wenn es darum geht einen Auslöser mit allen Randbedingungen zu erkennen.

Allerdings sind die protokollierten Randbedingungen für meinen momentanen Anwendungsfall zu oversized. Ich möchte eigentlich nur den auslösenden Kanal und sonst nichts protokolliert haben. Also z.B. "Fensterkontakt_Buero:1". Leider bin ich ein Script-Noob.

Gibt es in den Tiefen des Forums einen Thread, der mein Problem löst? Oder ist alternativ hier jemand so nett und speckt mir das Script ab?

Danke sehr!

Edit: ich bin selbst fündig geworden, hier.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 19.10.2020, 18:40

manfredh hat geschrieben:
19.10.2020, 13:32
Ich möchte eigentlich nur den auslösenden Kanal und sonst nichts protokolliert haben. Also z.B. "Fensterkontakt_Buero:1".
Natürlich kann das angepasst werden. In Zeile 45 findet der Zusammenbau des Strings für Datenpunkte statt.
manfredh hat geschrieben:
19.10.2020, 13:32
Edit: ich bin selbst fündig geworden.
so lange du nur mit einigen Arten von Systemvariablen und wenn nicht mit Datenpunkten als Auslöser hantierst, ist das korrekt.

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.

Benutzeravatar
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Baxxy » 28.10.2020, 15:43

Hallo Alchy,
da ich es noch nicht getan habe sage ich hier mal Danke für dieses Skript!

Leider wirft es ab RaspberryMatic 3.53.30.20201024 (ReGaHss logic engine R1.00.0388.0224 (Sep 29 2020)) einen ScriptRuntimeError was sicherlich an der Änderung bezüglich der verschachtelten dom.GetObject - Aufrufe liegt. https://github.com/jens-maus/RaspberryMatic/issues/922

Hier wurde das Thema auch schon besprochen und eine entsprechende Lösung gefunden.

Leider habe ich gerade keine Möglichkeit zu prüfen ob die Änderungen auch noch rückwirkend für eine CCU2/3 funktionieren.
Vielleicht schaust Du dir das mal an.

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 28.10.2020, 19:13

Wow. Danke für die Info.
Erstmal schau ich mal, was ich da für Murks eingebaut habe. Wenn nicht, werde ich umgehend eine Warnung im ersten Beitrag hinterlassen, das das Script nicht mehr für RaspberryMatic User ist.
Da ich in RaspberryMatic nichts zu suchen habe, kann ich mich auch dort nicht an den Diskussionen nicht beteiligen.

Spätestens wenn die jmaus RegaHss Änderungen auf die CCU Firmware Auswirkungen haben, dann werde ich mich auf die ein oder andere Art darum kümmern.

Code: Alles auswählen

VERSION=3.53.34
Version: 2.1.369
Build: R1.00.0388.0217

Code: Alles auswählen

VERSION=3.53.30
Version: 2.1.369
Build: R1.00.0388.0217

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.

emil70
Beiträge: 287
Registriert: 02.12.2017, 13:47
System: CCU
Hat sich bedankt: 33 Mal
Danksagung erhalten: 8 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von emil70 » 02.11.2020, 17:25

Ich bräucht emal eure Hilfe. Nutze schon recht lang das script (v 0.9 (c) by alchy) um mir meine Statusänderung meiner Fenster und Türen anzeigen zu lassen

Hatte dort nur folgendes geändert

orginal

Code: Alles auswählen

    slist = "Programm: "#slist #" durch Kanal: " #(dom.GetObject(dom.GetObject(src)).Channel()).Name() #" mit DP: "#src.HssType() #" mit dem Wert: "#srcValue #" am: "#system.Date("%d.%m. %H:%M Uhr");
geändert

Code: Alles auswählen

slist = "" #(dom.GetObject(dom.GetObject(src)).Channel()).Name() #" "#srcValue #" am: "#system.Date("%d.%m. %H:%M Uhr");
So wurde mir dann nur das Fenster mit Datum und Uhrzeit der Änderung angezeigt

Seid update auf

Code: Alles auswählen

Aktuelle Firmwareversion: 	3.53.30.20201024
geht das nicht mehr. Es wird nix mehr angzeigt

Es hat/muss sich da etwas geändert haben, was ich aber nicht sehe

Kann da jemnd bitte Unterstützen

Danke

Edit:

Orginal

Code: Alles auswählen

! Programmauslöser egal welchen Types (soweit ich es überblicken kann) 
! mit Programmname, Auslöser, Auslösewert und (Einheit falls vorhanden) und Zeit in Stringvariable schreiben
! v 0.9 (c) by alchy
Zuletzt geändert von alchy am 02.11.2020, 19:24, insgesamt 2-mal geändert.
Grund: Scriptcopy gelöscht
gruß emil70

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von MichaelN » 02.11.2020, 17:35

Schachtelung auflösen z. B. mit Zwischenspeichern
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Baxxy » 02.11.2020, 17:41

emil70 hat geschrieben:
02.11.2020, 17:25
Es hat/muss sich da etwas geändert haben, was ich aber nicht sehe
Du benutzt RaspberryMatic. Da gab es eine Änderung, siehe 2 Posts über deinem.

emil70
Beiträge: 287
Registriert: 02.12.2017, 13:47
System: CCU
Hat sich bedankt: 33 Mal
Danksagung erhalten: 8 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von emil70 » 02.11.2020, 18:02

Danke sehr

Habe ich gar nicht mitbekommen

Edit:Bin da erst mal zurück auf

Code: Alles auswählen

3.53.30.20200919
So sieht es wieder gut aus

Code: Alles auswählen

Statusänderung:	Fenster Terassentür gekippt am: 02.11. 18:40 Uhr
gruß emil70

Antworten

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