Programmauslösung mit Änderung SystemVariable

HMIP lokale Installation

Moderator: Co-Administratoren

kang
Beiträge: 21
Registriert: 31.01.2017, 01:14

Programmauslösung mit Änderung SystemVariable

Beitrag von kang » 07.09.2018, 23:36

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
Grüße aus Wien
kang

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: Programmauslösung mit Änderung SystemVariable

Beitrag von NickHM » 08.09.2018, 08:00

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

kang
Beiträge: 21
Registriert: 31.01.2017, 01:14

Re: Programmauslösung mit Änderung SystemVariable

Beitrag von kang » 09.09.2018, 18:00

Danke für das Feedback,
  • 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.
    VariableLogged.jpg
  • 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.
    Starten des Programms.jpg
  • 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"
den Zustand (meiner Unzufriedenheit) zusammengefaßt:
  • 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
btw: wo gibt's denn eine kurze, aktuelle Zusammenfassung zum Schreiben von Beiträgen / Antworten, speziell Einfügen von Screenshots und ProgrammCode ? (sorry ich bin neu in dem Geschäft)

Grüße kang
Grüße aus Wien
kang

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: Programmauslösung mit Änderung SystemVariable

Beitrag von NickHM » 09.09.2018, 18:45

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.

Gluehwurm
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

Beitrag von Gluehwurm » 09.09.2018, 19:31

Die "Tipps für Anfänger" enthalten ein paar grundlegende infos.
kang hat geschrieben:
09.09.2018, 18:00
... wird bei der Programmerstellung nun die Variable nicht mehr als SystemVariable/Zustand sondern als Device-Wert behandelt ...
"Gehört" ja jetzt zum Kanal des Geräts und erscheint konsequenterweise dann auch dort.
kang hat geschrieben:
09.09.2018, 18:00
... Programm triggering (Auslösung) basierend am Zustand einer SystemVariablen funktioniert nicht ...
Normal funktioniert das. Habe gerade mal probiert.
.
P_SysVar_Ausf01.JPG
Zum Setzen nehme ich
.
P_SysVar_Setzen01.JPG
.
.
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
...
.
kang hat geschrieben:
09.09.2018, 18:00
... den Zustand (meiner Unzufriedenheit) zusammengefaßt: ...
Na ja ...

Gruß
Bruno

kang
Beiträge: 21
Registriert: 31.01.2017, 01:14

Re: Programmauslösung mit Änderung SystemVariable

Beitrag von kang » 09.09.2018, 21:11

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

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: Programmauslösung mit Änderung SystemVariable

Beitrag von NickHM » 09.09.2018, 21:34

kang hat geschrieben:
09.09.2018, 21:11
Nachtrag (auch wieder themenfremd): wie kann ich diesen Thread zum richtigen Forum bringen (hat mit HMiP nicht viel zu tun)
Über jedem Beitraggibt es einen "melden" Button in Form eines Ausrufezeichens

kang
Beiträge: 21
Registriert: 31.01.2017, 01:14

Re: Programmauslösung mit Änderung SystemVariable

Beitrag von kang » 09.09.2018, 22:42

Danke für Eurer Feedback, sind immer neue Aspekte (die man nicht in der offiziellen Dokumentation findet - Bastlersystem ?)
  • 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
Das heißt dann wohl: Änderungen einer SystemVariablen mittels Script werden vom System zwar durchgeführt, aber trotzdem vom System nicht erkannt
(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

Gluehwurm
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

Beitrag von Gluehwurm » 09.09.2018, 23:03

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.

kang
Beiträge: 21
Registriert: 31.01.2017, 01:14

Re: Programmauslösung mit Änderung SystemVariable

Beitrag von kang » 09.09.2018, 23:08

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
Grüße aus Wien
kang

Antworten

Zurück zu „HomeMatic IP mit CCU“