Aktor On_Time aus Systemvariable schreiben

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
erwin2014
Beiträge: 1
Registriert: 14.07.2022, 00:17
System: CCU
Hat sich bedankt: 1 Mal

Aktor On_Time aus Systemvariable schreiben

Beitrag von erwin2014 » 14.07.2022, 00:27

Hallo zusammen,

ich hab ein scheinbar einfaches Problem was ich nicht gelöst bekomme.
Ich möchte die On_Time eines Aktors über eine Systemvariable schreiben.

Folgendes funktioniert ohne Probleme. Der Aktor schaltet nach 10 Sek wieder aus.

dom.GetObject("BidCos-RF.QEQ1334080:1.ON_TIME").State(10);
dom.GetObject("BidCos-RF.QEQ1334080:1.STATE").State(true);

Wenn ich dies nun durch eine Sys Variable ersetze schalter der Aktor zwar ein aber die On_Time wird nicht beachtet was dazu führt das der Aktor nicht automatisch aus geht.
!Test ist eine System Variable vom Typ Zahl
interger x = dom.GetObject("Test");
dom.GetObject("BidCos-RF.QEQ0711468:1.ON_TIME").State(Test);
dom.GetObject("BidCos-RF.QEQ0711468:1.STATE").State(true);

Danke für die Hilfe
Zuletzt geändert von Roland M. am 14.07.2022, 01:07, insgesamt 1-mal geändert.
Grund: Thema verschoben

Benutzeravatar
Roland M.
Beiträge: 9804
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1381 Mal

Re: Aktor On_Time aus Systemvariable schreiben

Beitrag von Roland M. » 14.07.2022, 01:26

Hallo und willkommen im Forum!
erwin2014 hat geschrieben:
14.07.2022, 00:27
!Test ist eine System Variable vom Typ Zahl
interger x = dom.GetObject("Test");
Du referenzierst direkt auf das Objekt, nicht auf den Wert des Objekts!

Richtig wäre (abgesehen vom falsch geschriebenen "interger"):
integer x = dom.GetObject("Test").Value();

Dass hier die Scriptsprache auch noch eine variable Typendeklaration durchführt, macht die Sache nicht leichter.

Eleganter wäre außerdem noch, die Systemvariable über
dom.GetObject(ID_SYSTEM_VARIABLES).Get("Test")
anzusprechen, da so sichergestellt wird, dass die Systemvariable namens "Test" angesprochen wird und nicht vielleicht ein Gerät oder Kanal mit gleichem Namen.


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Matthias K.
Beiträge: 1172
Registriert: 14.02.2016, 12:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Heidenheim
Hat sich bedankt: 57 Mal
Danksagung erhalten: 226 Mal

Re: Aktor On_Time aus Systemvariable schreiben

Beitrag von Matthias K. » 14.07.2022, 06:58

erwin2014 hat geschrieben:
14.07.2022, 00:27
!Test ist eine System Variable vom Typ Zahl
interger x = dom.GetObject("Test");
dom.GetObject("BidCos-RF.QEQ0711468:1.ON_TIME").State(Test);
dom.GetObject("BidCos-RF.QEQ0711468:1.STATE").State(true);
Und du musst in Zeile 4 hinten bei State x eintragen, nicht Test.
Die Scriptvariable Test ist nirgends in diesem Script definiert.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“