Programmauslösung mit Änderung SystemVariable
Moderator: Co-Administratoren
Programmauslösung mit Änderung SystemVariable
Hallo Experten,
Ich möchte, daß ein Programm bei Änderung einer SystemVariablen startet - das funktioniert leider (bei mir) nicht.
Hab schon probiert es mit Triggernung „bei Änderung“ oder auch „bei Update“ zum Laufen zu bringen - kein Erfolg.
Für eine Rollladen/Beschattungsfunktion setze ich mit einem SonnenstandsScript für jeden HausSektor (Vorne, 2.Quadrant, Hinten, 4.Quadrant) eine SystemVariable (zB: ShadeSec1) je nach Sonnenstand(++) auf „true“ oder „false“ - das funktioniert.
Mit einem weiteren Programm, das auf Änderung dieser SystemVariable getriggert werden soll, würden dann die entsprechenden Rollläden gesteuert - das funktioniert nicht.
Testweise hab ich die Auslösung mit z.B. Änderung der Außentemparatur erreicht, aber eben nicht bei der programmausgelösten Änderung der SystemVariable „ShadeSec1“. Hab‘ auch versucht „ShadeSec1“ zu protokollieren („logged“ getickt) - geht auch nicht
Gibt es generell Probleme mit der Auslöung durch (geänderte) SystemVariable?
Was kann sonst noch falsch laufen?
Danke für Feedback
Kang
Ich möchte, daß ein Programm bei Änderung einer SystemVariablen startet - das funktioniert leider (bei mir) nicht.
Hab schon probiert es mit Triggernung „bei Änderung“ oder auch „bei Update“ zum Laufen zu bringen - kein Erfolg.
Für eine Rollladen/Beschattungsfunktion setze ich mit einem SonnenstandsScript für jeden HausSektor (Vorne, 2.Quadrant, Hinten, 4.Quadrant) eine SystemVariable (zB: ShadeSec1) je nach Sonnenstand(++) auf „true“ oder „false“ - das funktioniert.
Mit einem weiteren Programm, das auf Änderung dieser SystemVariable getriggert werden soll, würden dann die entsprechenden Rollläden gesteuert - das funktioniert nicht.
Testweise hab ich die Auslösung mit z.B. Änderung der Außentemparatur erreicht, aber eben nicht bei der programmausgelösten Änderung der SystemVariable „ShadeSec1“. Hab‘ auch versucht „ShadeSec1“ zu protokollieren („logged“ getickt) - geht auch nicht
Gibt es generell Probleme mit der Auslöung durch (geänderte) SystemVariable?
Was kann sonst noch falsch laufen?
Danke für Feedback
Kang
Grüße aus Wien
kang
kang
-
- Beiträge: 3733
- Registriert: 23.09.2017, 12:04
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 120 Mal
Re: Programmauslösung mit Änderung SystemVariable
Guten Morgen
Was bedeutet "loggen der Sysvar " geht nicht. Logging geht schon, der Zeitstempel ändert sich aber nicht?
Wie wird denn die SysVar gesetzt? in einem Script? Es gibt 2 Arten eine SysVar zu setzen und nur bei einer Variante wird ein WebUi Programm getriggert.
Damit die Script Spezialisten Dir helfen können, solltest Du den Code für das Setzen der SysVar hier rein stellen und einen Screenshot des WEbUi Programms, wo diese Variable der Auslöser ist
Was bedeutet "loggen der Sysvar " geht nicht. Logging geht schon, der Zeitstempel ändert sich aber nicht?
Wie wird denn die SysVar gesetzt? in einem Script? Es gibt 2 Arten eine SysVar zu setzen und nur bei einer Variante wird ein WebUi Programm getriggert.
Damit die Script Spezialisten Dir helfen können, solltest Du den Code für das Setzen der SysVar hier rein stellen und einen Screenshot des WEbUi Programms, wo diese Variable der Auslöser ist
Re: Programmauslösung mit Änderung SystemVariable
Danke für das Feedback,
Grüße kang
- ad loggen/Logging der SystemVariable (Sysvar):
Hab die Variable als Boolean ohne Kanal(zuordung) definiert und die Auswahl "logged" gewählt (das sollte meinem Verständnis bei Änderung des Werts zu Einträgen im "System Log" führen, oder ?
Tut es aber nicht.
- Hab auch versuchsweise die Variable einen (realen) Kanal zugeordnet (WetterKanal) - keine Änderung im Verhalten, jedoch wird bei der Programmerstellung nun die Variable nicht mehr als SystemVariable/Zustand sondern als Device-Wert behandelt
- Die SysVar wird in einen Script gesetzt, funktioniert (ich logge das mit CCU-Historian)
"var Shade1 = dom.GetObject("ShadeSec1"); Shade1.Variable(true);"
- Schlußendlich gibt's dann ein kleines Programm, das bei Änderung dieser SysVar starten soll.
- ich hab' mich nun (zulange) damit herumgespielt und einen Work-around mit einem vorgeschaltenen Timer (frägt alle 15min den Status der SysVar (ShadeSec1, etc.) ab) und dann funktionierts, aber das ist natürlich eine "schlechte Prothese"
- Programm triggering (Auslösung) basierend am Zustand einer SystemVariablen funktioniert nicht
- bei Zuordnung zu einem Kanal verhält sich die SysVar in der ProgrammMaske wie der Datenpunkt eines Device, im Gegensatz zu diesen löst das Programm aber auch dann nicht aus
- Im System Log gibt's trotz Setzten auf "logged" auch keine EInträge
Grüße kang
Grüße aus Wien
kang
kang
-
- Beiträge: 3733
- Registriert: 23.09.2017, 12:04
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 120 Mal
Re: Programmauslösung mit Änderung SystemVariable
Hallo
wenn im Systemprotokoll keine Änderung vermerkt ist, dann bemerkt die CCU die Änderung nicht, dann wird auch das Programm nicht getriggert
Ich habe nicht so viel Ahnung von Script, aber das Setzen der SysVar erfolgt mit Value oder State. Bei einem von beiden wird dann auch das Programm getriggert (hab ich vergessen)
Also liegt die Ursache in dem Script, dass die SysVar setzt.
wenn im Systemprotokoll keine Änderung vermerkt ist, dann bemerkt die CCU die Änderung nicht, dann wird auch das Programm nicht getriggert
Ich habe nicht so viel Ahnung von Script, aber das Setzen der SysVar erfolgt mit Value oder State. Bei einem von beiden wird dann auch das Programm getriggert (hab ich vergessen)
Also liegt die Ursache in dem Script, dass die SysVar setzt.
-
- Beiträge: 12434
- Registriert: 19.03.2014, 00:37
- System: in Planung
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 380 Mal
Re: Programmauslösung mit Änderung SystemVariable
Die "Tipps für Anfänger" enthalten ein paar grundlegende infos.
. Zum Setzen nehme ich
. .
.
Daher das Programm mal löschen und neu anlegen.
Manchmal braucht es auch eine zweite Zeile im Wenn
.
Gruß
Bruno
"Gehört" ja jetzt zum Kanal des Geräts und erscheint konsequenterweise dann auch dort.
Normal funktioniert das. Habe gerade mal probiert.
. Zum Setzen nehme ich
. .
.
Daher das Programm mal löschen und neu anlegen.
Manchmal braucht es auch eine zweite Zeile im Wenn
Code: Alles auswählen
Wenn
SysVar xx -> Wert xx -> auf Änderung
oder
SysVar xx -> Wert xx -> nur prüfen
Dann
...
Na ja ...
Gruß
Bruno
Re: Programmauslösung mit Änderung SystemVariable
Nachtrag (auch wieder themenfremd): wie kann ich diesen Thread zum richtigen Forum bringen (hat mit HMiP nicht viel zu tun)
Grüße aus Wien
kang
kang
-
- Beiträge: 3733
- Registriert: 23.09.2017, 12:04
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 120 Mal
Re: Programmauslösung mit Änderung SystemVariable
Über jedem Beitraggibt es einen "melden" Button in Form eines Ausrufezeichens
Re: Programmauslösung mit Änderung SystemVariable
Danke für Eurer Feedback, sind immer neue Aspekte (die man nicht in der offiziellen Dokumentation findet - Bastlersystem ?)
(philosophisch ein Paradoxon, durchaus menschlich, aber für eine saubere ProgrammUmgebung ziemlich ungewöhnlich - oder ist das schon "künstliche Intellegenz"?)
Grüße aus Wien, in der Hoffnung doch noch eine andere weitere Erkenntnis zu erlangen
- Basierend auf Gluehwurm's Variante zum setzen der SysVar (nicht über Script sondern über "ProgrammBefehl") hab' ich das auch probiert und ja, das funktioniert - die Änderung wird erkannt und entsprechend reagiert
- leider funktioniert's nicht mit einem Script - und ich hab ein durchaus mehrzeiliges Script (Sonnenstand), das am Ende die SysVar setzt
(philosophisch ein Paradoxon, durchaus menschlich, aber für eine saubere ProgrammUmgebung ziemlich ungewöhnlich - oder ist das schon "künstliche Intellegenz"?)
Grüße aus Wien, in der Hoffnung doch noch eine andere weitere Erkenntnis zu erlangen
Grüße aus Wien
kang
kang
-
- Beiträge: 12434
- Registriert: 19.03.2014, 00:37
- System: in Planung
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 380 Mal
Re: Programmauslösung mit Änderung SystemVariable
Keine Ahnung, warum das bei einem Skript nicht funktioniert. Es ist auch keins zu sehen, sonst könnte jemand, der sich damit auskennt, ja mal drüberschauen. Vielleicht lässt sich eine Variable unterschiedlich definieren.
Re: Programmauslösung mit Änderung SystemVariable
Die weitere Erkenntnis!
Die Wertzuweisung mittles .State(neuer Wert) hat nun zum Erfolg geführt (Danke an NickHM).
Die Dokumentation ordnet die .State()-Funktion/Methode zwar den Datenpunkten zu und schreibt bei SystemVariablen eindeutig von .Variable() als der Methode zum Abfragen und Setzen, aber was soll's - ist diese Programmumgebung eigentlich nur schlecht auf Deutsch übersetzt oder ist das eine originäre Entwicklung?
In der Hoffnung eine stabile Lösung gefunden zu haben verabschiede ich mich für's erste
Die Wertzuweisung mittles .State(neuer Wert) hat nun zum Erfolg geführt (Danke an NickHM).
Die Dokumentation ordnet die .State()-Funktion/Methode zwar den Datenpunkten zu und schreibt bei SystemVariablen eindeutig von .Variable() als der Methode zum Abfragen und Setzen, aber was soll's - ist diese Programmumgebung eigentlich nur schlecht auf Deutsch übersetzt oder ist das eine originäre Entwicklung?
In der Hoffnung eine stabile Lösung gefunden zu haben verabschiede ich mich für's erste
Grüße aus Wien
kang
kang