Auslöser eines Programmes finden und loggen

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

Moderator: Co-Administratoren

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 08.04.2020, 20:35

PHundhausen hat geschrieben:
07.04.2020, 22:51
mit dem Ergebnis, daß ich falsche Infos über den Auslöser zurück bekommen habe, da der Auslöserwert im Dann-Part angepaßt wird.
Interessant, da wäre ich daran interessiert wie dein Programm aussah.

Du kannst *IMHO* kein Objekt mit <LOG> benennen oder du solltest es zumindest nicht machen.
Nehmen wir mal an du benutzt LOG im Programmnamen sollte .Find() helfen.
Da die Funktion soweit ich mich erinnere auch Gross und Kleinschreibung unterscheidet, solltest du hinreichend sicher reagieren können.

[EDIT]

Code: Alles auswählen

if( prg.Name().Find("LOG") > -1){

}

Einfügen würde ich das unter

.....
object prg = dom.GetObject("$this$");
if( prg.Name().Find("LOG") > -1){
....



und die abschließende Klammer dann ganz am Ende des Scripts

Alchy
Zuletzt geändert von alchy am 08.04.2020, 20:56, insgesamt 1-mal geändert.
Grund: [EDIT] Beispiel eingefügt

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.

PHundhausen
Beiträge: 118
Registriert: 20.02.2019, 10:42
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 38 Mal
Danksagung erhalten: 5 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von PHundhausen » 10.04.2020, 16:58

Hallo Alchy,

danke für deinen Vorschlag, genau nach der "einen" Programmzeile hatte ich gesucht. Da ich Deine Antwort noch nicht entdeckt hatte, hab ich mich heute selbst dran gesetzt und nach vielen Stunden eine Lösung gebastelt, die mit 5 Programmschritten das erreichte, was dein Einzeiler leistet. :lol:

Da ich ein Freund davon bin, in einem Programm überflüssige Programmschritte gar nicht erst durchführen zu lassen (CPU-Zyklen einsparen), habe ich deine Prüfung, ob die Variable überhaupt auf Protokollieren steht zu meiner Prüfung auf "#LOG#" vorgezogen.

Und damit niemand in den unteren Codezeilen Änderungen vornehmen muß, habe ich den uneleganteren Weg über quit gewählt.

Mein Snippet sieht jetzt so aus:

!+++++++++++++ Ergänzung nach Vorschlag PHu +++++++++
if( prg.Name().Find("#LOG#") == -1){quit;}
if ( (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(sysvarOut) == false) {quit;}
!++++++++++++++++++++++++++++++++++++++++++

Trotzdem Danke für Deinen Vorschlag, er ist deutlich kompakter als meine Lösung :D

Ein Beispielprogramm suche ich Dir raus und packe es zumindest in ein separates Post
------------------------------------------
Stand 27.01.2024:

Home (RaspberryMatic auf RP4 mit HB-RF-ETH): 1203 Kanäle in 202 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten
Office (RaspberryMatic auf CCU3): 359 Kanäle in 51 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
------------------------------------------

PHundhausen
Beiträge: 118
Registriert: 20.02.2019, 10:42
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 38 Mal
Danksagung erhalten: 5 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von PHundhausen » 10.04.2020, 17:12

Hier das Script, in angepaßter Form.
Hardcopy.png
Die Variable "Auf/Zu EG" wird von einem Kontrollprogramm gesetzt und das Programm wird aktiviert, wenn in die Variable Check geschrieben wird.

Wenn das Protokollierungsscript als letztes in der Dann-Sektion steht, ist die auslösende Variable bereits auf Close geändert, was dann auch im Syslog drin steht.

Deswegen sorge ich dafür, daß der Scriptaufruf immer der erste Befehl des Abschnitts ist, dann sind die Variablen noch unangetastet.
------------------------------------------
Stand 27.01.2024:

Home (RaspberryMatic auf RP4 mit HB-RF-ETH): 1203 Kanäle in 202 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten
Office (RaspberryMatic auf CCU3): 359 Kanäle in 51 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
------------------------------------------

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 10.04.2020, 20:54

Das würde ich mal vorsichtig als Bug bezeichne wollen den ich mir anschauen muss.

ABER

deine Umgehung ist nicht nötig.
Bau einfach eine Verzögerung ein um den Auslöser deines Perpeto mobile Programms korrekt zu ermitteln.
Also im DANN Auf/Zu EG verzögert um 1 Sekunde = Close.
Dann kann das Script auch ans Ende des DANN....

Alchy

PS: Du weißt aber schon, das dein Programm sowieso 2x getriggert wird?
Auf/Zu EG wird zu Check = Dann wird ausgeführt, dadurch wird Auf/Zu EG zu Close was wieder das Programm triggert und das Sonst wird ausgeführt (sofern vorhanden und die anderen verundeten Bedingungen auch erfüllt sind)

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.

PHundhausen
Beiträge: 118
Registriert: 20.02.2019, 10:42
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 38 Mal
Danksagung erhalten: 5 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von PHundhausen » 12.04.2020, 16:17

alchy hat geschrieben:
10.04.2020, 20:54
PS: Du weißt aber schon, das dein Programm sowieso 2x getriggert wird?
Auf/Zu EG wird zu Check = Dann wird ausgeführt, dadurch wird Auf/Zu EG zu Close was wieder das Programm triggert und das Sonst wird ausgeführt (sofern vorhanden und die anderen verundeten Bedingungen auch erfüllt sind)
Ja, das hat sich sehr schnell bemerkbar gemacht, deswegen muß ich auch in jeder "Untersektion" erneut auf [Auf/Zu EG] = check prüfen.
------------------------------------------
Stand 27.01.2024:

Home (RaspberryMatic auf RP4 mit HB-RF-ETH): 1203 Kanäle in 202 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten
Office (RaspberryMatic auf CCU3): 359 Kanäle in 51 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
------------------------------------------

homeflow
Beiträge: 28
Registriert: 15.04.2020, 13:37
Hat sich bedankt: 14 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von homeflow » 15.04.2020, 13:42

alchy hat geschrieben:
15.02.2017, 16:06


4. Am Script sind keine Änderungen ausser oberhalb ++++ Finger weg +++++ nötig - kopieren - einfügen - fertig
5. wir schauen dann irgendwann im Systemprotokoll nach, was, wann welches Programm ausgelöst hat und warum

Alchy
Hi zusammen!

Wo ist denn der Script-Code hingekommen?
@Alchy: Gibt es einen Grund warum der nicht mehr hier steht?

BG
homeflow

almrausch
Beiträge: 255
Registriert: 10.12.2016, 21:20
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von almrausch » 15.04.2020, 14:49

Sehr merkwürdig ...

Ich habe gleich mal im Google Cache nachgesehen und dort gibt es eine Version des ersten Beitrags vom 4.4.20, in der die Version 0.93 des Scripts enthalten ist. Am Ende des Beitrags steht "Zuletzt geändert von alchy am 17.03.2020, 19:52, insgesamt 15-mal geändert."

Das steht aber auch aktuell am Ende des ersten Beitrags ...

Aktuell sollte die 0.94 sein:
alchy hat geschrieben:
15.02.2017, 16:06
Neu in 0.94
  • Bug beseitigt, wenn der Wert des Auslösers innerhalb des Programms vor Ausführung des Scriptes geändert wurde
  • Danke an BadenPower für die Mail
Wer hat da seine Finger drin?
Gruß Ralf

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 15.04.2020, 18:03

Ganz ruhig, es gibt auch ein Leben neben dem Forum. :roll:
Ein paar Post weiter oben wurde ein Bug gemeldet.
Die veröffentlichte neue Version war weiterhin fehlerbehaftet. daher habe ich sie kurzer Hand entfernt weil mir einfach schlichtweg die Zeit fehlt.

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.

almrausch
Beiträge: 255
Registriert: 10.12.2016, 21:20
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von almrausch » 15.04.2020, 18:08

Das ist ja alles ok und nachvollziehbar. Nur fand ich es merkwürdig, dass es nicht beim Änderungsdatum des Beitrags ersichtlich ist.
Gruß Ralf

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 15.04.2020, 18:16

Das ist **IMHO* ein Fehler des Forums was ich auch schon irgendwo mal bemängelt hatte, es interessiert aber keinen.

Leider wird nicht automatisch der Text "zuletzt geändert von alchy am 17.03.2020, 19:52, insgesamt 15-mal geändert.. " angepasst bei JEDER Änderung, sondern nur, wenn man ein Begründung dazu schreibt. Das habe ich hier wohl schon mehrfach vergessen somit stand noch ein sehr altes Datum drin.
( Ich habe das gerade nachgeholt, sorry.)

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!“