Jeder Anfang ist schwer...

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
home3470
Beiträge: 2
Registriert: 15.11.2017, 00:37

Jeder Anfang ist schwer...

Beitrag von home3470 » 15.11.2017, 00:42

Hallo User,

ich bin völlig neu in dem Thema HomeMatic.

Ich habe die CCU2 und dazu ein Schaltaktor und den Außentemperatursensor.
Nun will ich in Abhängigkeit der Außentemperatur den Aktor ein-bzw. ausschalten und daran scheitere ich.

Hier mein CODE

Code: Alles auswählen

var k1= dom.GetObject("Anst. Heizung").DPByHssDP("STATE");
var b1= dom.GetObject("Aussentemperatur").DPByHssDP("TEMPERATURE").Value();

var soll_aktuell= dom.GetObject("Sollwert Aktuell");
var soll=0;

if(soll_aktuell == 0) { soll= 2;}
if(soll_aktuell == 1) { soll= 6;}
if(soll_aktuell == 2) { soll= 15;}

if(b1<soll) { k1.State(1); }
if(b1>soll) { k1.State(0); }
Sollwert Aktuell ist eine Systemvariable (Werteliste).

Der Aktor schaltet bei den Scriptdurchlauf immer auf false, egal welche Temperatur der Fühler misst oder welcher Sollwert eingestellt ist.

Kann mir jemand auf die Sprünge helfen für die ersten Schritte?
Vielen Dank.

Mfg
Paul

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Jeder Anfang ist schwer...

Beitrag von alchy » 15.11.2017, 01:19

soll_aktuell ist keine Zahl sondern das Object Sollwert Aktuell als String
ergo
soll bleibt immer 0
und
der Vergleich (b1<soll) wird also nur bei Aussentemperaturen unter dem Gefrierpunkt wahr.
so wie dein Script aussieht.

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.

Bratmaxe
Beiträge: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

Re: Jeder Anfang ist schwer...

Beitrag von Bratmaxe » 15.11.2017, 07:48

Das sollte man doch auch einfach über ein Klickibunit Programm erledigen können oder?

Code: Alles auswählen

var k1= dom.GetObject("Anst. Heizung").DPByHssDP("STATE");
var b1= dom.GetObject("Aussentemperatur").DPByHssDP("TEMPERATURE").Value();

var soll_aktuell= dom.GetObject(ID_SYSTEM_VARIABLES).Get("Sollwert Aktuell").Value();
var soll=0;

if(soll_aktuell == 0) { soll= 2;}
if(soll_aktuell == 1) { soll= 6;}
if(soll_aktuell == 2) { soll= 15;}

if(b1<soll) { k1.State(1); }
if(b1>soll) { k1.State(0); }
Zuletzt geändert von Bratmaxe am 15.11.2017, 15:37, insgesamt 1-mal geändert.
Gruß Carsten

home3470
Beiträge: 2
Registriert: 15.11.2017, 00:37

Re: Jeder Anfang ist schwer...

Beitrag von home3470 » 15.11.2017, 09:24

Vielen Dank für die Antworten.

Das ist mir gestern garnicht mehr aufgefallen das es nur ein Object ist. Mit dem Anhang Value() arbeitet das Programm natürlich wie es soll.

Gibt es eigentlich Möglichkeiten den Sollwert Stufenlos anzugeben? Beispiel eine Texteingabe oder einen Schieber mit definierten Zahlenbereich? Habe bisher nur die Lösung gehabt mit dem virtuellen Taster hochzuzählen, keine schöne Lösung.

Vielen Dank

Mit freundlichen Grüßen
Paul

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Jeder Anfang ist schwer...

Beitrag von manfredh » 15.11.2017, 09:37

home3470 hat geschrieben:...
Gibt es eigentlich Möglichkeiten den Sollwert Stufenlos anzugeben? Beispiel eine Texteingabe oder einen Schieber mit definierten Zahlenbereich?
Eine Anwendung, für die eine übergeordnete Software wie z.B. ioBroker mit grafischer Oberfläche prädestiniert wäre.

Aber das war ja nicht das eigentliche Thema.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Jeder Anfang ist schwer...

Beitrag von alchy » 15.11.2017, 10:05

Bratmaxe hat geschrieben: Das sollte man doch auch einfach über ein Klickibunit Programm erledigen können oder?
eigentlich schon.
Bei der eigentlichen Anforderung
Nun will ich in Abhängigkeit der Außentemperatur den Aktor ein-bzw. ausschalten
würde ich erstmal auch nicht auf ein Script kommen.

Trotzdem der Hinweis. In den Code hast du einen neuen, oder weiteren Fehler eingebaut.
an k1 gehört kein .Value()
Und damit sollte das Ganze *IMHO* in einem ScriptRuntimeError enden.
home3470 scheint deinen Code nicht zu verwenden, denn er schreibt ja das es nun geht. :mrgreen:

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.

Bratmaxe
Beiträge: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

Re: Jeder Anfang ist schwer...

Beitrag von Bratmaxe » 15.11.2017, 15:37

hast natürlich föllig Recht. habe ich angepasst!

Danke!
Gruß Carsten

Antworten

Zurück zu „HomeMatic allgemein“