"Script" für das Setzen von 2 Temperaturprofilen

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Benutzeravatar
Black
Beiträge: 3707
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 98 Mal
Danksagung erhalten: 364 Mal
Kontaktdaten:

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von Black » 05.01.2021, 19:06

Gut, gegen einmal pro Woche spricht nix, diese Lösung ist nix um minütlich rumzuschreiben.
GRUND: Jedes schreiben auf die Mastersets bewirkt ein Schreiben ins Flash.. und die Anzahl Zyklen sind endlich, danach is des Flash am Ar....

Aber einmal pro woche... macht nix

So, hiermit kannst du die Temperaturen umschreiben....

Code: Alles auswählen

!- PutParamset Zuweisung vom SDV V4.06.01E LCL für Gerät: HM-CC-RT-DN
string stdErr=""; string stdOut="";
string TCL="";
TCL= TCL # " {TEMPERATURE_FRIDAY_1 {double 21.00}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_2 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_3 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_4 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_5 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_6 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_7 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_8 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_9 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_10 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_11 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_12 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_FRIDAY_13 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_1 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_2 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_3 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_4 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_5 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_6 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_7 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_8 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_9 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_10 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_11 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_12 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_MONDAY_13 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_1 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_2 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_3 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_4 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_5 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_6 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_7 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_8 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_9 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_10 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_11 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_12 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SATURDAY_13 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_1 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_2 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_3 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_4 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_5 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_6 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_7 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_8 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_9 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_10 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_11 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_12 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_SUNDAY_13 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_1 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_2 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_3 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_4 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_5 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_6 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_7 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_8 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_9 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_10 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_11 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_12 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_THURSDAY_13 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_1 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_2 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_3 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_4 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_5 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_6 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_7 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_8 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_9 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_10 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_11 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_12 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_TUESDAY_13 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_1 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_2 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_3 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_4 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_5 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_6 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_7 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_8 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_9 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_10 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_11 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_12 {double XXX}}"; !- DatenTyp double beachten
TCL= TCL # " {TEMPERATURE_WEDNESDAY_13 {double XXX}}"; !- DatenTyp double beachten

object oDEVICE= dom.GetObject (ID_DEVICES).Get ("Y_ANBAU_R1_HEIZ");    !------ Hier muss natürlich dein Gerätename rein !!!!!
object oIFace= dom.GetObject (oDEVICE.Interface () );
string sTCL= ^puts [xmlrpc ^ #oIFace.InterfaceUrl()# ^/ putParamset [list string \"^#oDEVICE.Address()#^\"] [list string \"MASTER\"] [list struct \"^#TCL#^\"]]^;
system.Exec ("/bin/sh -c 'echo \"load tclrpc.so; " # sTCL # "\" |tclsh'",&stdOut,&stdErr);
XXX natürlich gegen sinnige Zahlen , die du willst ersetzen, Teilen die zu nicht brauchst , löschen.

Und als Namen natürlich den Geräte!!!!! Namen des Thermostaten eintragen, dann sollte das gehen

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen - mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken.
Klick - und weg

technical contribution against annoying advertising

jp112sdl
Beiträge: 7708
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 416 Mal
Danksagung erhalten: 899 Mal
Kontaktdaten:

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von jp112sdl » 05.01.2021, 19:12

Black hat geschrieben:
05.01.2021, 19:06
bewirkt ein Schreiben ins Flash.. und die Anzahl Zyklen sind endlich, danach is des Flash am Ar....
Das EEPROM vom Thermostat?
Da braucht sich wohl niemand Sorgen machen.

Ausgehend von einem "am wenigsten haltbaren" EEPROM beim Atmel 328P AVR mit 100.000 Schreibzyklen, sollte das kaum jemand mit so einem Skript schaffen. :wink:
Falls ein externes EEPROM (24C32 wie es von eQ-3 gern mal verbaut wurde) zum Einsatz kommt, sind wir bei garantierten 1.000.000 Schreibzyklen.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

PN sind deaktiviert!

Benutzeravatar
Black
Beiträge: 3707
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 98 Mal
Danksagung erhalten: 364 Mal
Kontaktdaten:

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von Black » 05.01.2021, 19:16

sollte auch nur der Hinweis sein, derartige "Umschreibeschripte" bewusst einzusetzen....
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen - mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken.
Klick - und weg

technical contribution against annoying advertising

homematicmame
Beiträge: 25
Registriert: 07.07.2015, 15:26

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von homematicmame » 07.01.2021, 19:19

Hallo Black

Sorry für die lange Antwortzeit, hatte und habe viel um die Ohren.

Besten Dank für das Script, werde versuchen dies am Weekend umzusetzen.
Vermute ich muss da 2 Scripts im gleichen Stil schreiben, 1x für Temp Profil 1 und 1x für Temp Profil 2?
Zudem muss ich danach ein Programm erstellen mit einem Auslöser und dem entsprechenden Script? Habe da an einen Schalter oder die Fernbedienung als Auslöser gedacht.
Gibt es auch eine Möglichkeit, eine "Schaltfläche auf der GUI zu erstellen?

Gruss und nochmals besten Dank für deine Bemühungen.
Markus

homematicmame
Beiträge: 25
Registriert: 07.07.2015, 15:26

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von homematicmame » 17.01.2021, 18:43

Hallo

endlich zur Umsetzung gekommen und ich kann Erfolg (zumindest Teilerfolg) melden. Daher DANKE an euren Support!
Das Script macht exakt was es soll. Die jeweiligen Heizkörperthermostaten HM-CC-RT-DN werden auf die gesetzte Temperatur gestellt.
Teilerfolg, da die einzelnen Heizkörperthermostaten in verschiedenen Gruppen zusammengefasst sind, werden die Werte in der Gruppe aber leider nicht gesetzt.
Muss ich hier im Script den Gerätenamen (mein Bsp. "HZ WZ") durch den Gruppennamen (mein Bsp. "Team WZ") ersetzen?

Danke und Gruss
Markus

Benutzeravatar
Black
Beiträge: 3707
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 98 Mal
Danksagung erhalten: 364 Mal
Kontaktdaten:

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von Black » 17.01.2021, 19:11

hast du gruppe mit wandthernostat und heizkörperthermostate in einer gruppe ?
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen - mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken.
Klick - und weg

technical contribution against annoying advertising

homematicmame
Beiträge: 25
Registriert: 07.07.2015, 15:26

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von homematicmame » 18.01.2021, 10:48

Nein, keine Thermostate.
Habe dann etwas tiefer in der Gruppe nachgeschaut. Da ist mir aufgefallen, dass alle meine Heizkörper in dieser Gruppe verknüpft sind.
Für mich ist das ein ?..oder passt das?
Zur Info noch 2 Bilder
Dateianhänge
Verknüpfte Geräte.PNG
Verknüpfte Geräte.PNG (16.86 KiB) 115 mal betrachtet
Gruppengerät.PNG
Gruppengerät.PNG (10.35 KiB) 115 mal betrachtet

homematicmame
Beiträge: 25
Registriert: 07.07.2015, 15:26

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von homematicmame » 24.01.2021, 17:43

@BLACK
wäre dir so zu Dank verpflichtet, wenn du ein kurzes Update des Scripts zum Ansprechen der Gruppe geben könntest. Bzw. der Lösung zu meiner Situation
Natürlich gerne auch von anderen Forum Mitgliedern.
DANKE Markus

Benutzeravatar
Black
Beiträge: 3707
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 98 Mal
Danksagung erhalten: 364 Mal
Kontaktdaten:

Re: "Script" für das Setzen von 2 Temperaturprofilen

Beitrag von Black » 24.01.2021, 18:02

ich habe bei mir keine Gruppen. die DV verschaltungen leg ich mir immer schnell selber an.

zu deiner Fragestellung:

Du musst den gerätenamen der Gruppe angeben anstatt des Devices... und ganz wichtig, die Mastersets heissen anders:

da gehört ein "P1_" noch an den Anfang des jeweiligen strings.

also "P1_TEMPERATURE........"

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen - mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken.
Klick - und weg

technical contribution against annoying advertising

Antworten

Zurück zu „RaspberryMatic“