Verbindung Hm und HmIP

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
dmsh
Beiträge: 4
Registriert: 10.06.2021, 22:06
System: CCU

Verbindung Hm und HmIP

Beitrag von dmsh » 10.06.2021, 23:23

Wahrscheinlich verfallen bei diesem Betreff gleich einige in Panik. Schon wieder das nie enden wollende Thema...
Eigentlich geht es auch darum.
Ich habe in meinem Wintergarten drei Dachfenster mit TFK's HMIP-SWDO, einem Wandthermostat HM-TC-IT-WM-W-EU und fünf Heizkörper mit
HM-CC-RT-DN Thermostaten. Das Wandthermostat und die Heizungsthermostate sind direkt verknüpft.
Normalerweise erstelle ich eine Gruppe und alles funktioniert bestens, aber... - geht nicht, weiß ich auch.
Das Wandthermostat wird nur manuell bedient und ich brauche nur die Funktion der "Fenster Auf" - Erkennung.
Nun dachte ich, ich schreibe ein kleines Script, welches diese Funktion übernimmt.

1. Wenn ein Fenster geöffnet wird, wird eine Systemvariable auf False gesetzt. (das funktioniert)
2. Diese Systemvariable ruft "bei Änderung" ein Scirpt auf. (das funktioniert)
3. Das Script liest den aktuellen Sollwert vom Wandthermostat aus und speichert ihn in einer weiteren Systemvariablen. (das funktioniert)
4. Das Script setzt den aktuellen Sollwert auf z.B. 8°C. (das funktioniert auch, allerdings etwas verzögert)
5. Wenn alle Fenster geschlossen sind, soll der gespeicherte Sollwert wieder an das Wandthermostat übergeben werden - und das geht nicht. Die Thermostate bleiben auf 8°C.

Hier nun mein Script:

Code: Alles auswählen

var svDachfenster = dom.GetObject("SV WG-Dachfenster").Value();
var AktuellerSollwert;
var GespSollwert;
var AbsenkTemp = 8.0;

! Wenn alle Fenster geschlossen sind
if (svDachfenster)
 {
  GespSollwert = dom.GetObject("SV Soll-Temp WG").Value();
  dom.GetObject("BidCos-RF.OExxxxxxxx:2.SET_TEMPERATURE").State(GespSollwert); 
 }
else  ! Wenn ein oder mehr Fenster geöffnet werden
 {
  AktuellerSollwert = dom.GetObject("BidCos-RF.OExxxxxxxx:2.SET_TEMPERATURE").Value();
  dom.GetObject("SV Soll-Temp WG").State(AktuellerSollwert);	
  dom.GetObject("BidCos-RF.OExxxxxxxx:2.SET_TEMPERATURE").State(AbsenkTemp);
 }
 
Der else-Zweig scheint zu funktionieren, das kann ich am Status der Systemvariablen sehen. Die Thermostate gehen ja auch auf 8°C.
Beim Schließen der Fenster (if-Zweig) passiert allerdings nichts.
Vielleicht hat ja jemand eine Idee...

Vielen Dank im Voraus
Dirk

MichaelN
Beiträge: 9650
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: Verbindung Hm und HmIP

Beitrag von MichaelN » 10.06.2021, 23:47

Dann wird die svDachfenster wohl nie true.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Xel66
Beiträge: 14148
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: Verbindung Hm und HmIP

Beitrag von Xel66 » 11.06.2021, 08:59

Ich habe eine ähnliche Lösung für die verzögerte Sollwertabsenkung für das Thermostat im Flur. Erst wenn die Haustür größer eine Minute offen steht, dann wird der Sollwert abgesenkt, damit nicht bei jeder Haustüröffnung das Heizkörperthermostat über den kompletten Stellbereich läuft und dabei die Batterien leernuckelt. Die Lösung funktioniert ohne jegliches Script. Ich habe einfach eine Systemvariable vom Typ Zahl erstellt und beim Öffnen der Tür wird die aktuelle Solltemperatur dort reingeschrieben. Beim Schließen der Tür wird der Sollwert ausgelesen und zurückgeschrieben. Auch ohne Script - einfach über Zuweisung über den weißen Zettel hinter der Solltemperatur.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

dmsh
Beiträge: 4
Registriert: 10.06.2021, 22:06
System: CCU

Re: Verbindung Hm und HmIP

Beitrag von dmsh » 11.06.2021, 20:03

Danke für eure Antworten.
Die Variable svDachfenster wird noch für andere Funktionen verwendet und die laufen fehlerfrei. Also wird die Variable auch true.

Der Vorschlag von Xel66 ist gut, aber irgendwie krieg ich es nicht hin. Meine Systemvariable für den Sollwert ist vom Typ Zahl und ich mache es wie im WebUI-Handbuch S.91 beschreiben. Bei mir fehlt allerdings das kleine Zettelchen...
Irgendwas übersehe ich wohl noch.

MichaelN
Beiträge: 9650
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: Verbindung Hm und HmIP

Beitrag von MichaelN » 11.06.2021, 20:08

Deine Fehler Analyse ist nicht vollständig. Tipps zum debugging siehe Signatur.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

dmsh
Beiträge: 4
Registriert: 10.06.2021, 22:06
System: CCU

Re: Verbindung Hm und HmIP

Beitrag von dmsh » 11.06.2021, 21:26

So, ich habe mir ein paar Dinge angesehen.
Ich habe am Wandthermostat eine Solltemp. von 17,5°C eingestellt und dann ein Fenster geöffnet.
Wenn ich das Script starte, wird der aktuelle Sollwert gespeichert und dann die Absenktemperatur (8°C) an das Wandthermostat gesendet.
Da ich nicht direkt den Sollwert am Wandthermostat ändere, werden die Werte erst nach 1-2 Minuten an die Heizungsthermostate geschickt. Ist nicht schlimm, aber was nun der Unterschied zwischen Sollwert schreiben und Sollwert am Rädchen einstellen ist, ist mir unklar.
Unter Status und Bedienung sehe ich auch, daß die Systemvariable "SV_SollTempWG" korrekt beschrieben wurde.

Bild

Jetzt schließe ich wieder alle Fenster und... kann aufhören zuschreiben :shock:
Ich habe keine Ahnung warum, aber nun geht es. Eigentlich habe ich nur den Namen der Systemvariablen geändert. Ich habe mal irgendwo gelesen, das SV's mit Leerzeichen Probleme machen können. :?:

Mich würde trotzdem interessieren wie Xel66 das ohne Script gemacht hat - man wird ja davon nicht blöder.

Also, vielen Dank
Dirk
Dateianhänge
FensterAUF.JPG

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 753 Mal

Re: Verbindung Hm und HmIP

Beitrag von shartelt » 11.06.2021, 21:29

man konnte doch den Fenster Auf status im WTH direkt setzen per Programm oder?

dmsh
Beiträge: 4
Registriert: 10.06.2021, 22:06
System: CCU

Re: Verbindung Hm und HmIP

Beitrag von dmsh » 11.06.2021, 21:41

Habe auch gedacht. Aber in der Scriptbeschreibung Teil4_Datenpunkte finde ich unter dem HM-TC-IT-WM-W-EU nur das:
Parameter WINDOW_OPEN_REPORTING
Typ: boolean
Zugriffsart: lesend, über Ereignisse
Standardwert: false

Da ich diesen Datenpunkt nur lesen kann, habe ich es nicht weiterverfolgt.
Sonst wäre das natürlich am schönsten.

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Verbindung Hm und HmIP

Beitrag von dtp » 14.06.2021, 13:11

dmsh hat geschrieben:
11.06.2021, 21:26
Ich habe mal irgendwo gelesen, das SV's mit Leerzeichen Probleme machen können. :?:
Nicht innerhalb der CCU. Bei mir haben alle SV, Geräte, Programme, DV, etc. mindestens einen Leerschritt im Namen. Läuft seit 10 Jahren unauffällig.

Tipp:

Code: Alles auswählen

dom.GetObject("SV Soll-Temp WG")
immer ersetzen durch

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("SV Soll-Temp WG")
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Antworten

Zurück zu „HomeMatic allgemein“