FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ronaldo am 01 Dezember 2016, 21:50:10

Titel: [gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 01 Dezember 2016, 21:50:10
Moin,
ich bin gerade dabei meine Heizungssteuerung mit den Devolo MT2650-Thermostaten einzurichten.
Dazu bin ich soweit nach dem Wiki-Artikel zu HeatingControl vorgegangen, das gröbste funktioniert auch, jedoch ein entscheidendes Detail nicht, nämlich das (Rück-)Setzen der Temperaturen nach dem Zeitplan.
Wenn ich jetzt den Automatik-Dummy, mit folgendem Inhalt des dazugehörigen DOIF ([HeizungsAutomatik] eq "on") (Heating_Control_SetAllTemps(),set teleBot message Heizungsautomatik aktiv!) DOELSE (set Heizungsventile thermostatSetpointSet 17.0,set teleBot message Heizungsautomatik deaktiviert!) ausschalte, werden meine Thermostate auch brav alle auf 17° gesetzt.
Wenn ich den aber wieder aktiviere und er die Sollwerte der Heizpläne wiederherstellen soll macht er das nicht und ich bekomme laut Log immer folgende Fehlermeldung: "HeatingControl.Aktivator: Heating_Control_SetAllTemps(): Unknown command Heating_Control_SetAllTemps(), try help."
Ebenso wenn ich den Sollwert des im Wohnzimmer befindlichen Thermostats durch das DOIF (folgender Inhalt: ([Terrassentuer] eq "open") (set Thermostat_WZ thermostatSetpointSet 15) DOELSE (Heating_Control_SetTemp("Thermostat_WZ"))eines Fensterkontaktes ändere ("Fensterstatus_WZ: Heating_Control_SetTemp("Thermostat_WZ"): Unknown command Heating_Control_SetTemp("Thermostat_WZ"), try help.").

Ich vermute mal Ursache ist der Umstand, dass Heating Control die Werte ja mittels des commands "desired-temp|desiredTemerature" setzt, die Devolo/Danfoss-Thermostate haben dafür aber das command "thermostatSetpointSet".
Wenn dem so ist, kann man das einfach in der Datei 98_heating_control.pm ändern, oder ist der Aufwand dafür größer (meine Perl-Kentnisse sind eher rudimentär)? Bzw. gibt es ein ähnlich komfortables Modul um eben auch Zwave-Devices entsprechend zu schalten?
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 02 Dezember 2016, 09:26:34
es kann sein, das hier die Syntax fasch ist:
(Heating_Control_SetTemp("Thermostat_WZ"))
Der Aufruf von Heating_Control_SetTemp muss als Perlcode an DOIF übergeben werden. Wie auch immer das geht.


Ich vermute mal Ursache ist der Umstand, dass Heating Control die Werte ja mittels des commands "desired-temp|desiredTemerature" setzt, die Devolo/Danfoss-Thermostate haben dafür aber das command "thermostatSetpointSet".
Wenn dem so ist, kann man das einfach in der Datei 98_heating_control.pm ändern, oder ist der Aufwand dafür größer (meine Perl-Kentnisse sind eher rudimentär)? Bzw. gibt es ein ähnlich komfortables Modul um eben auch Zwave-Devices entsprechend zu schalten?


ja, das wird so sein.
Wenn du mir mit einem list die Werte der Thermostate lieferst, kann ich Devolo/Danfoss-Thermostate in die Automatik aufnehmen.

Bis zum Einchecken kannst du dir folgendermaßen helfen:

define hc Heating_Control dev 19:00|25 {fhem("set $NAME thermostatSetpointSet $EVENT")}


mit verbose 5 auf dem HC testen ob es funktioniert.
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 02 Dezember 2016, 11:07:44
Zitat von: Dietmar63 am 02 Dezember 2016, 09:26:34
es kann sein, das hier die Syntax fasch ist:
(Heating_Control_SetTemp("Thermostat_WZ"))
Der Aufruf von Heating_Control_SetTemp muss als Perlcode an DOIF übergeben werden. Wie auch immer das geht.
Laut Commandref Heating_Control_SetTemp(<"HC-device">) or Heating_Control_SetAllTemps() sollte es eigentlich gehen, ich vermute da wird intern der selbe Befehl (desire-Temp) hinterstehen. Ist aber erstmal nicht so tragisch, kann vorerst hinten anstehen. ;-)

Zitat von: Dietmar63 am 02 Dezember 2016, 09:26:34
Wenn du mir mit einem list die Werte der Thermostate lieferst, kann ich Devolo/Danfoss-Thermostate in die Automatik aufnehmen.
Danke, die list sieht wie folgt aus:Internals:
DEF        d734e6a5 8
IODev      ZWAVE1
LASTInputDev ZWAVE1
MSGCNT     368
NAME       Thermostat_WZ
NR         60
STATE      wakeupInterval 86400 1
STILLDONETIME 0
TYPE       ZWave
ZWAVE1_MSGCNT 368
ZWAVE1_RAWMSG 00040008028407
ZWAVE1_TIME 2016-12-02 10:55:56
ZWaveSubDevice no
homeId     d734e6a5
isWakeUp   1
lastMsgSent 1480672558.98863
nodeIdHex  08
Readings:
2016-12-02 10:55:10   CMD             ZW_APPLICATION_UPDATE
2016-12-02 10:55:56   battery         71 %
2016-12-02 10:55:56   ccsOverride     no, unused
2016-10-23 16:12:27   ccs_fri         23:00 -4.5 07:00 0.0
2016-10-23 16:12:27   ccs_mon         22:00 -4.5 16:00 0.0
2016-10-23 16:12:27   ccs_sat         23:00 -4.5 07:00 0.0
2016-10-23 16:12:27   ccs_sun         22:00 -4.5 07:00 0.0
2016-10-23 16:12:27   ccs_thu         22:00 -4.5 16:00 0.0
2016-10-23 16:12:27   ccs_tue         22:00 -4.5 16:00 0.0
2016-10-23 16:12:27   ccs_wed         22:00 -4.5 16:00 0.0
2016-10-27 21:25:04   clock           thu 22:25
2016-10-23 13:19:26   model           Danfoss devolo Thermostat MT2650
2016-10-23 13:19:26   modelConfig     danfoss/z.xml
2016-10-23 13:19:26   modelId         0002-0005-0175
2016-10-23 14:21:44   neighborList    ZWAVE1 Fensterleuchte Flurleuchte Beetbeleuchtung
2016-10-23 16:12:27   protection      Local: unprotected RF: unprotected
2016-12-02 10:55:56   setpointTemp    11.00 C heating
2016-10-23 13:19:18   state           wakeupInterval 86400 1
2016-12-02 10:55:56   temperature     20.23 C
2016-10-23 14:22:54   thermostatSetpointSupported heating
2016-12-02 10:55:59   timeToAck       0.029
2016-12-02 10:55:59   transmit        OK
2016-12-02 10:55:56   wakeup          notification
2016-10-23 15:42:56   wakeupIntervalCapabilitiesReport min 60 max 1800 default 300 step 60
2016-12-01 20:56:00   wakeupReport    interval 300 target 1
Attributes:
   Heizungen  Heizungsventile
   IODev      ZWAVE1
   classes    BATTERY CLIMATE_CONTROL_SCHEDULE CLOCK MANUFACTURER_SPECIFIC MULTI_CMD PROTECTION SENSOR_MULTILEVEL THERMOSTAT_SETPOINT VERSION WAKE_UP MARK CLIMATE_CONTROL_SCHEDULE CLOCK MULTI_CMD
   icon       sani_heating
   room       Wohnzimmer
   userattr   Heizungen Heizungen_map structexclude
   vclasses   BATTERY:1 CLIMATE_CONTROL_SCHEDULE:1 CLOCK:1 MANUFACTURER_SPECIFIC:1 MULTI_CMD:1 PROTECTION:2 SENSOR_MULTILEVEL:6 THERMOSTAT_SETPOINT:2 VERSION:1 WAKE_UP:2

Im Zuge dessen habe ich dann später noch eine Frage zum Ecomode (da bekomme ich immer einen Fehler weil setpointTemp keinen reinen Zahlwert liefert (sondern noch das "heating" dahinter), was zu einer Fehlermeldung bei der Subtraktion führt, aber trotzdem korrekt gesetzt wird. Wie gesagt später...

Den Rest werde ich wohl erst morgen testen können, aber danke bis hierher. :-)
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Deckoffizier am 02 Dezember 2016, 18:48:11
Hallo Ronaldo,

irgendwie habe ich das Gefühl das Dein Problem in Verbindung mit meinem Post am 29.11.2016 Thema HASH im Log steht.
Habe auch stundenlang probiert mit DOIF die Temperatur nach Fensteröffnung wieder hinzubekommen.

Bin dann auf notify umgestiegen und es funktioniert in der Art wie

define fk_buero_closed notify TK_OG_Buero_DaFenster:Geschlossen {Heating_Control_SetTemp("HC_OG_Buero")}   

obwohl ich es gerne wegen der Einheitlichkeit mit dem Fensteröffnen für Temperatursenkung zusammen in einem DOIF hätte.

Vielleicht erklärt mal einer von den Programmierern woran es haken könnte.

Danke und Grüße Hans-Jürgen   
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 03 Dezember 2016, 00:27:06
habe die doku geändert - wird demnächst eigecheckt.
Heating_Control_SetTemp("HC-device") or Heating_Control_SetAllTemps()
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 04 Dezember 2016, 22:48:05
98_Heating_Control, 98_WeekdayTimer:
-  a bug fixed when starting a WDT or a HC an trying to switch in the past. 
-  now being able to use on-till:13:30:30 as a parameter
-  the parameter can now be a Perlcode
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Deckoffizier am 05 Dezember 2016, 21:38:34
Hallo Dietmar63,

könntest Du mir bitte beantworten ob nach Deinem Fix Heating_Control_SetTemp(<"HC-device">) in Verbindung in Benutzung eines DOIF funktioniert ohne HASH Meldungen im Log
oder ob vermutlich ich Murks gebaut habe.

Damit man dieses  in Zukunft auch mit DOIF nach Fenster,Tür schließen nutzen kann.

Danke vielmals

Hans-Jürgen
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 06 Dezember 2016, 02:22:07
Nein, kann ich nicht beantworten
DOIF nutze ich nicht
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: juergen012 am 06 Dezember 2016, 10:36:08
Hallo, auch bei meiner Installation habe ich das Problem mit dem "HASH-Fehler"., wenn ich z.B. {Heating_Control_SetTemp("hc_Schlafzimmer")} eingebe. Meine Thermostate sind von Homematic. Nur wenn ich{Heating_Control_SetAllTemps()} aufrufe, kommt keine Fehlermeldung. Dabei hatte es schon mal mit DOIF funktioniert. Notify scheint auch keine Lösung zu sein..

Gruß
Jürgen K.

EDIT: mit dieser älteren Version von Heating_Cotrol klappt es bei mir wieder ohne Fehlermeldung.
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Deckoffizier am 06 Dezember 2016, 14:08:26
Hallo  juergen012,

Danke für den Anhang !

Werde ich demnächst ausprobieren.
Notify in der Art nach Fenster schließen funktioniert für ein Raum TK_OG_Buero_DaFenster:Geschlossen {Heating_Control_SetTemp("HC_OG_Buero")}.

{Heating_Control_SetAllTemps()} hatte bei mir auch mit DOIF funktioniert nur es wirkt ja auf alle Stellglieder auch bei denen wo die Fenster noch offen sind also somit keine Lösung.

Heating_Control_SetTemp("HC-device") hat zwar auch Wirkung gezeigt aber eben in konstanter Boshaftigkeit alle 10 Minuten dieses HASH ins Log geschrieben.

Etwas tröstlich für mich, daß es mich nicht nur alleine betroffen hatte, Danke für die Rückmeldung.

Gruß
Hans-Jürgen
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 08 Dezember 2016, 21:04:30
Zitat von: Dietmar63 am 02 Dezember 2016, 09:26:34define hc Heating_Control dev 19:00|25 {fhem("set $NAME thermostatSetpointSet $EVENT")}

mit verbose 5 auf dem HC testen ob es funktioniert.
Sorry, bin jetzt erst zum Testen gekommen...
Habe den hc mal so erstellt und das ganze funktioniert, die Thermostate schalten nach Zeit :)
Ein dickes "Danke" dafür.
2016.12.09 19:00:00 4: [hc] time=19:00/1481306400 delay=0, nextDelay=60, nextRetry=1481306460
2016.12.09 19:00:00 4: [hc] delayedExecutionCond:0
2016.12.09 19:00:00 4: [hc] result of delayedExecutionCond:0
2016.12.09 19:00:00 4: [hc] list of window sensors found: 'hc'
2016.12.09 19:00:00 4: [hc] condition: - Tage:0,1,2,3,4,5,6
2016.12.09 19:00:00 5: [hc] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2016.12.09 19:00:00 5: [hc] result of condition:1
2016.12.09 19:00:00 4: [hc] Update   - timer seems to be active today: 0123456|19:00|25.0
2016.12.09 19:00:00 4: [hc] device type ZWave: recognized, setModifier:
2016.12.09 19:00:00 4: [hc] aktParam: newParam:25.0 - is  not disabled
2016.12.09 19:00:00 4: [hc] command: '{fhem("set $NAME thermostatSetpointSet $EVENT")}' executed with %EVENT=>25.0,%NAME=>Thermostat_WZ
2016.12.09 19:00:00 3: ZWave set Thermostat_WZ thermostatSetpointSet 25.0
2016.12.09 19:00:00 3: set Thermostat_WZ thermostatSetpointSet 25.0 : Scheduled for sending after WAKEUP
2016.12.09 19:00:00 3: Scheduled for sending after WAKEUP


Bleibt nur noch das Problem mit dem Zurückschalten via Heating_Control_SetTemp("HC-device") und Heating_Control_SetAllTemps(), da bekomme ich nämlich noch den gleichen Fehler. :/
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 14 Dezember 2016, 21:24:06
Heating_Control_SetTemp("HC-device")  funktioniert nur dann wenn du am HC das Attribut switchInThePast gesetzt hast.

Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 16 Dezember 2016, 19:40:03
Zitat von: Dietmar63 am 14 Dezember 2016, 21:24:06
Heating_Control_SetTemp("HC-device")  funktioniert nur dann wenn du am HC das Attribut switchInThePast gesetzt hast.
Achso. Ich nehme mal an das muss dann auf 1 stehen. ;-)
Leider bekomme ich immernoch die Fehlermeldung :-(
Fensterstatus_WZ: Heating_Control_SetTemp("Heizung_WZ"): Unknown command Heating_Control_SetTemp("Heizung_WZ"), try help.

Hier mal die list des HC:

Internals:
   COMMAND
   CONDITION  (ReadingsVal("HeizungsAutomatik", "state", "") eq "on")
   DEF        Thermostat_WZ 8|16:00|21.5 8|22:00|17 7|06:00|21.5 7|22:00|17 (ReadingsVal("HeizungsAutomatik", "state", "") eq "on")
   DEVICE     Thermostat_WZ
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       Heizung_WZ
   NR         71
   Profil 0: Sonntag 06:00:00 21.5, 22:00:00 17
   Profil 1: Montag 16:00:00 21.5, 22:00:00 17
   Profil 2: Dienstag 16:00:00 21.5, 22:00:00 17
   Profil 3: Mittwoch 16:00:00 21.5, 22:00:00 17
   Profil 4: Donnerstag 16:00:00 21.5, 22:00:00 17
   Profil 5: Freitag 16:00:00 21.5, 22:00:00 17
   Profil 6: Samstag 06:00:00 21.5, 22:00:00 17
   Profil 7: Wochenende 06:00:00 21.5, 22:00:00 17
   Profil 8: Werktags 16:00:00 21.5, 22:00:00 17
   STATE      21.5
   STILLDONETIME 0
   TYPE       Heating_Control
   Readings:
     2016-12-16 19:24:24   currValue       21.5
     2016-12-08 20:03:01   disabled        0
     2016-12-16 19:24:24   nextUpdate      2016-12-16 22:00:00
     2016-12-16 19:24:24   nextValue       17
     2016-12-16 19:24:24   state           21.5
   SWITCHINGTIMES:
     8|16:00|21.5
     8|22:00|17
     7|06:00|21.5
     7|22:00|17
   Timer:
     Heizung_wz_1:
       HASH       Heizung_WZ
       MODIFIER   1
       NAME       Heizung_WZ_1
       immerSchalten 1
     Heizung_wz_2:
       HASH       Heizung_WZ
       MODIFIER   2
       NAME       Heizung_WZ_2
     Heizung_wz_4:
       HASH       Heizung_WZ
       MODIFIER   4
       NAME       Heizung_WZ_4
     Heizung_wz_settimerofday:
       HASH       Heizung_WZ
       MODIFIER   SetTimerOfDay
       NAME       Heizung_WZ_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
     Heizung_wz_delayed:
       HASH       Heizung_WZ
       MODIFIER   delayed
       NAME       Heizung_WZ_delayed
   Daynumber:
     !$we       8
     $we        7
     di         2
     do         4
     fr         5
     mi         3
     mo         1
     sa         6
     so         0
   Helper:
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
     Switchingtime:
       0:
         06:00:00   21.5
         22:00:00   17
  ...
Attributes:
   disable    0
   group      Heizplan
   room       Heizung
   switchInThePast 1
   verbose    5
   windowSensor Terrassentuer

Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 16 Dezember 2016, 20:36:40
Heating_Control_SetTemp("... ")  ist aber richtig
Hast du eine alte Version des Programms?
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 18 Dezember 2016, 06:47:59
Zitat von: Dietmar63 am 16 Dezember 2016, 20:36:40
Heating_Control_SetTemp("... ")  ist aber richtig
Hast du eine alte Version des Programms?
Eigentlich nicht,
Latest Revision: 12787.
98_Heating_Control.pm 12715 2016-12-04 21:42:11Z dietmar63

Hatte auch die Module immer fleißig aktuell gehalten...
Muss bei Heating_Controll_SetTemp("...") eigentlich das HC (bei mir Heizung_WZ) oder das zum HC gehörige Thermostat (das wäre Thermostat_WZ) eingetragen werden?
Hatte es allerdings auch mit beidem getestet, kam bei mir aufs gleiche raus. :(
Mit Heating_Control_SetallTemps() geht es ja auch nichtHeatingControl.Aktivator: Heating_Control_SetAllTemps(): Unknown command Heating_Control_SetAllTemps(), try help.
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 18 Dezember 2016, 08:42:07
Kannst du den Code posten, wie du Heating_Control_SetTemp (... ) aufrufst
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 18 Dezember 2016, 11:39:13
Einmal aus dem HeatingControl.Aktivator([HeizungsAutomatik] eq "on") (Heating_Control_SetAllTemps(),set teleBot message Heizungsautomatik aktiv!) DOELSE (set Heizungsventile thermostatSetpointSet 17.0,set teleBot message Heizungsautomatik deaktiviert!)
dann einmal aus dem Eco-Mode.Aktivator ([HeizungsAbsenkung] eq "on") ({ecomode}) DOELSE ({Heating_Control_SetAllTemps()})
und aus dem Fensterstatus ([Terrassentuer] eq "open") (set Thermostat_WZ thermostatSetpointSet 11) DOELSE (Heating_Control_SetTemp("Heizung_WZ")).
Getestet habe ich bisher aber immer nur mit dem HeatingControl.Aktivator und Fensterstatus.
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 18 Dezember 2016, 19:43:32
Heating_Control_SetTemp("Heizung_WZ") ist Perlcode.
Der muss in DOIF bestimmt immer in {} geschrieben werden, so wie du es im Eco-Mode.Aktivator  gemacht hast.
Titel: Antw:Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 19 Dezember 2016, 19:27:06
Wohoo, Dietmar, ich danke dir, genaus so ist es.
Nun tuts genau wie es soll. :)
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 19 Dezember 2016, 20:14:52
Durch die Diskussion über schalten vergangener Definitionen bin ich auf eine neue Idee gebracht worden Heizungen/Thermostate einfacher und universeller  zu erkennen.

Die Änderung läuft bei mir und ich checke in Kürze ein.
Für ZWAVE benötige ich nur das auszuführende Kommando.

Es scheint mehrere Möglichkeiten zu geben :

setpointHeating ...

Bitte Möglichkeiten posten

Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 22 Dezember 2016, 20:32:09
Sorry, habe seit dem es gelöst war nicht mehr reingeschaut...

Es gibt "setpointHeating", "setpointCooling" und "thermostatSetpointSet" (welches ich ausschließlich benutze).
setpointHeating und thermostatSetpointSet scheinen das gleiche zu bewirken. Vermutlich weil das Thermostat (Danfoss devolo Thermostat MT2650) als thermostatSetpointSupported ein "heating" ausgibt. Ich weiß nicht, ob es noch spezielle Kühlthermostaten gibt, bei denen dann analog zu diesem der Parameter setpointCooling greift (der scheint bei mir nichts zu bewirken).
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 22 Dezember 2016, 22:15:59
Kannst du mir Beispiele für die jeweiligen Aufrufe schicken
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 23 Dezember 2016, 12:30:46
Ja, aber leider erst ab dem 29.12., vorher bin ich nicht mehr zu hause.
Ein schönes Weihnachtsfest wünsche ich bis dahin. :)
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 27 Dezember 2016, 05:35:28
Ging doch schon eher... :)

Also, wie gesagt diese drei Befehle gibt es:
set Thermostat_WZ setpointCooling 23
set Thermostat_WZ setpointHeating 21
set Thermostat_WZ thermostatSetpointSet 18.0

Wobei setpointHeating und setpointCooling nur als ganze Zahlen gehen, thermostatSetpointSet auch mit Nachkommastellen.
Allerdings führen nur setpointHeating und thermostatSetpointSet bei mir auch zum Setzen der Solltemperatur, setpointCooling tut das nicht; vermutlich weil es das Reading thermostatSetpointSupported, welches mir ausschließlich ein "heating" liefert, gibt; weswegen ich vermute, dass es da u.U. auch Thermostate speziell fürs Kühlen geben könnte.
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 27 Dezember 2016, 23:35:34
bitte mal probieren ob zwave jetzt erkannt wird.
Übrigens zwave wird über desired-temp geschaltet.
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 31 Dezember 2016, 11:07:34
Zitat von: Dietmar63 am 27 Dezember 2016, 23:35:34
bitte mal probieren ob zwave jetzt erkannt wird.
Übrigens zwave wird über desired-temp geschaltet.
Sorry, dass ich mich erst jetzt melde...
Meinst du jetzt das Schalten der Z-wave-Komponenten via Heating_Control_SetTemp("HC-Device") bzw. Heating_Control_SetAllTemps()?
Das funktioniert nun (zumindest letzteres (das Aus- und wieder Einschalten via AutomatikAktivator und Ecomode funzt), wenn ich im HC statt des "{fhem("set $NAME thermostatSetpointSet $EVENT")} ein {Heating_Control_SetTemp("Thermostat_Bad")} eintrage scheint es nicht zu klappen)...

Beim Testen des Eco-Modes ist mir allerdings was aufgefallen...
Es gibt wohl doch einen Unterschied zwischen SetpointHeating und ThermostatSetpointSet.
Man kann im Thermostat selbst auch ein Zeitprogramm hinterlegen. Dieses Änderungen werden mit relativen Temparaturen zu dem offenbar dafür gesetzten SetpointHeating realisiert (also wenn der SetpointHeating z.B. bei 21° liegt und ich will über Nacht 18 haben, dann sage ich dem Zeitprogramm im Thermostat meinetwegen 22:00 Uhr: -3). ThermostatSetpointSet scheint höher priorisiert als SetpointHeating (der Wert bleibt nämlich trotzdem im Thermostat erhalten). Aufgefallen ist mir das ganze, weil der Eco-Mode sich nämlich auf den Wert von SetpointHeating bezieht.

Was mir im Zuge dessen aufgefallen ist: Kann man nur einen Fensterkontakt pro HC definieren?
Denn wenn ich dort zwei, mit Komma oder Semikolon getrennt eintrage, dann verlinkt er mir nur den ersten zum entsprechenden Device...
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 31 Dezember 2016, 12:57:59
Zitat
Was mir im Zuge dessen aufgefallen ist: Kann man nur einen Fensterkontakt pro HC definieren?
Denn wenn ich dort zwei, mit Komma oder Semikolon getrennt eintrage, dann verlinkt er mir nur den ersten zum entsprechenden Device...

Ich meine es funktioniert eine Liste.

HC sollte ZWAVE automatisch erkennen. Ich musste die Änderung aber wieder zurückziehen - ist noch nicht in Ordnung.
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 31 Dezember 2016, 15:14:42
Zitat von: Ronaldo am 31 Dezember 2016, 11:07:34
Meinst du jetzt das Schalten der Z-wave-Komponenten via Heating_Control_SetTemp("HC-Device") bzw. Heating_Control_SetAllTemps()?
Das funktioniert nun (zumindest letzteres (das Aus- und wieder Einschalten via AutomatikAktivator und Ecomode funzt), wenn ich im HC statt des "{fhem("set $NAME thermostatSetpointSet $EVENT")} ein {Heating_Control_SetTemp("Thermostat_Bad")} eintrage scheint es nicht zu klappen)...
Muss mich diesbezüglich übrigens korrigieren, habe ja in dem DOIF vom Fensterstatus auch das "Heating_Control_SetTemp("Heizung_Bad")" drin und dort schaltet es sauber zurück.

//Edit: im DOIF des Fensterkontaktes funktionierts im HC nicht... :/
Hattes du es deswegen zurückgezogen?

Zitat von: Dietmar63 am 27 Dezember 2016, 23:35:34
Übrigens zwave wird über desired-temp geschaltet.
Woher hast du die Info (rein interessehalber)?

Zitat von: Dietmar63 am 31 Dezember 2016, 12:57:59
Ich meine es funktioniert eine Liste.
Wenn ich beide mit Komma trenne, dann erkennt er nur den ersten als vorhandenes Device (wird von FHEM dann ja verlinkt), wenn ich sie mit Leerzeichen oder Semikolon trenne, keines von beiden... :/
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 31 Dezember 2016, 18:29:09
Zurück gezogen, weil es Fehler verursacht hat.

Die Info kam von Rudi

Ich sehe nochmal nach wie die Trennung aussehen muss
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 31 Dezember 2016, 18:34:44
Versuch es mal einfach mit einem Leerzeichen
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 01 Januar 2017, 12:36:39
Ein frohes neues Jahr wünsche ich. :)

Zitat von: Dietmar63 am 31 Dezember 2016, 18:34:44
Versuch es mal einfach mit einem Leerzeichen
Geht nicht, dann nimmt er keinen der beiden Fensterkontakte...

Apropro...
wie ist das, wenn mir nicht der state das open oder closed liefert, sondern das Reading alarm?
Hintergrund ist, dass ich die Tür-/Fensterkontakte von Fibaro habe. Werksseitig liefern die über das Reading state entweder "open" oder "closed".
Nun kann man die aber zusätzlich mit einem Temperatursensor bestücken, was ich bei beiden Kontakten im Kinderzimmer getan habe. Dann liefert das Reading state aber nur "wakeupInterval 86400 1" und das Reading alarm liefert mir " AccessControl: Window/Door is closed" bzw. " AccessControl: Window/Door is open".
Am besten das ganze dann über einen dummy laufen lassen, oder?
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 01 Januar 2017, 12:45:47
auch ein frohes neues Jahr

  my %contacts =  ( "CUL_FHTTK"       => { "READING" => "Window",          "STATUS" => "(Open)",        "MODEL" => "r" },
                    "CUL_HM"          => { "READING" => "state",           "STATUS" => "(open|tilted)", "MODEL" => "r" },
                    "EnOcean"         => { "READING" => "state",           "STATUS" => "(open)",        "MODEL" => "r" },
                    "ZWave"           => { "READING" => "state",           "STATUS" => "(open)",        "MODEL" => "r" },
                    "MAX"             => { "READING" => "state",           "STATUS" => "(open.*)",      "MODEL" => "r" },
                    "WeekdayTimer"    => { "READING" => "delayedExecution","STATUS" => "^1\$",          "MODEL" => "a" },
                    "Heating_Control" => { "READING" => "delayedExecution","STATUS" => "^1\$",          "MODEL" => "a" }
                  );
                 
  my $fensterKontakte = AttrVal($hash->{NAME}, "windowSensor", "")." ".$hash->{NAME};
  $fensterKontakte =~ s/^\s+//;
  $fensterKontakte =~ s/\s+$//;
 
  Log3 $hash, 4, "[$name] list of window sensors found: '$fensterKontakte'";
  if ($fensterKontakte ne "" ) {
     my @kontakte = split("[ \t]+", $fensterKontakte);
     foreach my $fk (@kontakte) {


im obigen Code wird klar, dass nur bestimmte Fensterkontakttypen automatisch erkannt werden.
Die Liste der Fensterkontakte wir nach Leerzeichen gesplittet.

Schalte mal mit verbose 5 die Protokollierung ein, dann kannst du die Details besser verfolgen.
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 02 Januar 2017, 18:38:12
98_WeekdayTimer, 98_Heating_Contorl:  a new try to use a new method to check if a device is a heating - the new method is very easy, it checks if a device understand desired-temp ....

The  first version, that was checked in, was causing errors.

Zwave, Devolo + FBDECT sollten nun erkannt werden. Bitte prüfen. Mangels Hardware kann ich nicht wirklich testen
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 03 Januar 2017, 20:00:02
Hmm... :(

Habe das {fhem("set $NAME thermostatSetpointSet $EVENT")} im Bad wieder durch ein {Heating_Control_SetTemp("Heizung_Bad")} ersetzt gehabt und er schaltet aber das SetAllTemps() kommt im Thermostat nicht an.
2017.01.03 19:49:02 3: ZWave set Thermostat_WZ thermostatSetpointSet 17.0
2017.01.03 19:49:02 3: ZWave set Thermostat_Bad thermostatSetpointSet 17.0
2017.01.03 19:49:02 3: ZWave set Thermostat_KiZ thermostatSetpointSet 17.0
2017.01.03 19:49:52 3: Heating_Control_SetAllTemps() done on: Heizung_Bad Heizung_KiZ Heizung_WZ

Die ersten drei Zeilen sind das Ausschalten der Heizungsautomatik (dort werden die Temperaturen aber auch per ThermostatSetpointSet gesetzt. Die vierte Zeile ist dann das Wiedereinschalten.

Das HC_Bad im verbose 5:
2017.01.03 19:57:30 3: ZWave set Thermostat_WZ thermostatSetpointSet 17.0
2017.01.03 19:57:30 3: ZWave set Thermostat_Bad thermostatSetpointSet 17.0
2017.01.03 19:57:30 3: ZWave set Thermostat_KiZ thermostatSetpointSet 17.0
2017.01.03 19:57:35 4: Thermostat_Bad 2017-01-03 16:30:00 12455s
2017.01.03 19:57:35 5: [Heizung_Bad] setting  Timer: Heizung_Bad_3 2017-01-03 16:30:00
2017.01.03 19:57:35 4: [Heizung_Bad] device type heating recognized, setModifier:desired-temp
2017.01.03 19:57:35 4: [Heizung_Bad] time=16:30/1483457400 delay=12455, nextDelay=12540, nextRetry=1483469940
2017.01.03 19:57:35 4: [Heizung_Bad] delayedExecutionCond:0
2017.01.03 19:57:35 4: [Heizung_Bad] result of delayedExecutionCond:0
2017.01.03 19:57:35 4: [Heizung_Bad] list of window sensors found: 'Fenster_Bad Heizung_Bad'
2017.01.03 19:57:35 5: [Heizung_Bad] sensor 'Fenster_Bad' Reading/Attribute 'state' is 'wakeupInterval 86400 1'
2017.01.03 19:57:35 4: [Heizung_Bad] condition: - Tage:7,8
2017.01.03 19:57:35 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} ||  $we || !$we))}
2017.01.03 19:57:35 5: [Heizung_Bad] result of condition:1
2017.01.03 19:57:35 4: [Heizung_Bad] condition: - Tage:8
2017.01.03 19:57:35 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} || !$we))}
2017.01.03 19:57:35 5: [Heizung_Bad] result of condition:1
2017.01.03 19:57:35 4: [Heizung_Bad] Update   - past timer activated
2017.01.03 19:57:35 4: [Heizung_Bad] device type heating recognized, setModifier:desired-temp
2017.01.03 19:57:35 4: [Heizung_Bad] aktParam: newParam:21.0 - is  not disabled
2017.01.03 19:57:35 4: [Heizung_Bad] command: '{if (ReadingsVal("HeizungsAutomatik", "state", "") eq "on") {Heating_Control_SetTemp("Heizung_Bad")}}' executed with %EVENT=>21.0,%NAME=>Thermostat_Bad
2017.01.03 19:57:40 5: [Heizung_Bad] removing Timer: Heizung_Bad_4
2017.01.03 19:57:40 5: [Heizung_Bad] removing Timer: Heizung_Bad_3
2017.01.03 19:57:40 5: [Heizung_Bad] removing Timer: Heizung_Bad_7
2017.01.03 19:57:40 4: [Heizung_Bad] device type heating recognized, setModifier:desired-temp
2017.01.03 19:57:40 4: [Heizung_Bad] Heating recognized - switch in the past activated
2017.01.03 19:57:40 4: [Heizung_Bad] condition: - Tage:8
2017.01.03 19:57:40 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} || !$we))}
2017.01.03 19:57:40 5: [Heizung_Bad] result of condition:1
2017.01.03 19:57:40 4: [Heizung_Bad] condition: - Tage:8
2017.01.03 19:57:40 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} || !$we))}
2017.01.03 19:57:40 5: [Heizung_Bad] result of condition:1
2017.01.03 19:57:40 4: [Heizung_Bad] condition: - Tage:8
2017.01.03 19:57:40 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} || !$we))}
2017.01.03 19:57:40 5: [Heizung_Bad] result of condition:1
2017.01.03 19:57:40 4: [Heizung_Bad] condition: - Tage:8
2017.01.03 19:57:40 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} || !$we))}
2017.01.03 19:57:40 5: [Heizung_Bad] result of condition:1
2017.01.03 19:57:40 4: [Heizung_Bad] setTimer - timer seems to be active today: 8|22:00|18
2017.01.03 19:57:40 5: [Heizung_Bad] setting  Timer: Heizung_Bad_4 2017-01-03 22:00:00
2017.01.03 19:57:40 4: [Heizung_Bad] condition: - Tage:7
2017.01.03 19:57:40 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} ||  $we))}
2017.01.03 19:57:40 5: [Heizung_Bad] result of condition:0
2017.01.03 19:57:40 4: [Heizung_Bad] condition: - Tage:7
2017.01.03 19:57:40 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} ||  $we))}
2017.01.03 19:57:40 5: [Heizung_Bad] result of condition:0
2017.01.03 19:57:40 4: [Heizung_Bad] condition: - Tage:7
2017.01.03 19:57:40 5: [Heizung_Bad] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} ||  $we))}
2017.01.03 19:57:40 5: [Heizung_Bad] result of condition:0
2017.01.03 19:57:40 4: [Heizung_Bad] setTimer - timer seems to be NOT active today: 7|22:00|18
2017.01.03 19:57:40 5: [Heizung_Bad] setting  Timer: Heizung_Bad_7 2017-01-03 22:00:00
2017.01.03 19:57:40 4: [Heizung_Bad] time=16:30/1483457400 delay=12460, nextDelay=12540, nextRetry=1483469940
2017.01.03 19:57:40 4: [Heizung_Bad] delayedExecutionCond:0
2017.01.03 19:57:40 4: [Heizung_Bad] result of delayedExecutionCond:0
2017.01.03 19:57:40 4: [Heizung_Bad] list of window sensors found: 'Fenster_Bad Heizung_Bad'
2017.01.03 19:57:40 5: [Heizung_Bad] sensor 'Fenster_Bad' Reading/Attribute 'state' is 'wakeupInterval 86400 1'
2017.01.03 19:57:40 4: [Heizung_Bad] past timer on Thermostat_Bad at 2017-01-03 16:30:00 with  21 activated
2017.01.03 19:57:40 5: [Heizung_Bad] removing Timer: Heizung_Bad_delayed
2017.01.03 19:57:40 5: [Heizung_Bad] setting  Timer: Heizung_Bad_delayed 2017-01-03 19:57:45
2017.01.03 19:57:40 5: [Heizung_Bad] removing Timer: Heizung_Bad_delayed
2017.01.03 19:57:40 5: [Heizung_Bad] setting  Timer: Heizung_Bad_delayed 2017-01-03 19:57:45
2017.01.03 19:57:40 5: [Heizung_Bad] removing Timer: Heizung_Bad_delayed
2017.01.03 19:57:40 5: [Heizung_Bad] setting  Timer: Heizung_Bad_delayed 2017-01-03 19:57:45
2017.01.03 19:57:40 3: Heating_Control_SetAllTemps() done on: Heizung_Bad Heizung_KiZ Heizung_WZ

Der komplette [Heizung_Bad]-Block kommt im 5-Sekunden-Takt...
Als Window-Sensor ist übrigens nur Fenster_Bad eingetragen...

Wenn ich im HC das {fhem("set $NAME thermostatSetpointSet $EVENT")} drinstehen habe läuft eigentlich alles so wie es soll.
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 05 Januar 2017, 20:32:44
wie hast du das gemacht?


Habe das {fhem("set $NAME thermostatSetpointSet $EVENT")} im Bad wieder durch ein {Heating_Control_SetTemp("Heizung_Bad")} ersetzt gehabt und er schaltet aber das SetAllTemps() kommt im Thermostat nicht an.


bitte den kompletten Code veröffentlichen
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 06 Januar 2017, 19:55:44
Das Heating Control:
Thermostat_Bad 8|04:44|22 8|06:30|18 8|16:30|21 8|22:00|18 7|05:55|22 7|09:00|21 7|22:00|18 {if (ReadingsVal("HeizungsAutomatik", "state", "") eq "on") {fhem("set $NAME thermostatSetpointSet $EVENT")}}

Der HC-Aktivator:
([HeizungsAutomatik] eq "on") ({Heating_Control_SetAllTemps()},set teleBot message Heizungsautomatik aktiv!) DOELSE (set Heizungsventile thermostatSetpointSet 17.0,set teleBot message Heizungsautomatik deaktiviert!)

Der Fensterkontakt:
([Fenster_Bad:alarm] eq "AccessControl: Window/Door is open") (set Thermostat_Bad thermostatSetpointSet 11) DOELSE ({Heating_Control_SetTemp("Heizung_Bad")})
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Dietmar63 am 06 Januar 2017, 20:08:58
Also das Problem, dass jetzt im 5-SekundenTakt immer wieder etwas geschaltet wird, liegt meiner Meinung nach an den DOIFs.
Ich kann dir aber nicht sagen was die wie machen.

Es handelt sich bei ihnen um so etwas wie Multinotify. Jedenfalls habe ich sie unter diesem Namen abgespeichert.
Mit anderen Worten - wenn irgendwie Ereignisse erzeugt werden, auf die die DOIFs reagieren, werden die THEN oder ELSE Zweige ausgeführt.

Man kann es sogar schaffen Zirkelbezüge(wie in Excel) zu erzeugen. Vielleicht ist das hier irgendwie der Fall.
Titel: Antw:[gelöst] Heating Control mit Devolo/Danfoss Thermostaten?
Beitrag von: Ronaldo am 07 Januar 2017, 10:25:44
Nagut, vielleicht nehme ich mich des Problems nochmal in einer ruhigeren Stunde an.
Momentan funktioniert ja alles genau so, wie es sein soll. ;)
In jedem Fall hast du mir sehr dabei geholfen nicht mit hunderten von ats arbeiten zu müssen. Danke!

Nun muss ich mir nur noch überlegen, wie ich meinen Urlaubs-dummy nutze um die Schaltzeiten entsprechend der vom Wochenende zu nutzen...