Auslöser eines Programmes finden und loggen

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

Moderator: Co-Administratoren

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 04.07.2020, 23:26

Deine Beschreibung und deine ScreenCopy des Programms stimmen überein.
Der Auslöser des Programms ist in diesem Fall die Aktivierung einer Systemvariablen (Alarm aktiv) welcher wohl auch ermittelt wird.

Im Sinne des Scriptes ist dein Problem jetzt also wo?

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.

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von thfrank » 04.07.2020, 23:47

Na ja, ich würde natürlich gerne wissen, welche Tür bzw. welches Fenster ausgelöst hat, also die UND-Bedingung erfüllt hat.

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 05.07.2020, 00:01

Das mag sein, aber dann ist dein Programm falsch und nicht das Script fehlerhaft. Dreh es um.

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.

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von thfrank » 05.07.2020, 09:52

alchy hat geschrieben:
05.07.2020, 00:01
Das mag sein, aber dann ist dein Programm falsch und nicht das Script fehlerhaft. Dreh es um.
glaube, dass weder mein Programm falsch, noch Dein Skript fehlerhaft ist. Hatte ich das irgendwo behauptet?

Hatte nur nach einer möglichen Ausweitung der Funktion gefragt, so dass alle Abschnitte in die Prüfung eingeschlossen und ausgegeben werden.

Thomas

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

Re: Auslöser eines Programmes finden und loggen

Beitrag von alchy » 05.07.2020, 10:16

Du missverstehst da was. Ich will dir nichts unterstellen.
Das Script ermittelt den Auslöser eines Programms. Dein Programm hat, so wie es ist, nur einen Auslöser.

Würdest du die Logik umdrehen und die Sensoren bei Änderung als Trigger verodern würde das Script auch den auslösenden Sensor ermitteln.

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.

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von thfrank » 05.07.2020, 11:23

alchy hat geschrieben:
05.07.2020, 10:16
Würdest du die Logik umdrehen und die Sensoren bei Änderung als Trigger verodern würde das Script auch den auslösenden Sensor ermitteln.
Alchy
na ja, dann hab ich in diesem Fall ein komplett anderes Programm, da der Status der Sensoren sich in diesem Moment nicht ändert.

Die Frage war deshalb, ob es möglich ist, auch die Variable(n) auszugeben, die durch Prüfung (wahr) zusammen mit dem Auslöser die Aktion ausgelöst hat (der Auslöser allein reicht ja in meinem Beispiel nicht, es muss ja mindestens eine Variable im zweiten Teil als wahr geprüft werden.)

Thomas

Xel66
Beiträge: 14212
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 593 Mal
Danksagung erhalten: 1508 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von Xel66 » 05.07.2020, 13:19

thfrank hat geschrieben:
05.07.2020, 11:23
... Variable(n) auszugeben, die durch Prüfung (wahr) zusammen mit dem Auslöser die Aktion ausgelöst hat...
Nein, du kannst nur den Auslöser des Programms feststellen (und natürlich alle sonstigen Bedingungen, deren Inhalt bei der Prüfung gerade ein WAHR ergeben indem Du durch die mögichen Trigger iterierst). Eine einzelne Bedingung müsstest Du dann ggf. über den Zeitstempel (welcher hat zuletzt seinen Status gewechselt) feststellen. Das ist aber zu umständlich und aufwändig. Nur andersrum (TFK sind Programmtrigger) macht es wirklich Sinn, wenn du einen einzelnen gerade aktuellen Trigger feststellen willst. Für Deinen Wunsch ist im Zweifel immer der TFK, welcher im Zusammenhang mit dem Trigger des Programms das DANN auslöst, der mit der "kleinsten" iseID, selbst wenn es einer in der Liste weiter hinten war. Bei einem Oder sind die verODERten Bedingungn alle gleichwertig.

Ich habe einen ähnlichen Anwendungsfall. Ich lasse mir geöffnete Fenster bei Betätigung eines Tasters ansagen. Da interessiert mich aber nicht, welches Fenster als erstes in Kombination mit dem Trigger "Taster" ein WAHR ergibt, sondern alle geöffneten Fenster. Daher iteriere ich durch das Gewerk "Fenster" und sammle die geöffneten in einer Stringvariable mit ein wenig schmückendem Zusatztext. Das Ergebnis lasse ich mir ansagen. Das Script stammt hier aus dem Forum (zumindest der Fensterteil), kann es aber gerade nicht finden, weil ich mir die Quelle nicht aufgeschrieben habe.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

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 » 06.07.2020, 11:37

Also, ich würde an dem Programm Anpassungen vornehmen, daß den Status "(Alarm aktiv)" setzt, denn dort scheinen ja Reaktionen auf Maßnahmen der Fenster (und Türen etc) zu erfolgen.

Andere Alternative: Verlege die Prüfung, welches Fenster offen ist, in ein Script. Dort kannst du dann den gefundenen Status selbst verarbeiten
------------------------------------------
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:
------------------------------------------

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von thfrank » 09.07.2020, 17:24

Hätte zu dem Thema noch eine eher allgemeine Frage:

Wenn ich bei einem Türkontakt den Status "wenn offen / bei Änderung auslösen" abfrage, sollte es doch nur wahr sein, wenn der Zustand von geschlossen nach offen wechselt, oder hab ich da was falsch verstanden?

Bei mir wird das Programm auch beim umgekehrten Fall aktiviert, d.h. ich bekomme zwei Alarmmeldungen, einmal beim Öffnen und einmal beim Schließen der Tür.

Thomas

MichaelN
Beiträge: 9729
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 705 Mal
Danksagung erhalten: 1643 Mal

Re: Auslöser eines Programmes finden und loggen

Beitrag von MichaelN » 09.07.2020, 17:27

Getriggert wird es bei jeder Änderung. Die Prüfung sollte bei nicht offen dann aber in den sonst Zweig verzweigen
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 +++

Antworten

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