Programm bei Änderung einer Systemvariablen starten

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

ap_
Beiträge: 50
Registriert: 16.01.2013, 15:24

Programm bei Änderung einer Systemvariablen starten

Beitrag von ap_ » 09.06.2015, 16:12

Hallo,

obiges bekomme ich einfach nicht hin.

Habe auch bereits reichlich Beiträge durchforstet, jedoch nichts was mir helfen würde gefunden.

Also:

Es ist eine Systemvariable (Zeichenkette) "MeineStringVariable" vorhanden. Wenn in diese jetzt ein beliebiger String geschrieben wird soll ein entsprechendes CCu2-Programm auslösen.

Ich habe also über die CCU2-GUI ein Programm zusammengeklickt das folgendermassen ausssieht:

Bedingung: Wenn...
[Systemzustand] MeineStringVariable bei [leerer Kasten] [bei Änderung auslösen]

Aktivität: Dann...
[Skript] MeinSelbsterstelltesScript [sofort]

Nach meinem Verständniss sollte jetzt, wenn von irgendwoher MeineStringVariable geändert wird, MeinSelbsterstelltesScript aufgerufen werden.

Funktioniert aber nicht. Ich bin ratlos. Wo liegt mein Fehler?

Gruss

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Programm bei Änderung einer Systemvariablen starten

Beitrag von buempi » 09.06.2015, 16:20

ap_ hat geschrieben:Nach meinem Verständniss sollte jetzt, wenn von irgendwoher MeineStringVariable geändert wird, MeinSelbsterstelltesScript aufgerufen werden.
... nein, nur wenn die Variable auf einen Leerstring geändert wird. Sobald da was drin steht, trifft die Bedingung ja nicht mehr zu. Allerdings hat es bei Stringvariablen auch schon generelle Probleme mit der Auslösung gegeben; ich erinnere mich aber nicht mehr genau an die Konstellation.

Viele Grüsse
Bümpi

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Programm bei Änderung einer Systemvariablen starten

Beitrag von Homoran » 09.06.2015, 16:24

Ich weiß nicht was die sysvar zurückgibt.
Aber wenn nur bool leer/voll zurückkommt, ändert sich der Wahrheitsgehalt ja nicht.
Versuch es mal mit auf Aktualisierung


Gesendet von meinem Cynus T7 mit Tapatalk
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

ap_
Beiträge: 50
Registriert: 16.01.2013, 15:24

Re: Programm bei Änderung einer Systemvariablen starten

Beitrag von ap_ » 09.06.2015, 16:34

buempi hat geschrieben:
ap_ hat geschrieben:Nach meinem Verständniss sollte jetzt, wenn von irgendwoher MeineStringVariable geändert wird, MeinSelbsterstelltesScript aufgerufen werden.
... nein, nur wenn die Variable auf einen Leerstring geändert wird. Sobald da was drin steht, trifft die Bedingung ja nicht mehr zu.
Was müsste denn als Bedingung drinnstehen damit das Script bei jeder Änderung der Stringvariablen aufgerufen wird?

Gruss

ap_
Beiträge: 50
Registriert: 16.01.2013, 15:24

Re: Programm bei Änderung einer Systemvariablen starten

Beitrag von ap_ » 09.06.2015, 16:35

Homoran hat geschrieben: Versuch es mal mit auf Aktualisierung
Hat leider nichts gebracht.

Gruss

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Programm bei Änderung einer Systemvariablen starten

Beitrag von buempi » 09.06.2015, 16:42

ap_ hat geschrieben:Hat leider nichts gebracht.
... das Skript müsste ausgeführt werden, wenn du in die Systemvariable einen Leerstring "" einträgst. - Willst du, dass das Skript immer ausgeführt wird, wenn an der Variable was ändert, kannst du versuchen, "auf Aktualisierung" zu verwenden und das Skript sowohl im DANN als auch im SONST einzutragen.

Viele Grüsse
Bümpi

ap_
Beiträge: 50
Registriert: 16.01.2013, 15:24

Re: Programm bei Änderung einer Systemvariablen starten

Beitrag von ap_ » 09.06.2015, 16:43

buempi hat geschrieben:
ap_ hat geschrieben:Nach meinem Verständniss sollte jetzt, wenn von irgendwoher MeineStringVariable geändert wird, MeinSelbsterstelltesScript aufgerufen werden.
... nein, nur wenn die Variable auf einen Leerstring geändert wird. Sobald da was drin steht, trifft die Bedingung ja nicht mehr zu.
Auch bei testweiser Änderung der Stringvariablen auf "" (Leerstring) wird nichts ausgelöst.


Gruss

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

Re: AW: Programm bei Änderung einer Systemvariablen starten

Beitrag von Xel66 » 09.06.2015, 16:48

Ich benutze eine ähnliche Funktion zum Versenden von Push-Nachrichten, Mails, und TTS-Ansagen. Ich habe die eigentliche Aktion (Script, welches den Inhalt der jeweiligen Variable ausliest und versendet) bei "Sonst Wenn" drin und triggere auf Aktualisierung. Damit "Dann" nicht leer ist, steht dort das gleiche Script drin. Macht sich zum Testen (Aufruf des Programms per GUI) ganz gut und dient im Falle der TTS-Ansage auch dazu, einen eventuell nicht verstandenen Text zu wiederholen.

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

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Programm bei Änderung einer Systemvariablen starten

Beitrag von DrTob » 09.06.2015, 18:13

Es wurde eigentlich schon alles erklärt. Wenns trotzdem nicht geht:

1. Programm löschen und neu anlegen.
2. Screenshot des Programms :)

ap_
Beiträge: 50
Registriert: 16.01.2013, 15:24

Re: AW: Programm bei Änderung einer Systemvariablen starten

Beitrag von ap_ » 09.06.2015, 18:34

Xel66 hat geschrieben:Ich benutze eine ähnliche Funktion zum Versenden von Push-Nachrichten, Mails, und TTS-Ansagen. Ich habe die eigentliche Aktion (Script, welches den Inhalt der jeweiligen Variable ausliest und versendet) bei "Sonst Wenn" drin und triggere auf Aktualisierung. Damit "Dann" nicht leer ist, steht dort das gleiche Script drin.
Das hat mich auf die richtige Spur gebracht. Allerdings habe ich es jetzt für meine Zwecke noch etwas einfacher hinbekommen.

Bedingung: Wenn...
[Systemzustand] MeineStringVariable bei [leerer Kasten] [bei Aktualisierung auslösen]

Aktivität: Dann...
[leerer Kasten]

Aktivität: Sonst...
[Skript] MeinSelbsterstelltesScript [sofort]

Mein Script wird jetzt bei Variablenänderung immer aufgerufen, egal ob die Variable auf irgendwas oder auf einen Leerstring geändert wird.

Allen nochmals vielen Dank für die raschen Antworten.


Gruss

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“