Auslöser eines Programmes finden und loggen

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

Moderator: Co-Administratoren

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: Auslöser eines Programmes finden und loggen

Beitrag von jmaus » 04.11.2020, 00:48

alchy hat geschrieben:
03.11.2020, 22:43
jmaus hat geschrieben:
03.11.2020, 21:12
Probier einfach mal folgenden Beispielcode aus

Code: Alles auswählen

object hssdp=dom.GetObject("1209");
[...]
ist Murks und läuft selbst auf einer originalen CCU3 mit "alter Rega" nicht.
Das ist aber wohl bei meinem Script nicht so, wenn ich mich nicht irre.
Stimmt natürlich, da hatte ich das falsche Copy&Paste gemacht. Hab es im Beitrag noch einmal korrigiert. Aber dieser Teil des Beitrags hat nichts mit dem Problem mit deinem Skript zu tun, da musst du weiter unten lesen. Und da traue ich dir zu herauszufinden wo die Klammerung deines Skriptes offensichtlich nicht passt.
alchy hat geschrieben:
03.11.2020, 22:43
jmaus hat geschrieben:
03.11.2020, 21:25
Aber seis' drum. Was Baxxy eigentlich sagen wollte ist, das dein Skript in Zeile 45 einen offensichtlichen Klammerungsfehler
Für einen "offensichtlichen Klammerungsfehler in Zeile 45 meines Scriptes" hatte sich Baxxy aber richtig viel Arbeit gemacht und reichlich andere Zeilen geändert. :|
Das mag sein, das hab ich nicht gesehen/wahrgenommen und ist mir auch ehrlich gesagt egal. Mir geht/ging es nur um den offensichtlichen Klammerungsfehler in Zeile 45. Und auf den Punkt, das der eigentlich ein zwangsläufiges Resultat des doch etwas zu exzessiven Einsatzes unnötig verschachtelter dom.GetObject() Aufrufe ist gehe ich noch nicht einmal drauf ein und verbuche es unter künstlerischer Freiheit.
alchy hat geschrieben:
03.11.2020, 22:43
jmaus hat geschrieben:
03.11.2020, 21:25
....
denn nur was in der CCU3 Firmware drinsteckt ist vmtl. für dich relevant.
Da ich nur eine CCU3 verwende muss ich Testen auf anderen Umgebungen auf theoretisch beschränken.
Scripte versuche ich bisher halbwegs abwärts- und auch zur RaspberryMatic kompatibel zu halten.
Soviel "zweigleisig" musst du da gar nicht sein und auch nicht RaspberryMatic installieren. Es würde schon reichen wenn du einfach immer zu Testzwecken zumindest die jeweils aktuellste ReGaHss Version aus dem OCCU Repository ziehst und die unter deiner CCU3 Testumgebung kurz laufen lässt. Aber ich bin mir sicher, das ist für dich auch keine Option...
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

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 » 21.11.2020, 18:12

Könnte mir mal jemand bei meinem genutzen script helfen. Bekomme das nicht hin die Änderung dort einzubauen

genutzes script

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
! https://homematic-forum.de/forum/viewtopic.php?f=31&t=35686

Danke sehr

Edit: Hat sich erledigt

Musste nur

Code: Alles auswählen

    slist = "" #(dom.GetObject(dom.GetObject(src)).Channel()).Name() #" "#srcValue #" am: "#system.Date("%d.%m. %H:%M Uhr");

in

Code: Alles auswählen

    slist = "" #(dom.GetObject(dom.GetObject(src).Channel())).Name() #" "#srcValue #" am: "#system.Date("%d.%m. %H:%M Uhr");
Änderung war

Code: Alles auswählen

(dom.GetObject(dom.GetObject(src).Channel())).Name() 
Anzeige sieht dann so aus

Code: Alles auswählen

Statusänderung:	Fenster Terassentür geschlossen am: 21.11. 18:55 Uhr
Zuletzt geändert von alchy am 10.03.2021, 21:40, insgesamt 1-mal geändert.
Grund: Scriptcopy entfernt
gruß emil70

Hobyist
Beiträge: 136
Registriert: 23.10.2019, 09:31
System: CCU
Hat sich bedankt: 39 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Hobyist » 19.05.2021, 14:10

alchy hat geschrieben:
15.02.2017, 16:06


4. Am Script sind keine Änderungen ausser oberhalb ++++ Finger weg +++++ nötig - kopieren - einfügen - fertig
Ich finde im Skript das "++++ Finger weg +++++ " nirgends. Habe ich da was übersehen?
CCU3 Start Up, Wohnort Schweiz

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.05.2021, 14:52

Es gibt nichts mehr einzustellen ausser den Zweig oder den Namen der Variablen zum Speichern der Ausgabe.


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.

Hobyist
Beiträge: 136
Registriert: 23.10.2019, 09:31
System: CCU
Hat sich bedankt: 39 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Hobyist » 19.05.2021, 17:11

Ich habe es so eingebunden. Aber leider sehe ich nichts unter "Status und Bedienung" / Systemprotokoll. Die Systemvariable "Programme_loggen" habe ich erstellt und in der Variable wird auch ein Text abgespeichert, aber im Log erscheint nichts, obwohl die Variable auf "protokolliert" steht. :(

Hat sich erledigt!
Dateianhänge
Screenshot 2021-05-19 170731.jpg
CCU3 Start Up, Wohnort Schweiz

Hobyist
Beiträge: 136
Registriert: 23.10.2019, 09:31
System: CCU
Hat sich bedankt: 39 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Hobyist » 19.05.2021, 17:59

Erledigt!
CCU3 Start Up, Wohnort Schweiz

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 » 24.10.2021, 17:11

Hallo Alchy, hallo Jens,
im aller ersten Beitrag steht, dass dieses Script nicht für die aktuelle Raspberrymatic geeignet ist.
Da ich auf Raspberrymatic umgestiegen bin, kann ich dies leider bestätigen. Manche Programme werden nach wie vor geloggt, bei anderen wiederrum bleibt hinter "Programm:" alles leer.
Deshalb eine Frage oder Bitte: Gibt es einen Weg, es doch zum Laufen zu bekommen? Ich verstehe nicht ganz, warum es nicht mehr immer funktioniert, der Kern der Raspberrymatic ist ja das Gleiche wie die original-CCU-Software, oder nicht?

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 » 24.10.2021, 17:19

Es gibt einen Weg, den der Autor des Skript aber nicht unterstützt. Ursache des "Problems" ist ein in RM beseitigter Bug in der OCCU.
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 +++

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 » 25.10.2021, 20:02

mh, das ist sehr schade. Das Skript ist echt super, war immer eine sehr gute Hilfe, fast schon unentbehrlich.

Benutzeravatar
Zauberlehrling
Beiträge: 136
Registriert: 13.12.2009, 23:01
Danksagung erhalten: 3 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Zauberlehrling » 14.11.2021, 18:01

MichaelN hat geschrieben:
24.10.2021, 17:19
Es gibt einen Weg, den der Autor des Skript aber nicht unterstützt. Ursache des "Problems" ist ein in RM beseitigter Bug in der OCCU.
Hallo MichaelN,
ist es evtl möglich das etwas genauer zu beschreiben, was das für ein Bug ist? Ggf könnte man ja selber versuchen das Problem zu beheben.
Grüße
-- Der Zauberlehrling

Wenn der Ansatz bereits falsch ist, führt strenge Logik unweigerlich zum falschen Ergebnis;
Nur Unlogik kann dann noch helfen, wenigstens zufällig richtig zu liegen!

--------------------------------------------
HM1 (Raspimatic, Raspi 3B): 160 Geräte,
HM2 (Raspimatic, Raspi 3B): 36 Geräte,
HM3 (Raspimatic, Raspi 3B): 16 Geräte,
--------------------------------------------

Antworten

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