Auslöser eines Programmes finden und loggen

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

Moderator: Co-Administratoren

MichaelN
Beiträge: 9646
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1615 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von MichaelN » 14.11.2021, 19:47

In diesem Thread findest du einen Hinweis auf einen Fehler in Zeile 45 und das eine Korrektur nach dem schema in viewtopic.php?f=65&t=62076&start=30#p614282 notwendig ist.
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 +++

ckohrt
Beiträge: 43
Registriert: 27.09.2018, 13:05
Hat sich bedankt: 2 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von ckohrt » 05.12.2021, 02:17

Hallo,
hat das Programm jemand geändert für aktuelle RaspberryMatic Versionen?

Danke und VG
Christian

Benutzeravatar
stan23
Beiträge: 2038
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 580 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: Auslöser eines Programmes finden und loggen

Beitrag von stan23 » 26.02.2022, 14:00

ckohrt hat geschrieben:
05.12.2021, 02:17
hat das Programm jemand geändert für aktuelle RaspberryMatic Versionen?
Alchys Version 1.00 läuft bei mir mit folgender Zeile 45:

Code: Alles auswählen

    slist = slist #"Geraet: "#(dom.GetObject((dom.GetObject(dom.GetObject(oSrc).Channel())).Device())).Name() #" durch Kanal: " #(dom.GetObject(dom.GetObject(oSrc).Channel())).Name() #" "#(dom.GetObject(dom.GetObject(oSrc).Channel())).HssType() #" mit DP: "#oSrc.HssType() #" und dem Wert: "#oSrcValue #" am: "#system.Date("%d.%m. %H:%M Uhr");
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

Muasmolle
Beiträge: 68
Registriert: 30.03.2017, 21:34
Wohnort: Laupheim
Hat sich bedankt: 11 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Muasmolle » 14.03.2022, 21:47

Hallo Marco,
das ist ja super, läuft bei mir nun auch endlich wieder, danke für's Teilen.
Ich habe jedoch noch zwei Schönheitsfehler. Ich hatte davor noch die V0.8 von Alchy benutzt. Jetzt mit 1.0 sehen die meisten Einträge folgendermaßen aus:

Code: Alles auswählen

DANN Prg-ID: 9534 / Prg-Name: EVO_NibeAux6_Boiler_Luxus_aufladen_Forecast_Schlechtwetter / Src-ID: 9105 / Src-Name: BidCos-RF.PEQ0380522:4.TEMPERATURE / Wert: 3.600000 = EVO_NibeAux6_Boiler_Luxus_aufladen_Forecast_Schlechtwetter Geraet: TempDiffSensorBetonkern durch Kanal: TempDiffSensorBetonkern:4 WEATHER mit DP: TEMPERATURE und dem Wert: 3.60 °C am: 14.03. 16:03 Uhr
Es wird also doppelt und sher viel aufgelistet. Meist fehlt auch das Datum und Uhrzeit am Ende (in diesem Beispiel aber OK)
Da ich mir eine kleine "Historie" der letzten drei Einträge in Mediola anzeigen lasse, ist so viel Text natürlich blöd. Der Programmname z.B. wird doppelt aufgeführt, die zwei ID's sind uninteressant, ebenso die Kanal-Nummer.
Lässt sich das irgendwie anpassen? Ich bin mit Sripten leider nicht so bewandert, bin für jeden Tipp dankbar.
VG,
Klaus
Zuletzt geändert von alchy am 15.03.2022, 18:31, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

schlichi
Beiträge: 387
Registriert: 26.08.2016, 19:26
System: Alternative CCU (auf Basis OCCU)
Wohnort: Erding
Hat sich bedankt: 60 Mal
Danksagung erhalten: 28 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von schlichi » 14.03.2022, 23:30

Hallo,

Alchy hat gepatzt; :roll:

ersetze in V1.0, Zeile 21

Code: Alles auswählen

slist = slist # " / Wert: " # sVal #" = "#oThisPrg.Name() #" ";
durch

Code: Alles auswählen

slist = slist # "  Wert= " # sVal # " / ";
Spezifische Anpassungen, versuchs erst mal selbst, ist kein Hexenwerk.

Gruß
schlichi
... inzwischen autodidakter, fortgeschrittener Anfänger mit bestandener Einstiegsprüfung für den Expertenmodus Teil 3 (erfahrener Anwender) :roll:

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 15.03.2022, 19:42

schlichi hat geschrieben:
14.03.2022, 23:30
Alchy hat gepatzt; :roll:
große Worte. :wink:

Im Beispiel des Users auch zu sehen - die Ausgabe des Scriptes ist (von mir) gewollt zweigeteilt - getrennt durch das =
Und ja, rechts vom besagten = stehen (fast) dieselben Informationen wie links - nur noch mal spezieller "übersetzt".

Hier bei dem Script in diesem Thread ging es mir darum ALLE vielleicht interessante Informationen zum Programmauslöser abzubilden und nicht eine wie auch immer geartete Anzeige in Mediola zu erzeugen.
Das macht auch ein weniger umfangreiches Script oder eben Anpassungen in diesem hier.
schlichi hat geschrieben:
14.03.2022, 23:30
ist kein Hexenwerk.
Dazu kann der Fragende gern genauer mitteilen, was er gern hätte.

Interessant finde ich aber den Nebensatz
Muasmolle hat geschrieben:
14.03.2022, 21:47
Meist fehlt auch das Datum und Uhrzeit am Ende
das könnte ich mir mal anschauen.
Wäre mal interessant einen solchen Eintrag hier zu lesen. Also poste mir bitte mal einen solchen Eintrag bei dem das Datum fehlt. Danke.

Zum Schmunzeln bringt mich aber dann aber die Aussage
Muasmolle hat geschrieben:
14.03.2022, 21:47
ist so viel Text natürlich blöd.
von jemanden der Programmnamen mit 58 Buchstaben ohne Trennung wie "EVO_NibeAux6_Boiler_Luxus_aufladen_Forecast_Schlechtwetter" verwendet. :mrgreen:

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.

Muasmolle
Beiträge: 68
Registriert: 30.03.2017, 21:34
Wohnort: Laupheim
Hat sich bedankt: 11 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Muasmolle » 15.03.2022, 23:58

Hallo Schlichi,
vielen Dank für deinen Tipp! Damit war der doppelte Programm-Name erstmal weg. Ich hab noch etwas rum gespielt, und hab auch noch die ID-Nummern weg bekommen.
Beim entfernen von dem Auslöser, der in nachfolgendem Beispiel zwei mal aufgeführt wird, bin ich dann gescheitert.
Prg-Name: EVO_IR Heizung Werkstatt_EIN_Prio1 / Src-Name: SV_PVproduction-consumption-DIFF Wert= 2800.000000 / durch Systemvariable: SV_PVproduction-consumption-DIFF mit dem Wert: 2800.0

Hallo Alchy, ja, du hast recht, natürlich sind die ganzen Infos im Sys-Protokoll der UI völlig OK. Und in meinem letzten Beispiel ist der Programmname tatsächlich sehr lang und ohne Leerstelle, daran muss ich noch arbeiten ;-) Um so besser, wenn es nicht zwei Mal aufgeführt wird.

Wie in dem Beispiel oben fehlt bei mir tatsächlich meistens der Zeitstempel. So wie es aussieht, ist dies immer der Fall, wenn eine SysVar (Zahl) der Auslöser ist. Wenn ein Gerät der Auslöser ist, erscheint der Zeitstempel am Ende.
Was bedeutet eigentlich Src-Name?

Mein angepasstes Skript sieht im Moment folgendermaßen aus. Bitte nicht schimpfen, wenn ich ein Chaos angerichtet habe. Ich bin ja schon froh, wenn ich einfache Grundrechenarten in ein Skript packen und in eine SysVar schreiben kann ;-)

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 1.00 (c) by alchy 
! https://homematic-forum.de/forum/viewtopic.php?f=31&t=35686
Zuletzt geändert von alchy am 16.03.2022, 21:05, insgesamt 1-mal geändert.
Grund: Scriptcopy gelöscht

schlichi
Beiträge: 387
Registriert: 26.08.2016, 19:26
System: Alternative CCU (auf Basis OCCU)
Wohnort: Erding
Hat sich bedankt: 60 Mal
Danksagung erhalten: 28 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von schlichi » 16.03.2022, 13:05

Hallo,

..ich hab auch etwas gespielt :) und die Ergebnisse protokolliert.

Script V1.0 ( (C) Alchy); von mir etwas angepasst :wink:

Testprogramm:
Unbenannt.JPG
Ergebnisse:

1. Beispiel Auslöser = Zeitmodul (Trigger/Änderung durch erreichen des Zeitpunktes)
Programmname nicht gesetzt, "Neues Programm" in der WebUI, deshalb ${ruleTmpProgramName} = Feldname.
mit eMail-Addon gesendet, Inhalt:

DANN PrgID: 2358 - ${ruleTmpProgramName} / SrcID: 3417 - Zeitmodul Wert= 1 , durch: Zeitmodul= Zeitpunkt erreicht am: 16.03.2022 11:38 Uhr


2. Beispiel Auslöser = Systemvariable (Trigger/Änderung des Inhaltes der SysVar vom Typ Zeichenkette)

DANN PrgID: 2358 - ${ruleTmpProgramName} / SrcID: 1363 - @HomeNotification Wert= Test Programmauslöser , durch Systemvariable: @HomeNotification= Test Programmauslöser


3. Beispiel Auslöser = Schalter (Trigger/Änderung des Zustandes des Gerätes vom Typ Schalter)

DANN PrgID: 2358 - ${ruleTmpProgramName} / SrcID: 3651 - HmIP-RF.0000D709958AF2:1.STATE Wert= 0 / Gerät: Schalter, Kontakt-, durch Kanal: Schalter, Kontakt-, :1 SHUTTER_CONTACT mit DP: STATE und dem Wert= geschlossen am: 16.03.2022 11:43 Uhr


4. Beispiel Auslöser = Schalter (Trigger/Änderung des Zustandes des Gerätes vom Typ Schalter)
Programmname jetzt gesetzt, "@Test" in der WebUI, deshalb "@Test" = Feldinhalt.

DANN PrgID: 2358 - @Test / SrcID: 3651 - HmIP-RF.0000D709958AF2:1.STATE Wert= 0 / Gerät: Schalter, Kontakt-, durch Kanal: Schalter, Kontakt-, :1 SHUTTER_CONTACT mit DP: STATE und dem Wert= geschlossen am: 16.03.2022 11:44 Uhr


5. Beispiel Auslöser = Systemvariable (Trigger/Änderung des Inhaltes der SyVarID = 40, * Alarmmeldung)

DANN PrgID: 2358 - @Test / SrcID: 40 - Alarmmeldungen Wert= 1 , durch Systemvariable: Alarmmeldungen= 1.0


6. Beispiel Auslöser = Reboot der CCU2

DANN PrgID: 2358 - @Test / kein Auslöser = nach CCU-Reboot (ReGaHss Neustart) oder durch Aktivieren gestartet =


7. Beispiel Auslöser = Systemvariable (Trigger/Änderung des Inhaltes der SysVar vom Typ Zeichenkette)

DANN PrgID: 2358 - @Test / SrcID: 1363 - @HomeNotification Wert= Neustart der CCU2-ED ist erfolgt , durch Systemvariable: @HomeNotification= Neustart der CCU2-ED ist erfolgt


8. Beispiel Auslöser = Systemvariable (Trigger/Änderung des Inhaltes der SyVarID = 950, * nicht löschbare SysVar "Anwesenheit" ( viewtopic.php?p=229312#p229312 ) )

DANN PrgID: 2358 - @Test / SrcID: 950 - SystemStatus Wert= 0 , durch Systemvariable: SystemStatus= Normalbetrieb

Es ist richtig, daß bei SysVar kein Datum/Uhrzeit ausgegeben wird.
Mal abwarten, was Alchy dazu meint. :wink:

Gruß
schlichi
... inzwischen autodidakter, fortgeschrittener Anfänger mit bestandener Einstiegsprüfung für den Expertenmodus Teil 3 (erfahrener Anwender) :roll:

MichaelN
Beiträge: 9646
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1615 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von MichaelN » 16.03.2022, 13:57

Im Code steht da auch kein Datum, dann kann auch keins raus kommen...
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 +++

schlichi
Beiträge: 387
Registriert: 26.08.2016, 19:26
System: Alternative CCU (auf Basis OCCU)
Wohnort: Erding
Hat sich bedankt: 60 Mal
Danksagung erhalten: 28 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von schlichi » 16.03.2022, 14:04

Hallo Michael,

ist schon klar, will Alchy nicht in die "Suppe spucken". :wink:

Gruß
schlichi
... inzwischen autodidakter, fortgeschrittener Anfänger mit bestandener Einstiegsprüfung für den Expertenmodus Teil 3 (erfahrener Anwender) :roll:

Antworten

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