Setzewert Einschaltzeit bei bereits eingeschaltetem Aktor

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Daimler
Beiträge: 9118
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 286 Mal

Setzewert Einschaltzeit bei bereits eingeschaltetem Aktor

Beitrag von Daimler » 02.02.2017, 13:12

Hallo Gemeinde,

ich habe hier ein (Verständnis-)Problem mit der Funktion 'Setzewert "EINSCHALTZEIT".

Hintergrund ist, dass ich vorher in 'aufgerufenen' Makros bei einigen BWMs (HM-Sen-MDIR-O-2), welche Dimmer und Schaltaktoren schalten, die 'warte' Funktion mit anschliessendem Ausschalten gearbeitet hatte und das eigentlich auch zu meiner vollsten Zufriedenheit funktionierte!
Nun ist aber heute Nacht meine ExecEngine abgeschmiert, als noch einige Aktoren eingeschaltet waren und die waren nat. auch heute Morgen noch an. :twisted:
Eine DV kann ich aus verschiedenen Gründen nicht verwenden.

Also nicht verzagen und umschwenken auf 'Setzewert "EINSCHALTZEIT". :D
Aber Pustekuchen, diese Funktion greift nur, wenn der Aktor auch wirklich ausgeschaltet ist, ein

Code: Alles auswählen

  Setzewert(Aktor,"EINSCHALTZEIT",OnTime)
  Aktor einschalten

oder

      Setzewert(Dimmer_Helligkeit,"EINSCHALTZEIT",OnTime)
      Dimmer_Programm:=Prog
      Dimmer_Farbe:=Farbe
      Dimmer_Helligkeit:=Hell

(nat. wären hier im Normalfall noch 'Warte-Anweisungen dazwischen. :!: )
setzt die Zeit nicht wieder neu, sondern es gilt die Einschaltzeit der 1. Auslösung.
Bei einer testweise erstellten DV zwischen BWM und Aktor wird die Zeit allerdings immer wieder (auch bei eingeschaltetem Aktor) wieder neu gestartet.
(Aber das kann ich leider nicht einsetzen)

Kennt hier jemand einen Trick - oder sehe ich den Wald vor lauter Bäumen nicht.


Getestet mit Dimmer (HM-LC-Dim1T-DR, HM-LC-RGBW-WM) und Schaltaktoren (HM-LC-Sw1-PCB, HM-LC-Sw1PBU-FM)
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

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

Setzewert Einschaltzeit bei bereits eingeschaltetem Aktor

Beitrag von DrTob » 02.02.2017, 13:22

In einem CCU-Programm geht das genau so. Vermutung: die ExecEngine schickt den Befehl nicht weil sie denkt "unnötig, ist ja schon an". Ob's hier eine Lösung gibt weiß ich nicht, mit homeputer kenne ich mich nicht aus.

Aber: wieso kannst du keine Direktverknüpfung verwenden? (Z.B. Auch mit einer virtuellen Taste)

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Setzewert Einschaltzeit bei bereits eingeschaltetem Akto

Beitrag von Familienvater » 02.02.2017, 13:30

Hi,

schiebe einfach nach dem setzewert(Aktor,"EINSCHALTZEIT",OnTime) noch ein "Einschalten für OnTime" hinterher, doppelt gemoppelt hält besser, und in dem Fall wird die Einschaltzeit dann auch an den Aktor geschickt. Sollte die Abschaltmeldung vom Aktor versumpfen, stimmt aber automatisch der Status in HPCL wieder, weil die EE nach dem "Einschalten für OnTime" ja auch selbständig den Aktor wieder ausschaltet.

Der Familienvater

Daimler
Beiträge: 9118
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 286 Mal

Re: Setzewert Einschaltzeit bei bereits eingeschaltetem Akto

Beitrag von Daimler » 02.02.2017, 16:18

Hi,
DrTob hat geschrieben:wieso kannst du keine Direktverknüpfung verwenden?
Da sind zu viele Abhängigkeiten - Stand der Rollos, mehr als 1 BWM, Uhrzeit, Hellogkeit, die nicht vom auslösenden BWM ausgewertet wird etc. pp..
DrTob hat geschrieben:Auch mit einer virtuellen Taste
Über HPCL wäre das eine Möglichkeit (denn auch bei den virtuellen Tasten wird die Zeit neu gestartet), aber in der Produktiv-System sind ja leider nur 50 Kanäle da. :cry:
Familienvater hat geschrieben:....noch ein "Einschalten für OnTime" hinterher...
Das würde zwar funktionieren - aber nur, wenn du mir den Trick für Dimmer verrätst. :roll:
Hier bewirkt ein 'Einschalten für', dass der Dimmer ausschaltet.
Und außerdem ist das ja auch nichts anderes als den Aktor nach einer programmierten Wartezeit wieder auszuschalten und würde beim ursprünglichen Problem (Abschmieren der EE) nicht helfen.
Und dies habe ich leider seit irgendeiner Version ziemlich häufig (ca. 1 Mal die Woche)

Aber wir halten fest:
Sowohl in DVs (auch mit virtuellen Kanälen) als auch in CCU-Programmen (lt. Dr. Tob), funktioniert es - nur bei HPCL Setzewert nicht.
Ein Bug? :roll:

Hier einmal Auszüge der History zuerst bei diesem Makro:

Code: Alles auswählen

// Dimmer		NEQ1743549
// RGBW Dimmer		NEQ0675855
// Aktor			NEQ1631364
//
OnTime:=V_RGBW_Zeit_BWM
Hell:=V_RGBW_5_Hell
Farbe:=V_RGBW_5_Farbe
//
Setzewert(Dimmer_HS_1,"EINSCHALTZEIT",OnTime)
Dimmer_HS_1:=Hell
warte 1 Sekunden
Setzewert(Dimmer_RGBW_5_Helligkeit,"EINSCHALTZEIT",OnTime)
Dimmer_RGBW_5_Farbe:=Farbe
Dimmer_RGBW_5_Helligkeit:=Hell
warte 1 Sekunden
Setzewert(SW1_Kspa_1,"EINSCHALTZEIT",OnTime)
SW1_Kspa_1 einschalten für OnTime

Code: Alles auswählen

02.02.2017/15:51:30;DIMMER_HS_1;40;[1]
02.02.2017/15:51:31;DIMMER_RGBW_5_HELLIGKEIT;40;[1]
02.02.2017/15:51:31;DIMMER_HS_1;3;[2]
02.02.2017/15:51:31;DIMMER_RGBW_5_HELLIGKEIT;0;[2]
02.02.2017/15:51:32;SW1_KSPA_1;an;(1);[1]
02.02.2017/15:51:33;DIMMER_RGBW_5_HELLIGKEIT;40;[2]
02.02.2017/15:51:34;DIMMER_HS_1;40;[2]
02.02.2017/15:51:47;SW1_KSPA_1;an;(1);[1]
02.02.2017/15:51:54;DIMMER_RGBW_5_HELLIGKEIT;0;[2]
02.02.2017/15:51:55;DIMMER_HS_1;0;[2]
02.02.2017/15:52:07;SW1_KSPA_1;aus;(0);[1]
Um 15:31:30 Uhr einen Taster mit integrierten o. g. Makro betätigt - um 15:31:47 nochmals --> der Aktor wird mit 'Einschalten für' neu gestartet, die Setzewert an die Dimmer werden nicht übermittelt.

Nun das Einschalten für ersetzt durch nur Einschalten:

Code: Alles auswählen

02.02.2017/16:04:30;DIMMER_HS_1;40;[1]
02.02.2017/16:04:30;DIMMER_HS_1;0;[2]
02.02.2017/16:04:31;DIMMER_RGBW_5_HELLIGKEIT;40;[1]
02.02.2017/16:04:31;DIMMER_RGBW_5_HELLIGKEIT;0;[2]
02.02.2017/16:04:32;SW1_KSPA_1;an;(1);[1]
02.02.2017/16:04:33;DIMMER_RGBW_5_HELLIGKEIT;40;[2]
02.02.2017/16:04:34;DIMMER_HS_1;40;[2]
02.02.2017/16:04:53;SW1_KSPA_1;aus;(0);[2]
02.02.2017/16:04:54;DIMMER_RGBW_5_HELLIGKEIT;0;[2]
02.02.2017/16:04:54;DIMMER_HS_1;0;[2]
und um 16:04:45 den Taster nochmals betätigt --> da wird nichts gesendet!
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

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

Re: Setzewert Einschaltzeit bei bereits eingeschaltetem Akto

Beitrag von DrTob » 02.02.2017, 18:16

ich habe mal in die Doku von Homeputer geschaut:


versuche mal nach dem Setzen der Einschaltdauer den Dimmer mittels:

Code: Alles auswählen

Setzewert(Dimmer,"STUFE","1.0")
einzuschalten.

Daimler
Beiträge: 9118
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 286 Mal

Re: Setzewert Einschaltzeit bei bereits eingeschaltetem Akto

Beitrag von Daimler » 02.02.2017, 20:32

Hi,

ich fasse es nicht. :shock:

Obwohl Setzewert(Dimmer,"STUFE","1.0") eigentlich m. E. als 1:1 Pendant zu Dimmer:=100 beschrieben ist
(Mit diesem Schlüsselwert kann die Helligkeit eines Dimmers eingestellt werden. Der Wert ist ein Dezimalwert zwischen 0 und 1, als Parameter in Form einer Konstante oder Variable vom Typ ZeichenDiese Möglichkeit der Dimmersteuerung sollte nur in Ausnahmefällen benutzt werden, besser ist es den Dimmer über eine Zuweisung in einem Makro (z.B. Dimmer:=60) einzustellen.)
Funktioniert es hiermit - die Zeit wird immer wieder neu gestartet.

Und das Äquivalent beim Aktor ist Setzewert(Aktor,"ZUSTAND",1)

Beispiel:

Code: Alles auswählen

OnTime:=V_RGBW_Zeit_BWM
Hell:=V_RGBW_5_Hell/100
Farbe:=V_RGBW_5_Farbe
//
Setzewert(Dimmer,"EINSCHALTZEIT",OnTime)
Setzewert(Dimmer,"STUFE",Hell)
warte 1 Sekunden
Setzewert(Dimmer_RGBW_Helligkeit,"EINSCHALTZEIT",OnTime)
Dimmer_RGBW_Farbe:=Farbe
Setzewert(Dimmer_RGBW_Helligkeit,"STUFE",Hell)
warte 1 Sekunden
Setzewert(Aktor,"EINSCHALTZEIT",OnTime)
Setzewert(Aktor,"ZUSTAND",1)
Funktioniert.

Danke für den Hinweis. :D
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

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

Re: Setzewert Einschaltzeit bei bereits eingeschaltetem Akto

Beitrag von DrTob » 02.02.2017, 21:39

Daimler hat geschrieben: Obwohl Setzewert(Dimmer,"STUFE","1.0") eigentlich m. E. als 1:1 Pendant zu Dimmer:=100 beschrieben ist
es gibt einen kleinen, aber in der Auswirkung deutlichen Unterschied:

Dimmer := 100 weist dem "internen" Dimmer-Objekt den Wert 100 zu. Wenn dieser vorher ein anderen Wert hatte wird Setzewert(Dimmer,"STUFE","1.0") ausgeführt.

also:
Setzewert(Dimmer,"STUFE","1.0") sendet IMMER
Dimmer := 100 sendet nur wenn sich der neue Wert vom alten unterscheidet.

Da du hier explizit senden willst ist Setzewert(Dimmer,"STUFE","1.0") die richtige Wahl.

Wenn du aber alle 30s irgendwas Prüfst und je nach Ergebnis eine Lampe schaltest resultiert Setzewert(Dimmer,"STUFE","1.0") in einem Funkfeuerwerk, hier wäre dann ein einfaches "Dimmer := 100" die bessere Wahl :)

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Setzewert Einschaltzeit bei bereits eingeschaltetem Akto

Beitrag von Familienvater » 02.02.2017, 23:02

Hi,

aus dem Grund mit den "ungetimerten" Hardwareausgängen am 12/14er wired-Modul treibe ich einen ziemlich hohen Aufwand, damit auch bei einem spontanen Neustart der EE meine Software-Timer in HPCL wieder weiterlaufen. Ich schreibe dazu ggf. bei jedem Ein- und Ausschalten eines 12/14er Kanals eine Parameter-Datei, in der der aktuelle Zustand, der Abschaltzeitpunkt usw. festgehalten wird, allerdings schreibe ich das auf ein NFS-Share, nicht auf eine SD-Karte/USB-Stick. Und bei jedem Start der EE wird im Init-Makro die Datei gelesen, und für jeden Aktor georüft, ob der Status und die Ausschaltzeit passen, sonst wird "nachträglich" ausgeschaltet. Auch da gibt es natürlich die Sekunde, in der die Datei geschrieben wird, bei der es nach wie vor in die Hose gehen kann, aber insgesamt sehe ich das als zuverlässig an.

Mit Dimmern habe ich keine dynamischen Timer-Erfahrungen, das haben nur die Kinder im Kinderzimmer und können das ggf. per "Klebeschalter" am Bett und Direktverknüpfung selbst steuern, da Du so viele Dimmer nicht haben wirst, könntest Du aber bestimmt auch ein paar virtuelle Tasten dafür opfern...

Alternativer kleiner Workaround:
Ein weitere Einlesedatei, in der die "fraglichen" Aktoren einfach hart ausgeschaltet werden, bei jedem Einlesen, immer, beim Starten der EE. Wäre das eine Außenbeleuchtung, dann ginge die halt aus, bei der nächsten Bewegungsmeldung würde die spätestens wieder eingeschaltet. Man muss sich halt über die Einlesereihenfolge gedanken machen, zuerst kommen die Startwerte aus der Variablendeklaration, dann die Zustände beim sauberen beenden der EE, dann die "Grundeinstellungen", und zuletzt dann die variabel getimerten Zustände.

Der Familienvater

Daimler
Beiträge: 9118
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 286 Mal

Re: Setzewert Einschaltzeit bei bereits eingeschaltetem Akto

Beitrag von Daimler » 02.02.2017, 23:03

Hi,

danke für die Erläuterung - das in der Hilfe zu HPCL und es wären keine Fragen offen (zu diesem Thema).

Du solltest bei R. K. anfangen. 8)
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Daimler
Beiträge: 9118
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 286 Mal

Re: Setzewert Einschaltzeit bei bereits eingeschaltetem Akto

Beitrag von Daimler » 03.02.2017, 10:13

Hi,

da hatten wir wieder zeitgleich geschrieben - hatte deine Antwort nicht mitbekommen.
Familienvater hat geschrieben:Ich schreibe dazu ggf. bei jedem Ein- und Ausschalten eines 12/14er Kanals eine Parameter-Datei,
Mit dem Gedanken hatte ich auch schon gespielt, nachdem das mit der Zuweisung nicht wie erwartet funktionierte. Allein - ich scheute den Aufwand.
Eventuell setze ich das aber in einer gaaanz ruhigen Zeit doch einmal um.
Es sei denn, der DC würde mir eine Falle stellen, aber da mache ich mir bei einem Sendeabstand von 60 Sekunden (noch) keine allzu großen Gedanken.
Und wenn ich bedenke, wieviel 100te Abfragen (Ist xy aus- / oder eingeschaltet dann) ich mir in meinen Programmen hätte sparen können, wenn Docs Erklärung aus der HPCL-Hilfe erkennbar gewesen wäre. :twisted:
In der Zeit hätte ich das leicht umgesetzt.
Familienvater hat geschrieben:Ein weitere Einlesedatei, in der die "fraglichen" Aktoren einfach hart ausgeschaltet werden, bei jedem Einlesen, immer, beim Starten der EE.
Au weia - man kann sich ja leider nicht aussuchen, zu welchem Zeitpunkt die EE abschmiert.
Und da ich gerade im Spieltrieb bin und das Wohnzimmer derartig beleuchte, könnte das u. U. schwerwiegende WAFuelle Auswirkungen haben. :shock:
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Antworten

Zurück zu „homeputer CL“