Anwesenheitsimulation Lampen bei Abwesenheit schalten

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
uwe111
Beiträge: 4820
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 245 Mal
Kontaktdaten:

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von uwe111 » 31.01.2018, 00:46

EckartS hat geschrieben:inmal im aufrufenden HM-Programm im "sonst,wenn"-Zweig unter "TIMER_SET" und dann genauso bei den Kanalparametern des CUxD System.Timer unter SYSTEM|TIMER_PRESET. Warum ist das nötig?
Beides sollte die gleiche Funktion haben.
urpils hat geschrieben:Wenn ich nach deiner Anleitung bzw. der CUxD-Dok S.94 beim CUxD System.Timer den SYSTEM|CMD_EXEC setze, z.B. "extra/timer.tcl BidCos-Wired.JEQ0713135:16 $STATE$", dann sind die Parameter dieses Eintrags beim nächsten Aufruf der Eigenschaften des Timers verschwunden. Da steht nur noch "extra/timer.tcl". Es funktioniert aber alles weiterhin. Wie sehe ich denn die ursprünglichen Einstellungen?
Bei mir ist da nichts verschwunden. ich nutze FW 2.31.23 und CUxD 1.12
Oder vielleicht liegt's ja auch am Webbrowser?

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

urpils
Beiträge: 464
Registriert: 27.08.2014, 10:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 9 Mal
Danksagung erhalten: 6 Mal

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von urpils » 31.01.2018, 09:47

EckartS hat geschrieben: * Lt deiner Anleitung am Anfang dieses Themas wird der String, der die Timer setzt, hier "!300 r 19*300/300 r 19*300", zweimal eingetragen. Einmal im aufrufenden HM-Programm im "sonst,wenn"-Zweig unter "TIMER_SET" und dann genauso bei den Kanalparametern des CUxD System.Timer unter SYSTEM|TIMER_PRESET. Warum ist das nötig? Übergibt das aufrufende HM-Programm diesen String nicht ohnehin an den CUxD-Timer?
Bei mir wird der Timerstring nur einmal übergeben, und zwar im aufrufenden HM-Programm. Das reicht. Ich wüsste nicht geschrieben zu haben, dass er zusätzlich auch nochmal in den Kanalparametern von CUxD übergeben wird. Wo hast du das gelesen?
z.B. "extra/timer.tcl BidCos-Wired.JEQ0713135:16 $STATE$", dann sind die Parameter dieses Eintrags beim nächsten Aufruf der Eigenschaften des Timers verschwunden. Da steht nur noch "extra/timer.tcl". Es funktioniert aber alles weiterhin. Wie sehe ich denn die ursprünglichen Einstellungen?
Wie gesagt, ich übergebe den String nur im Programm, aber wie Uwe schon schrieb (und der wird es genau wissen :-), sollte da nichts verschwinden.
Das Problem mit dem Spruch "Der Klügere gibt nach" ist, dass dann die Dummen die Welt regieren

EckartS
Beiträge: 243
Registriert: 13.11.2012, 23:11
Wohnort: Nürnberg
Danksagung erhalten: 2 Mal

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von EckartS » 02.02.2018, 01:56

Hallo,

@urpils. Du hast recht. In Deiner Anleitung wird der Timer-String nur im aufrufenden HM-Prg übergeben und so funktioniert das auch. Ich habe deine Anleitung und die CUxD-Dok zusammengewürfelt, daher das Missverständnis.

@uwe111. Das Rätsel der verschwundenen Parameter ist auch gelöst. Es liegt an der Verwendung von Anführungszeichen bei CMD_EXEC statt deren Ersatz durch "~22". Beispiel:

Code: Alles auswählen

	CUX2800001:7	state(0) timer(2040s) set(300r19*300/300r19*300):0 repeat CMD.system(60s,extra/timer.tcl "IO712_5:16.R33-GaubeSued" $STATE$)
	CUX2800001:8	state(1) timer(3240s) set(400r19*300/400r19*400):1 repeat CMD.system(60s,extra/timer.tcl IO712_5:17.R34-SchieneL1 $STATE$)
Der ersten Zeile entspricht in WebUI bei den Timer-Eigenschaften der Anzeige

Code: Alles auswählen

SYSTEM|CMD_EXEC	   extra/timer.tcl         
(ab dem Anführungszeichen leer, funktioniert aber trotzdem)
Die zweite Zeile entspricht der Anzeige

Code: Alles auswählen

SYSTEM|CMD_EXEC	   extra/timer.tcl IO712_5:17.R34-SchieneL1 $STATE$
(also alles, wie es sein soll.)
Mit einfachen Anführungszeichen tritt das Problem nicht auf.

Jetzt geht im Prinzip alles, ein paar Fragen habe ich aber noch.

* CMD_EXEX über die Seriennummer kriege ich nicht zum Laufen. Der Eintrag "extra/timer.tcl BidCos-Wired.JEQ0713135:17.STATE $STATE$" führt im Syslog zur Fehlermeldung
"Error: IseESP::ScriptRuntimeError: dom.GetObject("BidCos-RF.JEQ0713135:17.STATE").State("1");var ret = 1; [iseESPexec.cpp:12575]"
Wenn ich ".STATE" weglasse, geht auch nichts. Fehlermeldung:
"Error: IseESP::ScriptRuntimeError: dom.GetObject("BidCos-Wired.JEQ0713135:17").State("1");var ret = 1; [iseESPexec.cpp:12575]"
Über den Aufruf mit den Kanalnamen geht es aber, also ist das jetzt eher eine Frage der Neugier als der Funktion.

* Um die Dinge übersichtlicher zu gestalten, würde ich Geräteverknüpfungen und Timerstrings gerne in einem kommentierten Skript versammeln und dazu dem Timer den Inhalt von CMD_EXEC aus einem Skript zuweisen. Mit zum Beispiel

Code: Alles auswählen

domGetObject("CUxD.CUX2800001:1.CMD_EXEC").State(300r19*300/300r19*300)
geht das schon mal nicht. Das kommt ja bei der Auflistung der DPs des Kanltys SYSTEM in der CUxD auch nicht vor. Aber lässt sich das anders bewerkstelligen?

Grüße, EckartS
711 Kanäle in 113 Geräten und 134 CUxD-Kanäle in 24 CUxD-Geräten

Benutzeravatar
uwe111
Beiträge: 4820
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 245 Mal
Kontaktdaten:

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von uwe111 » 02.02.2018, 10:20

EckartS hat geschrieben: CMD_EXEX über die Seriennummer kriege ich nicht zum Laufen. Der Eintrag "extra/timer.tcl BidCos-Wired.JEQ0713135:17.STATE $STATE$" führt im Syslog zur Fehlermeldung
"Error: IseESP::ScriptRuntimeError: dom.GetObject("BidCos-RF.JEQ0713135:17.STATE").State("1");var ret = 1; [iseESPexec.cpp:12575]"
:shock: Das kann so nicht sein!

Beim Aufruf verwendest Du BidCos-Wired und in der Fehlermeldung steht BidCos-RF.
EckartS hat geschrieben:Wenn ich ".STATE" weglasse, geht auch nichts. Fehlermeldung:
Warum sollte das funktionieren? Dann fehlt doch der Datenpunkt.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

EckartS
Beiträge: 243
Registriert: 13.11.2012, 23:11
Wohnort: Nürnberg
Danksagung erhalten: 2 Mal

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von EckartS » 04.02.2018, 14:50

Hallo,

ich habe jetzt alles bereinigt und neu erstellt und es geht auch. Danke für die Hilfe. In die Timer-Notation muss man sich wirklich herein finden, aber dann erscheint sie ganz systematisch.

Noch einmal die Frage aber: Kann man einem CUxD-System.Timer den Inhalt von CMD_EXEC aus einem Skript zuweisen?

Grüße, EckartS
711 Kanäle in 113 Geräten und 134 CUxD-Kanäle in 24 CUxD-Geräten

Benutzeravatar
uwe111
Beiträge: 4820
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 245 Mal
Kontaktdaten:

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von uwe111 » 05.02.2018, 08:23

EckartS hat geschrieben:Noch einmal die Frage aber: Kann man einem CUxD-System.Timer den Inhalt von CMD_EXEC aus einem Skript zuweisen?
Ja, das kann man. Auch wenn es vom Entwickler ursprünglich nicht so gedacht war.

Code: Alles auswählen

object i1 = dom.GetObject("CUxD");
xmlrpc.PutParamset(i1,"CUX2800001:8","MASTER","CMD_EXEC","\"extra/timer.tcl BidCos-Wired.JEQ0713135:17.STATE $STATE$\"");
Wozu soll das gut sein?

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

EckartS
Beiträge: 243
Registriert: 13.11.2012, 23:11
Wohnort: Nürnberg
Danksagung erhalten: 2 Mal

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von EckartS » 06.02.2018, 15:04

@Uwe
Danke für den Tipp. Ich will gelegentlich (bei Zeit und schlechtem Wetter) versuchen, alle Elemente einer Abweseheitssimulation in einem Skript zu versammeln. Dann würde ein nackter 16fach-CUxD System.Timer mit CMD_EXEC und Timerstrings befüllt und alle Einstellungen samt den Zeitfenstern würden im Kopfteil des Skripts vorgenommen.
Grüße, EckartS
Zuletzt geändert von EckartS am 06.02.2018, 20:08, insgesamt 1-mal geändert.
711 Kanäle in 113 Geräten und 134 CUxD-Kanäle in 24 CUxD-Geräten

EckartS
Beiträge: 243
Registriert: 13.11.2012, 23:11
Wohnort: Nürnberg
Danksagung erhalten: 2 Mal

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von EckartS » 07.02.2018, 12:27

Hallo,
sehr gut, so geht es.
Vielen Dank für die Hilfe,
EckartS
711 Kanäle in 113 Geräten und 134 CUxD-Kanäle in 24 CUxD-Geräten

Mobileme
Beiträge: 319
Registriert: 23.02.2015, 06:53

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von Mobileme » 13.04.2018, 19:12

Hallo,

ich habe auch das Skript !300 r 19*300 / 300 r 19*300 am Laufen. Funktioniert im Flur super.
Nun möchte ich auch noch andere Lampen damit steuern, bei Abwesenheit. Kann ich das gleiche Skript nutzen oder müsste ich es verändern, wenn ich möchte, dass die beiden Lampen zu unterschiedlichen Zeiten an- bzw. ausgeschaltet werden?
Wenn ich das gleiche Skript für zwei Lampen nutzen würde, wäre es ja wohl so, dass beide gleichzeitig an und aus gehen oder?

Danke und Gruß

urpils
Beiträge: 464
Registriert: 27.08.2014, 10:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 9 Mal
Danksagung erhalten: 6 Mal

Re: Anwesenheitsimulation Lampen bei Abwesenheit schalten

Beitrag von urpils » 13.04.2018, 19:44

Du kannst das gleiche Skript nutzen. Durch den Random Anteil sind die Ein/Ausschalt-Zeiten ja verschieden.
Das Problem mit dem Spruch "Der Klügere gibt nach" ist, dass dann die Dummen die Welt regieren

Antworten

Zurück zu „HomeMatic allgemein“