Werte von Virtueller Verknüpfung per Script ändern

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

Antworten
mrpiper
Beiträge: 14
Registriert: 28.10.2018, 07:24

Werte von Virtueller Verknüpfung per Script ändern

Beitrag von mrpiper » 14.01.2019, 12:58

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

alchy
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

Beitrag von alchy » 14.01.2019, 14:21

Warum nicht gleich mit der Variablen die Einschaltdauer dynamisch im Programm setzen und damit einschalten?

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.

mrpiper
Beiträge: 14
Registriert: 28.10.2018, 07:24

Re: Werte von Virtueller Verknüpfung per Script ändern

Beitrag von mrpiper » 14.01.2019, 15:03

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!?

alchy
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

Beitrag von alchy » 14.01.2019, 15:59

Das war ja bisher auch nicht gefragt. :roll:
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.

mrpiper
Beiträge: 14
Registriert: 28.10.2018, 07:24

Re: Werte von Virtueller Verknüpfung per Script ändern

Beitrag von mrpiper » 14.01.2019, 16:19

Egal wie geht nur darum das sich der Aktor für X zeit nicht einschalten lässt.

Xel66
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

Beitrag von Xel66 » 14.01.2019, 16:59

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
-------------------------------------------------------------------------------------------
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

Familienvater
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

Beitrag von Familienvater » 14.01.2019, 17:54

Hi,
mrpiper hat geschrieben:
14.01.2019, 16:19
Egal wie geht nur darum das sich der Aktor für X zeit nicht einschalten lässt.
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

mrpiper
Beiträge: 14
Registriert: 28.10.2018, 07:24

Re: Werte von Virtueller Verknüpfung per Script ändern

Beitrag von mrpiper » 14.01.2019, 20:28

Definiere "nicht einschalten lässt"
Durch WEBUI Programm



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)
Heizung ein.png
Die Sperre mache ich über eine die Variable die pro Minute sich um 1 erhöht.
Sperrzeit.png

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);
      
    }
Danach wird sie wieder zurückgesetzt
Sperrzeit Reset.png


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

mrpiper
Beiträge: 14
Registriert: 28.10.2018, 07:24

Re: Werte von Virtueller Verknüpfung per Script ändern

Beitrag von mrpiper » 17.01.2019, 21:19

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
Heizung an.png

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 ein.png
Sperrung ein.png (19.27 KiB) 1176 mal betrachtet


Sperrung zurücksetzen:
Sperrung reset.png
Sperrung reset.png (19.58 KiB) 1176 mal betrachtet
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);
                      }
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

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.
Heizzeit zähler.png
Heizzeit zähler.png (19.24 KiB) 1176 mal betrachtet

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);

    }
Läuft seit 24 Std Fehlerfrei.

Würdet ihr noch etwas anders machen oder geht es auch einfacher??

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“