Falsche desiredTemperature nach Fenster zu.

Begonnen von roman1528, 03 Februar 2016, 13:45:32

Vorheriges Thema - Nächstes Thema

roman1528

Moin.
Folgendes, unverständliches und negatives ist mir heute aufgefallen.

In meinem Büro habe ich ein WallMountedThermostat ein HeatingThermostat und einen ShutterContact. Das Wochenprogramm setzt 2 mal am Tag die desiredTemperature auf 15.0°C (so kann ich mal vergessen sie aus zu machen).
Wenn ich im Büro bin stelle ich die desireTemperature auf 22.0°C ein. Soweit alles schön.
Weil ich im Moment den ganzen Tag im Büro verbringe muss ich ab und an mal frische Luft rein lassen. Also Fenster auf! WallMountetThermostat und HeatingThermostat setzen sich ganz brav auf 5.0°C und das FensterSymbol wird angezeigt (es ist alles mit allem "associated").

Mache ich das Fenster wieder zu verschwindet das FensterSymbol und die desiredTemperature springt auf 17.0°C (auch in FHEM)!
Das ist ein mir völlig unverständliches Verhalten... Wenn alles auf 15.0°C (Auto Temperatur) springen würde, würde ich es ja verstehen. Aber 17.0°C verstehe ich nicht.

Was ist falsch? Oder was muss ich ändern. Optimal wäre wenn sich das ganze auf die zuletzt eingestellte desiredTemperature setzen würde (Was ja eigentlich normal ist!).

Meine ganzen MAX-Devices sind per CUBe mit a-culfw an FHEM angebunden (mein MaxCube hat den Hintern zugekniffen und ich habe ihn umgeflasht).

Im Schlafzimmer z.B. tritt dieses Verhalten nicht auf.....

Bin für jeden Tipp dankbar.

Grüße^^

HeatingThermostat

Internals:
   CULMAX0_MSGCNT 53
   CULMAX0_TIME 2016-02-03 13:41:38
   DEF        HeatingThermostat 0d08c5
   IODev      CULMAX0
   LASTInputDev CULMAX0
   MSGCNT     53
   NAME       bu_HT
   NR         122
   RSSI       -84
   STATE      17.0 °C
   TYPE       MAX
   addr       0d08c5
   dstsetting 1
   mode       0
   rferror    0
   type       HeatingThermostat
   Readings:
     2016-02-03 13:41:38   RSSI            -84
     2015-11-18 13:22:40   TimeInformationHour 1
     2016-02-03 13:41:38   battery         ok
     2015-11-19 09:26:54   boostDuration   10
     2015-11-19 09:44:22   boostValveposition 100
     2015-11-19 08:38:40   comfortTemperature 22.0
     2015-11-19 09:53:46   decalcification Mon 12:00
     2016-02-03 13:41:38   desiredTemperature 17.0
     2015-11-19 08:47:34   ecoTemperature  15.0
     2015-11-18 10:47:27   firmware        1.0
     2015-11-18 13:40:29   groupid         2
     2015-11-18 10:47:27   maxValveSetting 100
     2015-11-18 15:57:00   maximumTemperature 25.0
     2015-11-18 10:47:27   measurementOffset 0.0
     2015-11-18 10:47:27   minimumTemperature off
     2016-02-03 13:41:38   mode            auto
     2016-02-03 08:07:27   msgcnt          40
     2016-02-03 13:41:38   state           17.0 °C
     2016-02-03 13:25:41   temperature     21.9
     2015-11-18 10:47:27   testresult      160
     2015-11-18 10:47:27   valveOffset     0
     2016-02-03 13:41:38   valveposition   0
     2015-12-29 15:41:55   weekprofile-0-Sat-temp 15.0 °C  /  15.0 °C
     2015-12-29 15:41:55   weekprofile-0-Sat-time 00:00-12:00  /  12:00-00:00
     2015-12-29 15:41:55   weekprofile-1-Sun-temp 15.0 °C  /  15.0 °C
     2015-12-29 15:41:55   weekprofile-1-Sun-time 00:00-12:00  /  12:00-00:00
     2015-12-29 15:41:55   weekprofile-2-Mon-temp 15.0 °C  /  15.0 °C
     2015-12-29 15:41:55   weekprofile-2-Mon-time 00:00-12:00  /  12:00-00:00
     2015-12-29 15:41:55   weekprofile-3-Tue-temp 15.0 °C  /  15.0 °C
     2015-12-29 15:41:55   weekprofile-3-Tue-time 00:00-12:00  /  12:00-00:00
     2015-12-29 15:41:55   weekprofile-4-Wed-temp 15.0 °C  /  15.0 °C
     2015-12-29 15:41:55   weekprofile-4-Wed-time 00:00-12:00  /  12:00-00:00
     2015-12-29 15:41:55   weekprofile-5-Thu-temp 15.0 °C  /  15.0 °C
     2015-12-29 15:41:55   weekprofile-5-Thu-time 00:00-12:00  /  12:00-00:00
     2015-12-29 15:41:55   weekprofile-6-Fri-temp 15.0 °C  /  15.0 °C
     2015-12-29 15:41:55   weekprofile-6-Fri-time 00:00-12:00  /  12:00-00:00
     2015-11-18 10:47:27   windowOpenDuration 15
     2016-01-19 10:51:44   windowOpenTemperature 5.0
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      CULMAX0
   group      Heizung
   keepAuto   1
   room       Büro


WallMountedThermostat

Internals:
   CULMAX0_MSGCNT 59
   CULMAX0_TIME 2016-02-03 13:44:27
   DEF        WallMountedThermostat 10a3e5
   IODev      CULMAX0
   LASTInputDev CULMAX0
   MSGCNT     59
   NAME       bu_WT
   NR         120
   RSSI       -51.5
   STATE      17.0 °C
   TYPE       MAX
   addr       10a3e5
   backend    CULMAX0
   rferror    0
   type       WallMountedThermostat
   Readings:
     2016-02-03 13:44:27   RSSI            -51.5
     2015-11-18 10:32:41   TimeInformationHour 0
     2016-02-03 13:24:27   battery         ok
     2015-12-16 08:30:02   boostDuration   10
     2015-12-16 08:31:54   boostValveposition 100
     2015-12-16 08:33:50   comfortTemperature 22.0
     2015-11-19 10:03:22   decalcification Mon 12:00
     2016-02-03 13:44:27   desiredTemperature 17.0
     2016-02-03 13:24:27   displayActualTemperature 1
     2015-12-16 09:16:10   ecoTemperature  15.0
     2015-12-16 08:22:03   firmware        1.0
     2015-12-16 08:39:33   groupid         2
     2015-11-18 15:05:43   maxValveSetting 100
     2015-12-16 08:41:36   maximumTemperature 25.0
     2015-12-16 08:22:03   measurementOffset 0.0
     2015-12-16 08:22:03   minimumTemperature off
     2016-02-03 13:24:27   mode            auto
     2016-02-03 07:07:27   msgcnt          151
     2016-02-03 13:44:27   state           17.0 °C
     2016-02-03 13:44:27   temperature     21.6
     2015-12-16 08:22:03   testresult      255
     2015-11-18 15:05:43   valveOffset     0
     2015-12-27 15:39:22   weekprofile-0-Sat-temp 15.0 °C
     2015-12-27 15:39:22   weekprofile-0-Sat-time 00:00-00:00
     2015-12-27 15:39:22   weekprofile-1-Sun-temp 15.0 °C
     2015-12-27 15:39:22   weekprofile-1-Sun-time 00:00-00:00
     2015-12-27 15:39:22   weekprofile-2-Mon-temp 15.0 °C
     2015-12-27 15:39:22   weekprofile-2-Mon-time 00:00-00:00
     2015-12-27 15:39:22   weekprofile-3-Tue-temp 15.0 °C
     2015-12-27 15:39:22   weekprofile-3-Tue-time 00:00-00:00
     2015-12-27 15:39:22   weekprofile-4-Wed-temp 15.0 °C
     2015-12-27 15:39:22   weekprofile-4-Wed-time 00:00-00:00
     2015-12-27 15:39:22   weekprofile-5-Thu-temp 15.0 °C
     2015-12-27 15:39:22   weekprofile-5-Thu-time 00:00-00:00
     2015-12-27 15:39:22   weekprofile-6-Fri-temp 15.0 °C
     2015-12-27 15:39:22   weekprofile-6-Fri-time 00:00-00:00
     2015-11-18 15:06:03   windowOpenDuration 15
     2015-12-16 08:43:31   windowOpenTemperature off
   Internals:
     interfaces thermostat;temperature;battery
Attributes:
   IODev      CULMAX0
   group      Heizung
   keepAuto   1
   room       Büro


ShutterContact

Internals:
   CULMAX0_MSGCNT 54
   CULMAX0_TIME 2016-02-03 13:24:33
   DEF        ShutterContact 10948d
   IODev      CULMAX0
   LASTInputDev CULMAX0
   MSGCNT     54
   NAME       bu_SC
   NR         121
   RSSI       -75.5
   STATE      closed
   TYPE       MAX
   addr       10948d
   backend    CULMAX0
   rferror    0
   serial     LEQ1156889
   type       ShutterContact
   Readings:
     2016-02-03 13:24:33   RSSI            -75.5
     2016-02-03 13:24:33   battery         ok
     2016-02-03 13:23:56   firmware        1.0
     2016-02-03 13:23:56   groupid         0
     2016-02-03 13:23:56   msgcnt          28
     2016-02-03 13:24:33   onoff           0
     2016-02-03 13:24:33   state           closed
     2016-02-03 13:23:56   testresult      0
   Internals:
     interfaces switch_active;battery
Attributes:
   IODev      CULMAX0
   group      Heizung
   room       Büro
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

Wzut

Ich habe auch ein Wandthermostat das ist offensichtlich verliebt in die 17°C
Bei jedem Ende der Temperatursturz Erkennung springt es von 12 auf 17 (kein FK vorhanden)
Die 12° sind ihm als windowOpenTemperature vorgegeben, aber keine andere Sollvorgabe hat den Wert 17 :(


Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Reinerlein

Hallo,

bei mir ist das auch so, sogar bei den meisten Fensterkontakten.
Ich habe mir mit einem kleinen Notify geholfen:

heizung_.*_FK_.*:closed {
  if ($NAME =~ m/(.*)_FK/i) {
    my $device = $1;

    if (OldValue($NAME) ne 'closed') {
      my $newTemperature = myGetCurrentWeekProfileValue($device.'_WT');
      Log 3, 'FK-Closed: Setting temperature from '.ReadingsVal($device, 'desiredTemperature', '-').'° C to auto-WeekProfile ('.$newTemperature.'° C) on device '.$device.'...';
      fhem('set '.$device.' desiredTemperature auto '.$newTemperature);
    }
  }
}

Mein Heizungssystem hat folgende Konvention:
- Anfang mit "heizung_"
- Dann der Name des Raumes
- Endung für einen Wandthermostat ist "_WT"
- Endung für Fensterkontakte ist "_FK_" gefolgt von der Position des FK, z.B. "_FK_Links"
Sodass sich für das Wohnzimmer z.B. ergibt:
- Stellventil: "heizung_Wohnzimmer"
- Wandthermostat: "heizung_Wohnzimmer_WT"
- Fensterkontakt: "heizung_Wohnzimmer_FK_Links"

Dazu habe ich noch eine kleine Prozedur in meiner 99_myUtils.pm untergebracht, die mir die aktuelle Temperatur nach dem Wochenprogramm ermittelt:

sub myGetCurrentWeekProfileValue($) {
  my ($device) = @_;
 
  return myGetWeekProfileValue($device, gettimeofday());
}

sub myGetWeekProfileValue($$) {
  my ($device, $time) = @_;
 
  # Wochenprofil durchsuchen. Das macht das LogProxy-Modul viel besser als ich :-)
  my @result = logProxy_WeekProfile2Plot($device, myGetSVGTimeString($time), myGetSVGTimeString($time + 1));
 
  return $1 if ($result[0] =~ m/^.*? (.*?)$/m); # Ersten ermittelten Wert zurückliefern, da es der gesuchte ist...
  return $result[1]; # Fallback auf das Minimum
}


Das ist alles furchtbar pragmatisch und ginge sicherlich eleganter, funktioniert aber ganz gut :)

Grüße
Reinerlein

rubbertail

Tach,

ich hatte auch einen Thermostat mit dem Problem... das Schlafzimmer war dauerhaft auf 16°C gestellt (16.0°C, 0:00 - 0:00, jeden Tag), Eco-Temperature und Comfort-Temperature war auf 16°C; nach jedem Fenster öffnen und schließen gings wieder mit 17°C weiter.

Bei mir war die Lösung: Einmal am Tag (mach ich mittags, weil eh nicht zuhause) eine andere Temperatur einstellen (hier: 15.5 °C) für 30min - das Auto-Programm also

set <wandthermostatname> weekProfile 16,12:00,15.5,12:30,16

Seitdem bleibt er brav auf 16 und springt dahin wieder zurück.

Ich meine, ich hatte das irgendwo hier gelesen (leider find ichs auf die Schnelle nicht), dass dauerhaft dieselbe Temperatur MAX doof findet. Aber so gehts - mit keinerlei Komfortverlust... :)

Just my two cents.

Martin
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

Reinerlein

Hi Martin,

das hatte ich bei mir auch erst (zumindest bei dem im Schlafzimmer), habe dann einen Punkt um 21:00 hinzugefügt, aber keine Verbesserung im Verhalten bemerkt...
Daraufhin hatte ich dieses Notify gebaut.

Vielleicht gibt es da auch noch Firmware-Einflüsse :)

Grüße
Reiner

rubbertail

Hallo Reiner,

schaltetest du denn an dem Punkt auch die Temperatur um (und dann wieder zurück)? Ich hatte es erst mit einem Schaltpunkt, aber mit gleicher TEmperatur versucht - da war aber das Modul wohl zu schlau für. :) Daher der Wechsel um ein halbes Grad - das tut nicht wirklich weh...

Martin
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

Reinerlein

Hi Martin,

ich hatte beides versucht gehabt. Allerdings sehr kurz (1 Minute Abstand). Ich werde das mal mit 30 Minuten versuchen.

Ich habe auch das Gefühl, dass man die Wochenprofile am Besten am Wandthermostat und am Heizungsthermostat identisch ändert. Ich hatte sonst z.B. das Phänomen, dass Morgens um 5Uhr das Ding an der Heizung losgesurrt hat, weil da wohl ein Profilpunkt war, um dann kurz danach vom Wandthermostat wieder zurückgepfiffen zu werden.
Unser Kopfende vom Bett steht sehr nah am Heizkörper, sodass wir also immer um 5Uhr geweckt worden sind :)
Bei der Suche habe ich etwas gebraucht... :)

Grüße
Reiner

Markus M.

#7
Wenn du sowieso keine MAX Software mehr auf dem Cube hast, brauchst du auch nicht mehr in den MAX Konventionen denken ;)

Fenster auf:window_bedroom:.*Open {
fhem("set radiator_bedroom maxValveSetting 5");
}


Fenster zu:window_bedroom:.*Closed {
fhem("set radiator_bedroom maxValveSetting 100");
}
Aktuell weder Smarthome noch FHEM vorhanden

roman1528

Zitat von: Markus M. am 03 Februar 2016, 18:41:39
Fenster auf:window_bedroom:.*Open {
fhem("set radiator_bedroom maxValveSetting 5");
}

Fenster zu:window_bedroom:.*Closed {
fhem("set radiator_bedroom maxValveSetting 100");
}


Also mein Problem hat sich mit dem setzen einer gering unterscheidenden Temperatur im Wochenprogramm aufgelöst.

Aber der Plan von Markus ist natürlich hervorragend. Allerdings würde ich ein setzen der desiredTemperature bevorzugen.
Wird die maxValeSetting nämlich aus irgendwelchen Gründen (Funkstörung) einmal nicht zurück gesetzt bleibt es kalt und man wundert sich warum es niemals warm wird egal welche Temperatur man einstellt.

Dazu müsste man erst den alten Wert speichern dann auf z.B. 5.0 stellen und wenn's Fenster wieder zu ist zurück auf den gespeicherten Wert setzen.
Sollte hier die alte Temperatur nicht wieder gesetzt werden kann man immernoch manuell eingreifen ohne suchen zu müssen.

Ich werde mich da morgen/nacher mal ransetzen und mein Ergebniss hier präsentieren.

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

roman1528

Zitat von: roman1528 am 04 Februar 2016, 01:51:05
Ich werde mich da morgen/nacher mal ransetzen und mein Ergebniss hier präsentieren.

Moin.

Das war ja was... Da ich keinen schimmer von Perl habe, musste ich ganz schön an meinen Fingern saugen....
Ich habe das jetzt so gemacht, dass ich es verstehe. Sicherlich geht es eleganter und aus Sicht eines Programmierers einfacher....
Aber... nur ein notify pro Raum!

define notify_bu_fenster notify bu_SC:onoff.* { if(ReadingsVal('bu_SC','onoff','') == 1) { fhem("setreading notify_bu_fenster savedDesiredTemp ".ReadingsVal('bu_WT','desiredTemperature',''));; fhem("setreading notify_bu_fenster savedMode ".ReadingsVal('bu_WT','mode',''));; fhem("set bu_WT desiredTemperature 5.0")} else { if(ReadingsVal('bu_WT','mode','') eq ReadingsVal('notify_bu_fenster','savedMode','')) { fhem("set bu_WT desiredTemperature ".ReadingsVal('notify_bu_fenster','savedDesiredTemp',''))} else { fhem("set bu_WT mode ".ReadingsVal('notify_bu_fenster','savedMode',''));; fhem("set bu_WT desiredTemperature ".ReadingsVal('notify_bu_fenster','savedDesiredTemp',''))} } }

Ich habe den Mode mit rein genommen, weil ich das ATTR "keepauto 1" bei all meinen Max-Devices gesetzt habe. Wenn die Heizung beim öffnen des Fensters auf Manual steht wird sie auf jeden Fall beim schließen des Fensters wieder auf Manual zurück gestellt.
Um ein paar Credits zu sparen mit Abfrage ob sich am Mode was geändert hat.

Falls irgendwelche Verbesserungsvorschläge da sind, nehme ich diese gern an.

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

roman1528

#10
Zitat von: roman1528 am 04 Februar 2016, 12:56:03
define notify_bu_fenster notify bu_SC:onoff.* { if(ReadingsVal('bu_SC','onoff','') == 1) { fhem("setreading notify_bu_fenster savedDesiredTemp ".ReadingsVal('bu_WT','desiredTemperature',''));; fhem("setreading notify_bu_fenster savedMode ".ReadingsVal('bu_WT','mode',''));; fhem("set bu_WT desiredTemperature 5.0")} else { if(ReadingsVal('bu_WT','mode','') eq ReadingsVal('notify_bu_fenster','savedMode','')) { fhem("set bu_WT desiredTemperature ".ReadingsVal('notify_bu_fenster','savedDesiredTemp',''))} else { fhem("set bu_WT mode ".ReadingsVal('notify_bu_fenster','savedMode',''));; fhem("set bu_WT desiredTemperature ".ReadingsVal('notify_bu_fenster','savedDesiredTemp',''))} } }

Ich habe da wieder mal viel zu kompliziert gedacht...
Außerdem scheint er ab und an zu triggern obwohl ich nichts am Fenster mache.

Also: DOIF ohne "do always":
define doif_bu_fesnter DOIF ([bu_SC:onoff] == 1) (setreading doif_bu_fenster savedDesiredTemp [bu_WT:desiredTemperature], setreading doif_bu_fenster savedMode [bu_WT:mode], set bu_WT desiredTemperature manual 5.0) DOELSEIF ([bu_SC:onoff] == 0 and [doif_bu_fenster:savedMode] eq "manual") (set bu_WT desiredTemperature manual [doif_bu_fenster:savedDesiredTemp]) DOELSE (set bu_WT desiredTemperature auto)
Ist eindeutig besser. Auch hier nur ein DOIF pro Raum.
Wenn Fenster offen: Speichern der "desiredTemperature" und "mode" -> 5.0°C und "mode" manual. (Damit nicht irgendwann das Wochenprogramm nach draußen heizt...)
Wenn Fenster zu: Prüfen ob "mode manual" war. Wenn ja -> savedDesiredTemp und "mode" manual (wegen "keepauto"). / Wenn "mode auto" war -> set desiredTemperature auto.

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik