Werte von Virtueller Verknüpfung per Script ändern
Moderator: Co-Administratoren
Werte von Virtueller Verknüpfung per Script ändern
Hallo!!
Habe mir ein direkte Verknüpfung mit meinem Schaltaktor HM-LC-Sw2-FM erstellt.
Ich würde gerne die Wert (Einschaltdauer/Ausschaltdauer) über ein Skript ändern um es so von meiner Visualisierung (ioBroker) zu ändern.
Geht das??
Danke im vorraus
Habe mir ein direkte Verknüpfung mit meinem Schaltaktor HM-LC-Sw2-FM erstellt.
Ich würde gerne die Wert (Einschaltdauer/Ausschaltdauer) über ein Skript ändern um es so von meiner Visualisierung (ioBroker) zu ändern.
Geht das??
Danke im vorraus
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Werte von Virtueller Verknüpfung per Script ändern
Warum nicht gleich mit der Variablen die Einschaltdauer dynamisch im Programm setzen und damit einschalten?
Alchy
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.
Re: Werte von Virtueller Verknüpfung per Script ändern
Danke an so etwas hatte ich auch schon gedacht ......
Mein Problem dabei ist nur, wie ich es mache das der Schaltaktor für eine gewisse Zeit nicht einschalten lässt!?
Mein Problem dabei ist nur, wie ich es mache das der Schaltaktor für eine gewisse Zeit nicht einschalten lässt!?
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Werte von Virtueller Verknüpfung per Script ändern
Das war ja bisher auch nicht gefragt.
Es kommt darauf an, inwieweit du die Sperre haben willst, es gibt ja eine Sperrung bei dem Kanal.
Alchy
Es kommt darauf an, inwieweit du die Sperre haben willst, es gibt ja eine Sperrung bei dem Kanal.
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.
Re: Werte von Virtueller Verknüpfung per Script ändern
Egal wie geht nur darum das sich der Aktor für X zeit nicht einschalten lässt.
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Werte von Virtueller Verknüpfung per Script ändern
Vermutlich nach dem Setzen der Einschaltzeit vergessen, den Aktor auch einzuschalten. Die Daten der Direktverknüpfung so on the fly zu ändern, wird eher nicht möglich sein, da diese Einstellungen ja in dem Aktor gespeichert werden müssen. Der erhält vom verknüpften Gerät nur den Befehl oder Status und macht dann sein eigenes Ding (Schaltbefehl) draus. Wenn man nun die Zeit ändert, muss diese Konfiguration übertragen und abgespeichert werden. Auf die Dauer ist das wahrscheinlich auch für den Speicher der Konfiguration nicht gut (ist ja schließlich ein nichtflüchtiger Speicher).
Gruß Xel66
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
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
-
- Beiträge: 7151
- Registriert: 31.12.2006, 15:18
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Rhein-Main
- Danksagung erhalten: 34 Mal
Re: Werte von Virtueller Verknüpfung per Script ändern
Hi,
Mit einer zu setzenden Sperre funktioniert die lokale Bedienung und auch keine Direktverknüpfung mehr, aber per WebUI Programm oder ioBroker z.B. ist der Aktor nach wie vor schaltbar, auch wenn er "gesperrt" (INHIBIT=true) ist. Und es ist ggf. keine gute Idee 4x pro Stunde den Aktor zu sperren, und wieder zu entsperren, das kostet auch jedesmal ein Funkpaket...
Mit der Verweildauer im Zustand aus sollte der Aktor aber auch "jederzeit" wieder eingeschaltet werden können, diese Zeit ist nach meinem Verständnis nur für "im Aktor ablaufende Schleifen" (Blinklicht) interessant.
Der Familienvater
Definiere "nicht einschalten lässt"
Mit einer zu setzenden Sperre funktioniert die lokale Bedienung und auch keine Direktverknüpfung mehr, aber per WebUI Programm oder ioBroker z.B. ist der Aktor nach wie vor schaltbar, auch wenn er "gesperrt" (INHIBIT=true) ist. Und es ist ggf. keine gute Idee 4x pro Stunde den Aktor zu sperren, und wieder zu entsperren, das kostet auch jedesmal ein Funkpaket...
Mit der Verweildauer im Zustand aus sollte der Aktor aber auch "jederzeit" wieder eingeschaltet werden können, diese Zeit ist nach meinem Verständnis nur für "im Aktor ablaufende Schleifen" (Blinklicht) interessant.
Der Familienvater
Re: Werte von Virtueller Verknüpfung per Script ändern
Durch WEBUI ProgrammDefiniere "nicht einschalten lässt"
Zur Zeit habe ich es so gelöst:
Ich habe ein Fernwärmeheizung mit Raumthermostat das ich durch Schaltaktor HM-LC-Sw2-FM ersetzt habe. (Das ein Ventil in der Verteilerstation schaltet)
In einem Programm wird der Ventilöffnungsgrad abgefragt, der wiederum ein Variable (HZ einschalten) auf Wahr setzt.
Diese Variable schaltet den Virtuellen Taster der ..
10 min ein und 15 min ausschaltet (da nach 10 min die Heizkörper glühen) Die Sperre mache ich über eine die Variable die pro Minute sich um 1 erhöht.
Code: Alles auswählen
var sz = dom.GetObject("HZ_Sperrzeit");
var sensor= dom.GetObject("BidCos-RF.OEQxxxxxxx6:1.STATE").Value();
if (sensor == false){
sz.State(sz.Value() + 1);
}
Möchte das ganze so umbauen das:
Ich ein Variable für Eischaltdauer und eine für Sperrzeit habe um nicht alles verstellen zu müssen.Deswegen der Ansatz
Hallo!!
Habe mir ein direkte Verknüpfung mit meinem Schaltaktor HM-LC-Sw2-FM erstellt.
Direkte Verknüpfung.png
Ich würde gerne die Wert (Einschaltdauer/Ausschaltdauer) über ein Skript ändern um es so von meiner Visualisierung (ioBroker) zu ändern.
Geht das??
Danke im vorraus
Re: Werte von Virtueller Verknüpfung per Script ändern
Habe die Einschaltdauer dynamisch im Programm wie von Alchy empfohlen übernommen und noch eine dynamische Auschschaltdauer gebastelt.
Da ich erst seit ca. 4 Monaten Homematic habe , bin ich für alle Verbesserungsvorschläge offen.
System Variablen:
HZ_an_Sperrzeit_aktiv-----wahr/falsch
HZ_an_Heizzeit -------------Zeit (Zähler der abgelaufenen Zeit)
HZ_an_Sperrzeit-------------Zeit (Zähler der abgelaufenen Zeit)
HZ_an_Einschaltdauer------Zeit in Sekunden(Wie lange der Schaltaktor eingeschaltet ist) gesetzt über Programm;Skript oder IO Broker oder.....
HZ_an_Auschaltdauer-------Zeit in Minuten(Wie lange der Schaltaktor ausgeschaltet bleibt) gesetzt über Programm;Skript oder IO Broker oder.....
HZ_an_einschalten Bedingung für einschalten der Heizung (Wird bei mir von Ventilpos. der Heizkörper gesetzt)
Programm einschalten(Wie Einschaltdauer dynamisch im Programm) nur zusätzlich wird noch geprüft ob Sperrung aktiv ist und Heizzeit auf 0.01 und Sperrzeit auf 0 gestellt
Jetzt zur Sperrung:
Sobald der Schaltaktor ausgeschaltet ist wird die Variable Sperrung aktiv auf wahr gesetzt
und die Heizzeit auf 0 und die Sperrzeit auf 0.01 gestellt
Sperrung zurücksetzen:
ersten Skript:
Hier wird geprüft ob die Auschaltdauer (Zeit) erreicht wurde, wenn ja wird die aktuelle Sperrzeit auf 0 gesetzt und Sperre auf falsch
zweites Skript 1 min verzögert
Solange die Variable Heizung Sperre aktiv wahr ist wird pro Minute der Zähler Sperrzeit um 1 erhöht.
Das Programm Heizzeit ist nicht erforderlich für die Sperrung dient einfach nur zur Visualisierung.
Läuft seit 24 Std Fehlerfrei.
Würdet ihr noch etwas anders machen oder geht es auch einfacher??
Da ich erst seit ca. 4 Monaten Homematic habe , bin ich für alle Verbesserungsvorschläge offen.
System Variablen:
HZ_an_Sperrzeit_aktiv-----wahr/falsch
HZ_an_Heizzeit -------------Zeit (Zähler der abgelaufenen Zeit)
HZ_an_Sperrzeit-------------Zeit (Zähler der abgelaufenen Zeit)
HZ_an_Einschaltdauer------Zeit in Sekunden(Wie lange der Schaltaktor eingeschaltet ist) gesetzt über Programm;Skript oder IO Broker oder.....
HZ_an_Auschaltdauer-------Zeit in Minuten(Wie lange der Schaltaktor ausgeschaltet bleibt) gesetzt über Programm;Skript oder IO Broker oder.....
HZ_an_einschalten Bedingung für einschalten der Heizung (Wird bei mir von Ventilpos. der Heizkörper gesetzt)
Programm einschalten(Wie Einschaltdauer dynamisch im Programm) nur zusätzlich wird noch geprüft ob Sperrung aktiv ist und Heizzeit auf 0.01 und Sperrzeit auf 0 gestellt
Jetzt zur Sperrung:
Sobald der Schaltaktor ausgeschaltet ist wird die Variable Sperrung aktiv auf wahr gesetzt
und die Heizzeit auf 0 und die Sperrzeit auf 0.01 gestellt
Sperrung zurücksetzen:
ersten Skript:
Code: Alles auswählen
var ad =dom.GetObject("HZ_an_Ausschaltdauer").State();
var sz =dom.GetObject("HZ_an_Sperrzeit").State();
if (sz >= ad) {
dom.GetObject("HZ_an_Sperre_aktiv").State(false);
dom.GetObject("HZ_an_Sperrzeit").State(0.00);
}
zweites Skript 1 min verzögert
Code: Alles auswählen
var sz = dom.GetObject("HZ_an_Sperrzeit");
var sp =dom.GetObject("HZ_an_Sperre_aktiv").State();
if (sp == true){
sz.State(sz.Value() + 1);
}
Solange die Variable Heizung Sperre aktiv wahr ist wird pro Minute der Zähler Sperrzeit um 1 erhöht.
Das Programm Heizzeit ist nicht erforderlich für die Sperrung dient einfach nur zur Visualisierung.
Code: Alles auswählen
var hd = dom.GetObject("HZ_an_Heizzeit");
var sensor= dom.GetObject("BidCos-RF.Oxxxxxxx56:1.STATE").Value();
if (sensor == true){
hd.State(hd.Value() + 1);
}
Würdet ihr noch etwas anders machen oder geht es auch einfacher??