Heizungsregelung mit Z-Wave-Eurotronic Spirit Thermostat

Begonnen von FHEM-User22, 11 November 2019, 18:13:51

Vorheriges Thema - Nächstes Thema

Beta-User

Du kannst das gerne Testen, einfach die File aus dem anderen Thread nehmen, die in fhem/FHEM-Verzeichnis vorhandene ersetzen und reload ausführen. Dann sind die neuen Optionen verfügbar, mehr Doku als in dem anderen Thread vorhanden gibt es bislang nicht...

Was den Thermostat angeht, kann ich leider nicht helfen, ich habe den nicht.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Deckoffizier

Hallo FHEM-User22

mal ein List von einem Spirit

Internals:
   DEF        e769ab5c 18
   FUUID      5cbcf1af-f33f-cca1-1bcd-833d326325a81db1
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     68
   NAME       KUECHE_ZW_THERMOSTAT
   NR         303
   STATE      dim 23
   TYPE       ZWave
   ZWDongle_0_MSGCNT 68
   ZWDongle_0_RAWMSG 001381000092
   ZWDongle_0_TIME 2019-11-20 21:01:36
   ZWaveSubDevice no
   cmdsPending 0
   homeId     e769ab5c
   isWakeUp   
   lastMsgSent 1574280095.03287
   nodeIdHex  12
   READINGS:
     2019-10-21 23:20:43   SEND_DATA       failed:00
     2019-07-24 22:43:32   alarmTypeSupported PowerManagement System
     2019-04-22 00:46:45   assocGroup_1    Max 1 Nodes ZWDongle_0
     2019-04-22 00:46:45   assocGroups     1
     2019-11-20 17:39:45   battery         35 %
     2019-11-20 17:39:45   batteryLevel    100
     2019-11-20 17:39:45   batteryPercent  35
     2019-11-20 17:39:45   batteryState    ok
     2019-07-25 22:21:33   configBacklight BacklightEnabled
     2019-07-25 22:21:33   configBatteryReport SendBatteryStatusUnsolicitedOnce1
     2019-07-25 22:21:33   configLCDInvert LCDContentNormal
     2019-07-25 22:21:33   configLCDTimeout 0
     2019-07-25 22:21:33   configMeasuredTemperatureOffset 0
     2019-07-25 22:21:34   configMeasuredTemperatureReport 5
     2019-07-25 22:21:34   configValveOpeningPercentageReport 1
     2019-07-25 22:21:34   configWindowOpenDetection OpenWindowDetectionDisabled
     2019-07-24 22:22:34   config_12       0
     2019-07-24 22:30:30   fwMd            fwMdManId: 0148, fwMdFwId_0: 0301, fwMdChkSum_0: 7f13, fwMdUpgradeable: ff, fwMdNrTarg: 01, fwMdFrqSize: 0028, fwMdFwId_1: 0001
     2019-08-10 09:12:21   model           EUROtronic EUR_SPIRITZ Wall Radiator Thermostat
     2019-08-10 09:12:21   modelConfig     eurotronic/eur_spiritz.xml
     2019-08-10 09:12:21   modelId         0148-0003-0001
     2019-07-24 22:49:10   neighborList    ZWDongle_0 SZ_DECKE_ZW_DIM WOH_ZW_THERMOSTAT_OST Thermostat1_UG_WZ ZWave_SWITCH_BINARY_10 Steckd_POPP Thermostat_Bad ZWave_SWITCH_BINARY_16
     2019-07-24 22:46:04   neighborUpdate  done
     2019-07-25 11:32:17   reportedState   dim 99
     2019-11-20 21:01:36   state           dim 23
     2019-11-20 18:48:49   temperature     22.64 C
     2019-07-25 11:36:17   thermostatMode  manual
     2019-11-20 21:01:36   timeToAck       1.473
     2019-11-20 21:01:36   transmit        OK
Attributes:
   DbLogExclude .*
   IODev      ZWDongle_0
   WNMI_delay 2.0
   alias      Thermostat Küche
   classes    ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO VERSION MANUFACTURER_SPECIFIC DEVICE_RESET_LOCALLY PROTECTION SENSOR_MULTILEVEL SWITCH_MULTILEVEL THERMOSTAT_MODE THERMOSTAT_SETPOINT BATTERY CONFIGURATION ALARM POWERLEVEL SECURITY SECURITY_S2 TRANSPORT_SERVICE SUPERVISION FIRMWARE_UPDATE_MD
   group      Heizung und Temperatur
   icon       hc_wht_regler
   room       Wohnung->Küche,ZWave
   sortby     1
   userReadings batteryLevel:batteryPercent.* {ReadingsVal("Thermostat_Buero","batteryPercent",0)}
   vclasses   ALARM:8 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:1 POWERLEVEL:1 PROTECTION:1 SECURITY:1 SECURITY_S2:1 SENSOR_MULTILEVEL:5 SUPERVISION:1 SWITCH_MULTILEVEL:1 THERMOSTAT_MODE:3 THERMOSTAT_SETPOINT:3 TRANSPORT_SERVICE:2 VERSION:2 ZWAVEPLUS_INFO:2


umstellen ginge z.B. mit dem set Befehl tmManual ist eigentlich auch dokumentiert ?

Sieht so bei mir nach her aus.

Gruß
Hans-Jürgen



FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

Deckoffizier

Hallo Beta-User,

unerfahren wie ich bin habe ich Deine Umsetzung mal kurz
anprobiert, sieht sehr interessant aus, bei mehr Zeit geht es weiter.
Trotzdem DANKE für die Mühe!

Gruß
Hans-Jürgen
FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

FHEM-User22

#18
Zitat von: Deckoffizier am 20 November 2019, 21:34:11
Hallo FHEM-User22

mal ein List von einem Spirit
umstellen ginge z.B. mit dem set Befehl tmManual ist eigentlich auch dokumentiert ?

Guten Morgen Hans-Jürgen,
hatte ich hier: https://forum.fhem.de/index.php/topic,105272.msg994908.html#msg994908

Von Deinem Bildschirmfoto würde mich die DropDown-Liste EG-Küche-Wunschtemp-Temporär sowie die Anzeige wdtimer_Küche und eventuell der pidregler_kueche interessieren....

Dankeschön
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Beta-User

Zitat von: Deckoffizier am 20 November 2019, 21:55:55
Hallo Beta-User,

unerfahren wie ich bin habe ich Deine Umsetzung mal kurz
anprobiert, sieht sehr interessant aus, bei mehr Zeit geht es weiter.
Trotzdem DANKE für die Mühe!

Gruß
Hans-Jürgen
Die Idee ist tatsächlich von FHEM-User22 (Danke nochmal an der Stelle!), und dass das so "nahtlos" klappt, hat mich auch positiv überrascht.

Danke jedenfalls auch für diese positive Rückmeldung  :) ; weiteres feedback dazu bitte in den anderen Thread (wenn du zum Testen kommst...). (Würde mich auch interessieren, was mit "Unerfahren wie ich bin..." ausgesagt werden soll?)

Grüße, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Deckoffizier

Hallo FHEM-User22,

Los gehts  ;)
die Programmierer werden die Hände über den Kopf zusammenschlagen......

einmal List vom PID20   pidregler_kueche
Internals:
   CHANGED   
   DEF        Kuechesensor:temperature KUECHE_ZW_THERMOSTAT:dim
   FUUID      5cbcf503-f33f-cca1-5cc5-64f58c16b53df6e5
   NAME       pidregler_kueche
   NR         304
   NTFY_ORDER 50-pidregler_kueche
   STATE      processing
   STILLDONETIME 0
   TYPE       PID20
   VERSION    1.0.0.9
   Helper:
     DBLOG:
       actuation:
         myDbLog:
           TIME       1574353219.83565
           VALUE      16
       actuationCalc:
         myDbLog:
           TIME       1574353219.83565
           VALUE      15.7400000000021
       desired:
         myDbLog:
           TIME       1574353399.92249
           VALUE      22
       measured:
         myDbLog:
           TIME       1574353219.83565
           VALUE      21.9
       p_i:
         myDbLog:
           TIME       1574353399.92249
           VALUE      10.8000000000021
       p_p:
         myDbLog:
           TIME       1574353219.83565
           VALUE      5.00000000000007
   READINGS:
     2019-11-21 17:23:19   actuation       16
     2019-11-21 17:23:19   actuationCalc   15.8000000000021
     2019-11-21 17:23:19   delta           0.100000000000001
     2019-11-21 17:23:19   desired         22
     2019-11-21 17:23:19   measured        21.9
     2019-11-21 17:23:19   p_d             0
     2019-11-21 17:23:19   p_i             10.8000000000021
     2019-11-21 17:23:19   p_p             5.00000000000007
     2019-11-21 17:23:19   state           processing
   helper:
     actor      KUECHE_ZW_THERMOSTAT
     actorCommand dim
     actorErrorAction errorPos
     actorErrorPos 5
     actorInterval 180
     actorKeepAlive 1800
     actorLimitLower 0
     actorLimitUpper 99
     actorThreshold 1
     actorTimestamp 2019-11-21 17:14:19
     actorValueDecPlaces 0
     adjust     
     calcInterval 180
     deltaGradient 0
     deltaOld   0.100000000000001
     deltaOldTS 2019-11-21 17:19:34
     deltaTreshold 0
     desiredName desired
     disable    0
     factor_D   0
     factor_I   0.2
     factor_P   50
     isWindUP   
     measuredName measured
     reading    temperature
     regexp     ^([\+,\-]?\d+\.?\d*$)
     reverseAction 0
     sensor     Kuechesensor
     sensorTimeout 7200
     stopped    0
     updateInterval 600
Attributes:
   DbLogExclude state,delta,p_d
   DbLogInclude measured,desired,actuation,p_p,p_i,actuationCalc
   event-min-interval actuation:300,actuationCalc:300,delta:300,desired:300,measured:300,p_d:300,p_i:300,p_p:300
   event-on-change-reading actuation:1,actuationCalc:0.5,delta:0.2,desired,measured:0.2,p_d:0.1,p_i:1.0,p_p:1.0
   group      Thermostate
   pidActorErrorAction errorPos
   pidActorErrorPos 5
   pidActorInterval 180
   pidActorLimitUpper 99
   pidActorTreshold 1
   pidActorValueDecPlaces 0
   pidCalcInterval 180
   pidDeltaTreshold 0
   pidFactor_D 0
   pidFactor_I 0.2
   pidFactor_P 50
   pidSensorTimeout 7200
   room       Wohnung->Küche


list vom eg_kue_wunschtemp

Internals:
   DEF        ([Wunschtemp_temp_eg_kue])
   DOIFDEV    ^global$|^Wunschtemp_temp_eg_kue$
   FUUID      5c515831-f33f-cca1-fe1d-0b4c540e2d96689e
   MODEL      FHEM
   NAME       eg_kue_wunschtemp
   NR         154
   NTFY_ORDER 50-eg_kue_wunschtemp
   STATE      Manuell inaktiv
   TYPE       DOIF
   VERSION    20500 2019-11-12 17:54:48
   READINGS:
     2019-11-21 06:05:00   mantemp         0
   Regex:
     accu:
     cond:
       Wunschtemp_temp_eg_kue:
         0:
           &STATE     ^Wunschtemp_temp_eg_kue$
   condition:
     0          ::InternalDoIf($hash,'Wunschtemp_temp_eg_kue','STATE')
   do:
     0:
       0         
     1:
   helper:
     DEVFILTER  ^global$|^Wunschtemp_temp_eg_kue$
     NOTIFYDEV  global|Wunschtemp_temp_eg_kue
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     all         Wunschtemp_temp_eg_kue:STATE
   perlblock:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   alias      EG-Küche-Wunschtemp-Temporär
   do         always
   group      Heizung und Temperatur
   icon       temp_control
   readingList mantemp
   room       Wohnung->Küche
   setList    mantemp:12,17,18,19,20,21,21.5,22,22.5,23,23.5,24,26
   sortby     3
   webCmd     mantemp


dann noch das List von wdtimer_kueche
Internals:
   COMMAND    {if (ReadingsVal("TK_EG_Kueche","Window","Closed") eq "Closed") {fhem("set $NAME desired $EVENT")}}
   CONDITION 
   DEF        pidregler_kueche mo,di,mi,do,fr,$we|06:05|22 mo,di,mi,do,fr,$we|21:45|22 {if (ReadingsVal("TK_EG_Kueche","Window","Closed") eq "Closed") {fhem("set $NAME desired $EVENT")}}

   DEVICE     pidregler_kueche
   FUUID      5d480b05-f33f-cca1-521c-9fbe22af782f1d73
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       wdtimer_kueche
   NR         323
   Profil 0: Sonntag 06:05:00 22, 21:45:00 22
   Profil 1: Montag 06:05:00 22, 21:45:00 22
   Profil 2: Dienstag 06:05:00 22, 21:45:00 22
   Profil 3: Mittwoch 06:05:00 22, 21:45:00 22
   Profil 4: Donnerstag 06:05:00 22, 21:45:00 22
   Profil 5: Freitag 06:05:00 22, 21:45:00 22
   Profil 6: Samstag 06:05:00 22, 21:45:00 22
   Profil 7: Wochenende 06:05:00 22, 21:45:00 22
   STATE      22
   STILLDONETIME 0
   TYPE       WeekdayTimer
   READINGS:
     2019-11-21 06:05:00   currValue       22
     2019-11-20 09:03:49   disabled        0
     2019-11-21 06:05:00   nextUpdate      2019-11-21 21:45:00
     2019-11-21 06:05:00   nextValue       22
     2019-11-21 06:05:00   state           22
   SWITCHINGTIMES:
     mo,di,mi,do,fr,$we|06:05|22
     mo,di,mi,do,fr,$we|21:45|22
   TIMER:
     wdtimer_kueche_1:
       HASH       wdtimer_kueche
       MODIFIER   1
       NAME       wdtimer_kueche_1
     wdtimer_kueche_2:
       HASH       wdtimer_kueche
       MODIFIER   2
       NAME       wdtimer_kueche_2
     wdtimer_kueche_SetTimerOfDay:
       HASH       wdtimer_kueche
       MODIFIER   SetTimerOfDay
       NAME       wdtimer_kueche_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
   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:05:00   22
         21:45:00   22
       1:
         06:05:00   22
         21:45:00   22
       2:
         06:05:00   22
         21:45:00   22
       3:
         06:05:00   22
         21:45:00   22
       4:
         06:05:00   22
         21:45:00   22
       5:
         06:05:00   22
         21:45:00   22
       6:
         06:05:00   22
         21:45:00   22
       7:
         06:05:00   22
         21:45:00   22
     WEDAYS:
       2          1
       3          1
   longDays:
     de:
       Sonntag
       Montag
       Dienstag
       Mittwoch
       Donnerstag
       Freitag
       Samstag
       Wochenende
       Werktags
     en:
       Sunday
       Monday
       Tuesday
       Wednesday
       Thursday
       Friday
       Saturday
       weekend
       weekdays
     fr:
       Dimanche
       Lundi
       Mardi
       Mercredi
       Jeudi
       Vendredi
       Samedi
       weekend
       jours de la semaine
   profil:
     1:
       EPOCH      1574312700
       PARA       22
       TIME       06:05
       TAGE:
         1
         2
         3
         4
         5
         7
     2:
       EPOCH      1574369100
       PARA       22
       TIME       21:45
       TAGE:
         1
         2
         3
         4
         5
         7
   profile_IDX:
     0:
       06:05:00   1
       21:45:00   2
     1:
       06:05:00   1
       21:45:00   2
     2:
       06:05:00   1
       21:45:00   2
     3:
       06:05:00   1
       21:45:00   2
     4:
       06:05:00   1
       21:45:00   2
     5:
       06:05:00   1
       21:45:00   2
     6:
       06:05:00   1
       21:45:00   2
     7:
       06:05:00   1
       21:45:00   2
   shortDays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
Attributes:
   DbLogExclude .*
   commandTemplate set $NAME desired $EVENT
   disable    0
   group      Heizung und Temperatur
   icon       sani_heating_automatic
   room       Wohnung->Küche
   sortby     2
   switchInThePast 1


muss aber dazu sagen es gehört noch etwas Code zum Verriegeln bei Fenster auf zu  sowie Rücksetzen
von Änderungen dazu

wie     
wunschtemp_kueche_check1
Internals:
   DEF        ##soll beim auslösen vom weekdaytimer  eventuelle manuelle
## vorherige temp Anzeige(Änderung) zurücksetzen
([wdtimer_kueche])
(setstate eg_kue_wunschtemp Manuell inaktiv,
setreading eg_kue_wunschtemp mantemp 0,
set eg_kue_wunschtemp mantemp 0)

   FUUID      5c515831-f33f-cca1-71ea-2ce83dfa012b1a43
   MODEL      FHEM
   NAME       wunschtemp_kueche_check1
   NOTIFYDEV  wdtimer_kueche,global
   NR         151
   NTFY_ORDER 50-wunschtemp_kueche_check1
   STATE      cmd_1
   TYPE       DOIF
   VERSION    20500 2019-11-12 17:54:48
   READINGS:
     2019-11-21 06:05:00   Device          wdtimer_kueche
     2019-11-21 06:05:00   cmd             1
     2019-11-21 06:05:00   cmd_event       wdtimer_kueche
     2019-11-21 06:05:00   cmd_nr          1
     2019-11-21 06:05:00   e_wdtimer_kueche_STATE 22
     2019-08-17 19:44:23   mode            enabled
     2019-11-21 06:05:00   state           cmd_1
   Regex:
     accu:
     cond:
       wdtimer_kueche:
         0:
           &STATE     ^wdtimer_kueche$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'wdtimer_kueche','STATE')
   do:
     0:
       0          setstate eg_kue_wunschtemp Manuell inaktiv, setreading eg_kue_wunschtemp mantemp 0, set eg_kue_wunschtemp mantemp 0
     1:
   helper:
     DEVFILTER  ^global$|^wdtimer_kueche$
     NOTIFYDEV  global|wdtimer_kueche
     event      nextUpdate: 2019-11-21 21:45:00,nextValue: 22,currValue: 22,22
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   wdtimer_kueche
     timerevent nextUpdate: 2019-11-21 21:45:00,nextValue: 22,currValue: 22,22
     triggerDev wdtimer_kueche
     timerevents:
       nextUpdate: 2019-11-21 21:45:00
       nextValue: 22
       currValue: 22
       22
     timereventsState:
       nextUpdate: 2019-11-21 21:45:00
       nextValue: 22
       currValue: 22
       state: 22
     triggerEvents:
       nextUpdate: 2019-11-21 21:45:00
       nextValue: 22
       currValue: 22
       22
     triggerEventsState:
       nextUpdate: 2019-11-21 21:45:00
       nextValue: 22
       currValue: 22
       state: 22
   internals:
     all         wdtimer_kueche:STATE
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         always
   icon       helper_doif
   room       Wohnung->Küche


falls Du den Rest auch noch brauchst melde Dich ruhig.

Gruß
Hans-Jürgen


FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

FHEM-User22

Hallo Hans-Jürgen,
Dankeschön, werds am Wochenende mal nachspielen.

Allerdigs wären mir hier die RAW-Definitionen lieber. Die lassen sich leichter nachspielen...

Viele Grüße
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Deckoffizier

Hallo FHEM-User22,

ZitatAllerdigs wären mir hier die RAW-Definitionen lieber. Die lassen sich leichter nachspielen...

na dann zweiter Versuch....

defmod pidregler_kueche PID20 Kuechesensor:temperature KUECHE_ZW_THERMOSTAT:dim
attr pidregler_kueche DbLogExclude state,delta,p_d
attr pidregler_kueche DbLogInclude measured,desired,actuation,p_p,p_i,actuationCalc
attr pidregler_kueche event-min-interval actuation:300,actuationCalc:300,delta:300,desired:300,measured:300,p_d:300,p_i:300,p_p:300
attr pidregler_kueche event-on-change-reading actuation:1,actuationCalc:0.5,delta:0.2,desired,measured:0.2,p_d:0.1,p_i:1.0,p_p:1.0
attr pidregler_kueche group Thermostate
attr pidregler_kueche pidActorErrorAction errorPos
attr pidregler_kueche pidActorErrorPos 5
attr pidregler_kueche pidActorInterval 180
attr pidregler_kueche pidActorLimitUpper 99
attr pidregler_kueche pidActorTreshold 1
attr pidregler_kueche pidActorValueDecPlaces 0
attr pidregler_kueche pidCalcInterval 180
attr pidregler_kueche pidDeltaTreshold 0
attr pidregler_kueche pidFactor_D 0
attr pidregler_kueche pidFactor_I 0.2
attr pidregler_kueche pidFactor_P 50
attr pidregler_kueche pidSensorTimeout 7200
attr pidregler_kueche room Wohnung->Küche


weiter

defmod eg_kue_wunschtemp DOIF ([Wunschtemp_temp_eg_kue])
attr eg_kue_wunschtemp DbLogExclude .*
attr eg_kue_wunschtemp alias EG-Küche-Wunschtemp-Temporär
attr eg_kue_wunschtemp do always
attr eg_kue_wunschtemp group Heizung und Temperatur
attr eg_kue_wunschtemp icon temp_control
attr eg_kue_wunschtemp readingList mantemp
attr eg_kue_wunschtemp room Wohnung->Küche
attr eg_kue_wunschtemp setList mantemp:12,17,18,19,20,21,21.5,22,22.5,23,23.5,24,26
attr eg_kue_wunschtemp sortby 3
attr eg_kue_wunschtemp webCmd mantemp


weiter mit

defmod wdtimer_kueche WeekdayTimer pidregler_kueche mo,di,mi,do,fr,$we|06:05|22 mo,di,mi,do,fr,$we|21:45|22 {if (ReadingsVal("TK_EG_Kueche","Window","Closed") eq "Closed") {fhem("set $NAME desired $EVENT")}}\

attr wdtimer_kueche DbLogExclude .*
attr wdtimer_kueche commandTemplate set $NAME desired $EVENT
attr wdtimer_kueche disable 0
attr wdtimer_kueche group Heizung und Temperatur
attr wdtimer_kueche icon sani_heating_automatic
attr wdtimer_kueche room Wohnung->Küche
attr wdtimer_kueche sortby 2
attr wdtimer_kueche switchInThePast 1


weiter mit

defmod wunschtemp_kueche_check1 DOIF ##soll beim auslösen vom weekdaytimer  eventuelle manuelle\
## vorherige temp Anzeige(Änderung) zurücksetzen\
([wdtimer_kueche])\
(setstate eg_kue_wunschtemp Manuell inaktiv,\
setreading eg_kue_wunschtemp mantemp 0,\
set eg_kue_wunschtemp mantemp 0)\

attr wunschtemp_kueche_check1 DbLogExclude .*
attr wunschtemp_kueche_check1 do always
attr wunschtemp_kueche_check1 icon helper_doif
attr wunschtemp_kueche_check1 room Wohnung->Küche


weiter zusätzlich

defmod wunschtemp_kueche_check2 DOIF ## zeitweises ändern der wunschtemperatur nur bei fenster zu\
## mit setzen des Regler und Anzeige\
([eg_kue_wunschtemp:mantemp:d] > 0 and [?TK_EG_Kueche:state] eq "Closed")\
(set KUECHE_ZW_THERMOSTAT protectionOff,\
set KUECHE_ZW_THERMOSTAT tmManual,\
setstate eg_kue_wunschtemp  Manuell aktiv)\
({my $neuer_wert = ReadingsVal("eg_kue_wunschtemp","mantemp","0");;;; fhem("set pidregler_kueche desired $neuer_wert")})\
({my $neuer_wert = ReadingsVal("eg_kue_wunschtemp","mantemp","0");;;; fhem("setreading eg_kue_wunschtemp mantemp $neuer_wert")})\
({my $neuer_wert = ReadingsVal("eg_kue_wunschtemp","mantemp","0");;;; fhem("set eg_kue_wunschtemp mantemp $neuer_wert")})\

attr wunschtemp_kueche_check2 DbLogExclude .*
attr wunschtemp_kueche_check2 do always
attr wunschtemp_kueche_check2 icon helper_doif
attr wunschtemp_kueche_check2 room Wohnung->Küche


für mich wichtig die Fenstergeschichte

defmod fenster_kueche_check3 DOIF ## öffnen des Fenster setzt pidregler auf 12 Grad Anzeige auf 12\
## Schutz des Thermostat gegen manuelles verstellen\
## schliessen der Tür alles retour\
([TK_EG_Kueche:"Offen"])\
(setstate eg_kue_wunschtemp Fenster ist auf,\
set pidregler_kueche desired 12,\
setreading eg_kue_wunschtemp mantemp 12,\
set eg_kue_wunschtemp mantemp 12,\
set KUECHE_ZW_THERMOSTAT protectionOn)\
DOELSEIF ([TK_EG_Kueche:"Geschlossen"])\
(setstate eg_kue_wunschtemp Manuell inaktiv,\
set KUECHE_ZW_THERMOSTAT protectionOff,\
set KUECHE_ZW_THERMOSTAT tmManual,\
setreading eg_kue_wunschtemp mantemp 0,\
set eg_kue_wunschtemp mantemp 0)\
(set pidregler_kueche desired [wdtimer_kueche:currValue])\

attr fenster_kueche_check3 DbLogExclude .*
attr fenster_kueche_check3 do always
attr fenster_kueche_check3 icon helper_doif
attr fenster_kueche_check3 room Wohnung->Küche


zu guter Letzt

defmod fenster_kueche_check4 DOIF ## verhindert verstellen der Wunschtemperatur bei\
## Fenster offen mit Anzeige noch auf\
([eg_kue_wunschtemp:mantemp:d] > 12 and [?TK_EG_Kueche:state] ne "Closed")\
(setstate eg_kue_wunschtemp Fenster noch auf,\
set pidregler_kueche desired 12,\
set eg_kue_wunschtemp mantemp 12)\

attr fenster_kueche_check4 DbLogExclude .*
attr fenster_kueche_check4 do always
attr fenster_kueche_check4 icon helper_doif
attr fenster_kueche_check4 room Wohnung->Küche


geht garantiert alles noch besser, wie Beta-User schon mal geschrieben hatte
kann man mit richtigen ? Parameter in WeekdayTimer die Fenster offen Sache vereinfachen.

Gruß
Hans-Jürgen
FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

sz_wolfi

Zitat von: FHEM-User22 am 20 November 2019, 16:10:39
Er reagiert weder auf das Setzen der Desired-Temp noch auf:  setpointTemp 21.0 C heating.
Die Temperatur im Raum bleibt 18 Grad.

wie sehen denn Deine Logs dazu aus ?
Mein Beispiel:


2019-11-28_17:38:59 THERMOSTAT_BAD2 reportedState: off
2019-11-28_17:39:31 THERMOSTAT_BAD2 desired-temp 16.0
2019-11-28_17:39:36 THERMOSTAT_BAD2 setpointTemp: 16.0 C heating
2019-11-28_17:40:59 THERMOSTAT_BAD2 dim 15
2019-11-28_17:40:59 THERMOSTAT_BAD2 reportedState: dim 15
2019-11-28_17:50:59 THERMOSTAT_BAD2 temperature: 15.41 C


d.h. man sieht, dass das Ventil ZU war (kannst den Ventilzustand via 'get THERMOSTAT swmStatus' auch abfragen)
LEIDER 'erzaehlt' der Thermostat nicht, in welchem Mode er sich gerade befindet (Meiner sagt immer 'heating')
Aber er kann auch im "Manual" Mode sein - oder eher wahrscheinlich bei Dir in 'energySaveHeating'.

ZitatHat das was mit dem ThermostatMode zu tun? Wenn ja, wie kann ich umstellen?

ICH wuerde jetzt auf die schnelle tippen, dass Du ihn in 'energySaveHeating' gebracht hast,
und da gilt ja ein 'anderer' setpoint ... ('heating' ist setpoint '1' - 'energySaveHeating' ist setpoint '11')

wieder in 'heating' bringen, damit er 'setpoint 1' (statt 11) befolgt:

set THERMOSTAT tmHeating



Deckoffizier

Hallo sz_wolfi

ZitatLEIDER 'erzaehlt' der Thermostat nicht, in welchem Mode er sich gerade befindet (Meiner sagt immer 'heating')

Hmm... bei mir steht im Reading vom Thermostat u.a. thermostatMode manual

Gruß
Hans-Jürgen
FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

FHEM-User22

Moin,
meiner auch nicht so richtig,

mein State-Format:
<div style='color:blue'>
state,<div style='color:green'>
<b><b>IST: temperature </b></b></div>
<div style='color:black'>setpointTemp</b></div>
reportedState


das List:
Internals:
   DEF        f712869a 11
   FUUID      5dc989e1-f33f-6033-dc03-648c5c9df484b790
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     141
   NAME       ZWave_THERMOSTAT_MOE
   NR         214
   STATE      <div style='color:blue'>
desired-temp 18.0,<div style='color:green'>
<b><b>IST: 18.22 C </b></b></div>
<div style='color:black'>23.5 C heating</b></div>
dim 48
   STILLDONETIME 0
   TYPE       ZWave
   ZWDongle_0_MSGCNT 141
   ZWDongle_0_RAWMSG 0004000b0631050142071e
   ZWDongle_0_TIME 2019-11-29 07:15:48
   ZWaveSubDevice no
   cmdsPending 0
   homeId     f712869a
   isWakeUp   
   lastMsgSent 1574974800.01795
   nodeIdHex  0b
   Helper:
     DBLOG:
       state:
         LogDB:
           TIME       1574974800.02106
           VALUE      desired-temp 18.0
       temperature:
         LogDB:
           TIME       1575008148.30469
           VALUE      18.22
   READINGS:
     2019-11-11 17:18:42   SECURITY        DISABLED (Networkkey not found)
     2019-11-11 17:18:55   SEND_DATA       failed:00
     2019-11-11 17:35:10   alarm           System: Event cleared: unknown event 0
     2019-11-11 17:29:57   assocGroup_1    Max 1 Nodes ZWDongle_0
     2019-11-11 17:29:57   assocGroups     1
     2019-11-11 17:45:22   configBacklight BacklightEnabled
     2019-11-15 08:36:13   configBatteryReport SendOnceADay
     2019-11-11 17:45:22   configLCDInvert Normal
     2019-11-11 17:45:23   configLCDTimeout 0
     2019-11-11 17:45:23   configMeasuredTemperatureOffset 0
     2019-11-11 17:45:23   configOpenWindowDetection MediumSensibility
     2019-11-11 17:45:23   configTemperatureReportThreshold 5
     2019-11-11 17:45:23   configValveOpeningPercentageReport 0
     2019-11-11 17:18:44   model           EUROtronic EUR_SPIRITZ Wall Radiator Thermostat
     2019-11-11 17:18:44   modelConfig     eurotronic/eur_spiritz.xml
     2019-11-11 17:18:44   modelId         0148-0003-0001
     2019-11-15 15:00:51   neighborList    ZWave_ST_01 ZWave_0SWITCH_Haus ZWave_0SWITCH_Buero
     2019-11-15 15:44:31   neighborUpdate  done
     2019-11-21 07:21:34   protection      off
     2019-11-21 07:18:48   reportedState   dim 48
     2019-11-25 09:56:22   setpointTemp    23.5 C heating
     2019-11-28 22:00:00   state           desired-temp 18.0
     2019-11-29 07:15:48   temperature     18.22 C
     2019-11-21 07:08:46   thermostatMode  manual
     2019-11-28 22:00:01   timeToAck       1.386
     2019-11-28 22:00:01   transmit        OK
     2019-11-15 08:36:46   zwavePlusInfo   version:01 role:SleepingListeningSlave node:Z-Wave+Node installerIcon:1200 userIcon:1200
Attributes:
   DbLogInclude (temperature|state|setpointTemp)
   IODev      ZWDongle_0
   classes    ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO VERSION MANUFACTURER_SPECIFIC DEVICE_RESET_LOCALLY PROTECTION SENSOR_MULTILEVEL SWITCH_MULTILEVEL THERMOSTAT_MODE THERMOSTAT_SETPOINT BATTERY CONFIGURATION ALARM POWERLEVEL SECURITY SECURITY_S2 TRANSPORT_SERVICE SUPERVISION FIRMWARE_UPDATE_MD
   comment    https://wiki.fhem.de/wiki/Z-Wave-Eurotronic_Spirit_Thermostat
https://forum.fhem.de/index.php?topic=97292.0
https://forum.fhem.de/index.php/topic,77598.135.html
https://wiki.fhem.de/wiki/WeekdayTimer

   group      Heizung und Temperatur
   icon       hc_wht_regler
   neighborListPos 609.36,78.58
   room       00_Moe,Heizung,ZWave
   sortby     2
   stateFormat <div style='color:blue'>
state,<div style='color:green'>
<b><b>IST: temperature </b></b></div>
<div style='color:black'>setpointTemp</b></div>
reportedState
   userReadings batteryLevel:batteryPercent.* {ReadingsVal("ZWave_THERMOSTAT_MOE","batteryPercent",0)}
   vclasses   ALARM:8 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:1 POWERLEVEL:1 PROTECTION:1 SECURITY:1 SECURITY_S2:1 SENSOR_MULTILEVEL:5 SWITCH_MULTILEVEL:1 THERMOSTAT_MODE:3 THERMOSTAT_SETPOINT:3 TRANSPORT_SERVICE:2 VERSION:2 ZWAVEPLUS_INFO:2


Ich weiss nicht, was die "23.5 C heating" so richtig anzeigen, bewirken.

Dankeschön

FHEM auf Raspberry Pi und Proxmox und... und.... und....

Deckoffizier

#26
Hallo  FHEM-User22,

Danke für Dein List!

ZitatIch weiss nicht, was die "23.5 C heating" so richtig anzeigen, bewirken.

Aus dem Bauch heraus, hab die Anleitung nicht im Kopf.
Der manual Mode den Du gerade hast, setzt alles andere außer Kraft bzw. überstimmt ??

setpointTemp    23.5 C heating müsste dann die Standard Einstellung für den Automatik Heizmodus
sein ? Alls Fallback ?

Muss noch mal nachlesen um nicht voll daneben zu sein....
mit thermostatSetpoinSet stellt man die Temperatur für die einzelnen Betriebsarten
wie Heizen ,Energiesparen u.a. ein, daher Dein 23.5 C heating ?

Gruß
Hans-Jürgen

FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

rcmcronny

Den Modus bekommt man doch mit

get <DEVICE> thermostatMode
raus.

Die 2 Befehle sind auch ganz nützlich für Infoabfrage:

get <DEVICE> swmStatus
get <DEVICE> smStatus


Wenns der Manual Mode ist, dann kann man die Ventilstellung direkt kontrollieren (dim 0-100  (%) ).
Umstellen kann man den mit
set <DEVICE> tmHeating

Analog dazu (Manual Mode)
set <DEVICE> tmOff

(und noch 2 weitere, sieht man ja im Dropdown )

HTH Ronny

sz_wolfi

Zitat von: Deckoffizier am 28 November 2019, 23:48:20
Hmm... bei mir steht im Reading vom Thermostat u.a. thermostatMode manual

nun ja, wenn man es glaubt ...

Es ist (zumindest bei meinen 4 Spirits) so, dass "set DEVICE tmEnergySaveHeating" den Thermostat in diesen Mode bringt.
... und dann automatisch die Temperatur von 'setpoint 11'  geregelt wird.
Bloed ist lediglich, dass das Mode-Setting - wie z.B. 'set tmFullPower' etc. - NICHT das Reading 'thermostatMode' anpasst/aendert !
man muss also ein 'get DEVICE thermostatMode' machen, um es an die Realitaet anzupassen.

und zu viel Funkverkehr gibt immer haessliche Meldungen ueber RESENDs/etc:


2019.11.03 09:06:47 3: ZWave set THERMOSTAT_WOHNZIMMER desired-temp 18.5
2019.11.03 09:06:52 3: ZWave get THERMOSTAT_WOHNZIMMER setpoint 1
2019.11.03 09:06:52 2: ZWave: No ACK from THERMOSTAT_WOHNZIMMER after 5s for sentset:1316064301012200b925d2
2019.11.03 09:06:52 2: ERROR: cannot SEND_DATA to THERMOSTAT_WOHNZIMMER: transmit queue overflow
2019.11.03 09:06:57 2: ZWave: No ACK from THERMOSTAT_WOHNZIMMER after 5s for get:13160343020125d3
2019.11.03 09:06:57 2: ERROR: cannot SEND_DATA to THERMOSTAT_WOHNZIMMER: transmit queue overflow
2019.11.03 09:07:02 2: ZWave: No ACK from THERMOSTAT_WOHNZIMMER after 5s for get:13160343020125d3
2019.11.03 09:07:02 2: ERROR: cannot SEND_DATA to THERMOSTAT_WOHNZIMMER: transmit queue overflow


... man muss mit Funkverkehr wirklich 'sparsam' umgehen - sonst ist das Log voll von solchem Zeugs.
(( ja ich habe den Thread mit diesen Meldungen gefunden/gelesen - und bei mir passieren diese Meldungen,
aber keinerlei sonstigen Probleme ... ausser vielleicht, dass der Thermostat dann nicht geschaltet wurde)

Ein anderes Problem ist, dass ja die Soll-Temp in 'heating' und 'energySaveHeating' - verschiedene setpoints sind (1 und 11)
... auch nicht so lustig/einfach ...

Ich kann mit diesen mini-Problemen leben indem ich sie nur in 'heating' betreibe, und
wirklich den Funkverkehr aufs notwendigste reduziere - nicht perfekt - aber OK ;-)