Danfoss/devolo Thermostat MT2650 u. Danfoss RS Room Sensor

Begonnen von Ralf, 07 Oktober 2016, 18:03:43

Vorheriges Thema - Nächstes Thema

Ralf

Hallo,
ich bin relativ neu bei FHEM, aber voll und ganz bei der Sache und habe bisher meine ganzen Probleme mit Hilfe des Forums und des Wikis selbst lösen können, aber jetzt komme ich nicht mehr weiter und hoffe mit Eurer Unterstützung eine Lösung zu finden.

Ausgangssituation:
Ich betreibe ein Danfoss devolo Thermostat MT2650, das annähernd Baugleich zum LC-13 von Danfoss ist. Das Teil läuft ohne Probleme.
Zusätzlich kommt noch der Danfoss RS zu Einsatz, eine Art Wandthermometer, das auch ohne Probleme läuft und mit dem die Temperatur eingestellt wird, die dann per notify an das Thermostat übertragen und dort per "setpointHeating" gesetzt wird.

Läuft eigentlich alles bestens und jetzt kommt das eigentliche Problem:
Das Thermostat am Heizkörper ist teilweise verbaut, was sich auch bautechnisch nicht anders regeln lässt. Das führt am Thermostat zu einem massiven Hitzestau, wodurch die Temperatur total verfälscht wird und da das MT2650 ja direkt am Thermostat misst, regelt dieses sofort zurück.

Ich suche jetzt nach einer Möglichkeit die Temperaturmessung am Thermostat zu deaktivieren oder zu manipulieren und die Steuerung nur über den Room Sensor laufen zu lassen.

Sollte mir da jemand helfen können, wäre ich sehr dankbar.  :)

Internals:
   DEF        c1662ed1 27
   IODev      ZWAVE1
   LASTInputDev ZWAVE1
   MSGCNT     6015
   NAME       Thermostat_Kueche
   NR         85
   STATE      IST: 32.73 C | SOLL: 22.00 C heating
   TYPE       ZWave
   ZWAVE1_MSGCNT 6015
   ZWAVE1_RAWMSG 0004001b028407
   ZWAVE1_TIME 2016-10-07 17:04:01
   ZWaveSubDevice no
   homeId     c1662ed1
   isWakeUp   1
   lastMsgSent 1475852643.87747
   nodeIdHex  1b
   Readings:
     2016-10-07 12:17:12   SEND_DATA       failed:00
     2016-10-06 18:47:40   UNPARSED        BATTERY 03800145
     2016-10-07 17:04:00   battery         69 %
     2016-10-05 16:32:23   ccsChanged      00
     2016-10-07 17:04:01   ccsOverride     no, unused
     2016-10-05 16:37:16   ccs_fri         N/A
     2016-10-05 16:37:15   ccs_mon         N/A
     2016-10-05 16:37:16   ccs_sat         N/A
     2016-10-05 16:37:17   ccs_sun         N/A
     2016-10-05 16:37:16   ccs_thu         N/A
     2016-10-05 16:37:16   ccs_tue         N/A
     2016-10-05 16:37:16   ccs_wed         N/A
     2016-10-04 12:21:30   model           Danfoss devolo Thermostat MT2650
     2016-10-04 12:21:30   modelConfig     danfoss/z.xml
     2016-10-04 12:21:30   modelId         0002-0005-0175
     2016-10-07 17:04:01   setpointTemp    22.00 C heating
     2016-10-07 09:27:00   state           setpointHeating 26
     2016-10-07 17:04:01   temperature     32.73 C
     2016-08-14 11:20:05   thermostatSetpointSupported heating
     2016-10-07 17:04:03   timeToAck       0.054
     2016-10-07 17:04:03   transmit        OK
     2016-10-07 17:04:01   wakeup          notification
     2016-08-16 20:41:58   wakeupIntervalCapabilitiesReport min 60 max 1800 default 300 step 60
     2016-08-23 23:11:10   wakeupReport    interval 300 target 1
   SendStack:
     set:131b054301010116258f
     set:131b0543010101162590
     set:131b0543010101162591
     set:131b0543010101162592
Attributes:
   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
   group      Küche
   room       Küche,ZWave
   stateFormat IST: temperature | SOLL: setpointTemp
   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
FHEM5.7@RaspPi3 |RaZberry|FIBARO FGWPE Wall Plug|devolo MT02648|Philio PST02-A|
Vision ZG8101 Garage Door|Danfoss RS Room Sensor|DanfossThermostat MT2650|
Popp 009105 Wall Plug Switch|Aeotec DSD31 Siren Gen5|FIBARO System FGS212 Switch 3kW|

A.Harrenberg

Hi Ralf,

ich denke das dürfte nicht so einfach gehen... Ich kenne die Befehle der Klasse jetzt aber auch nicht mehr so genau, obwohl ich da einige von implementiert habe...

Soweit ich mich erinnere kann man da keinen Offset aufprägen. Die Temperatur am Thermostat kannst Du aber auch auslesen, oder?

Die einzige Idee die ich jetzt hätte wäre anhand der Termpeaturdifferenz Solltemperatur-Raumtemperatur den Setpoint des Thermostaten (in Abhängigkeit seiner eigener Temperatur zu ändern).

Also Zimmer 2°C zu kalt -> Solltemperatur 2°C höher setzen als der Termostat meldet und so weiter. Das dürfte allerdings die Batterie von dem Ding in einer ziemlichen kurzen Zeit leernuckeln, da Du für eine halbwegs vernünftige Regelung da wahrscheinlich mind. alle 15 Minuten den Setpoint neu setzen musst.

Wirklich schön wird das sicherlich nicht gehen.

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

Ralf

Hi Andreas,

die Batterien sind nicht das Problem, da ich das Thermostat schon so modifiziert habe, dass ich ganz schnell und einfach ein neues "Batterie-Pack" anstecken kann.
Das Problem ist der "Wärmestau", der extrem ist.

Wenn Du Dir meine geposteten Werte anschaust, siehst Du "setpointTemp  =  22.00 C heating", das ist die gesetzte "Soll-Temperatur" von Room-Sensor.
Die "temperature =  32.73 C" ist die gemessene Temperatur am Thermostat, das Thermometer im Rooms-Sensor , also die gemesse Raumtemperatur zeigte zur gleichen Zeit 19,1  C an.

Das bedeutet:
Der Room-Sensor war auf 22.00 C Soll eingestellt, übermittelt die Daten an das Thermostat am Heizkörper das innerhalb 2 Min. auf über 32 C steigt und deshalb sofort wieder abregelt. Wegen der kurzen Zeit schafft es der Heizkörper aber nicht den Raum zu erwären.

Aufgrund der extremen Erwärmung dauert es auch ziemlich lange bis das Heizkörperthermostat wieder unter 22.00 C fällt, so dass der Heinzkörper dann schon wieder total kalt ist, bist das Thermostat endlich wieder auf macht und das Spiel wieder von vorne beginnt.

Derzeit erreiche ich bei eingestellter maximaler Solltemperatur von 28.00 C gerade einmal 20.00 C Raumtemperatur.
 
FHEM5.7@RaspPi3 |RaZberry|FIBARO FGWPE Wall Plug|devolo MT02648|Philio PST02-A|
Vision ZG8101 Garage Door|Danfoss RS Room Sensor|DanfossThermostat MT2650|
Popp 009105 Wall Plug Switch|Aeotec DSD31 Siren Gen5|FIBARO System FGS212 Switch 3kW|

A.Harrenberg

Hi Ralf,
Zitat von: Ralf am 07 Oktober 2016, 23:02:40
Das Problem ist der "Wärmestau", der extrem ist.

Wenn Du Dir meine geposteten Werte anschaust, siehst Du "setpointTemp  =  22.00 C heating", das ist die gesetzte "Soll-Temperatur" von Room-Sensor.
Die "temperature =  32.73 C" ist die gemessene Temperatur am Thermostat, das Thermometer im Rooms-Sensor , also die gemesse Raumtemperatur zeigte zur gleichen Zeit 19,1  C an.
das ist in der Tat extrem...

Zitat von: Ralf am 07 Oktober 2016, 23:02:40
Derzeit erreiche ich bei eingestellter maximaler Solltemperatur von 28.00 C gerade einmal 20.00 C Raumtemperatur.
Und das kleine Detail hier verhindert auch das Du die dynamisch den Setpoint verschiebst wie von mir vorgeschlagen, da es eine Maximaltemperature von 28°C gibt und Du in Deinem Beispiel fast 36°C als Setpoint setzen müsstest um ein ähnliches Heizverhalten zu erhalten.

So leid es mir tut, aber mir sind da keine weiteren Befehle oder Möglichkeiten in der Thermostatklasse bekannt da eine andere Temperatur als Regelgröße "einzuspeisen". Da wird dann nur noch eine Hardwaremodifikation helfen, entweder Lüftung verbessern oder das Ding zerlegen und den Temperaturfühler suchen und "in den Raum" verlängern.

Ob sich das allerdings lohnt weiß ich nicht.

Ich persönlich nutze Thermostate von HomeMatic zusammen mit Wandthermostaten. Hier findet (mMn) die Regelung auf den Sensorwert des Wandthermostat statt, so wie es für Dich ideal wäre. Vielleicht kommt ja für Dich auch ein neues System in Frage.

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

Ralf

Hi,

ok, danke für alle bisherigen Infos... aber so schnell gebe ich noch nicht auf , denn der "RS Room Sensor" ist ja eigentlich genau für meine Problematik gemacht, was der Info-Text von Danfoss zum Room Sensor zeigt:

Auszug:
Wenn das Thermostat Einflüssen durch nahegelegene Wärme- oder Kältequellen (z. B. einen Kamin, direkte Sonneneinstrahlung oder Durchzug)
ausgesetzt ist, kann das System durch einen Raumfühler des Typs Danfoss Link™ RS erweitert werden. Der RS-Fühler sollte in einem Abstand
zwischen einem und fünf Metern vom Thermostaten entfernt positioniert werden. Auf Grundlage der von dem Fühler gemessenen Temperatur wird
dann die Raumtemperatur geregelt.

Darum hab ich das Teil ja gekauft... vielleicht sollte ich mal Danfoss nerven, aber mann/frau kennt das ja, was da meist als Info kommt  ;)

Ich bleib dran und halte Euch auf dem Laufenden...
FHEM5.7@RaspPi3 |RaZberry|FIBARO FGWPE Wall Plug|devolo MT02648|Philio PST02-A|
Vision ZG8101 Garage Door|Danfoss RS Room Sensor|DanfossThermostat MT2650|
Popp 009105 Wall Plug Switch|Aeotec DSD31 Siren Gen5|FIBARO System FGS212 Switch 3kW|

A.Harrenberg

Hi,

kannst Du mal die Anleitungen zu den Teilen irgendwie posten? Ich finde im Netz da nur so "bla bla" Teile ohne richtige Details...

Ich schau mir nachher noch mal die Befehlsklasse an ob die soetwas überhaupt unterstützt, erinnern kann ich mich an so eine Möglichkeit da allerdings nicht.

Wenn das was von Danfoss Link (tm) dran steht würde mich auch nicht wundern wenn die etwas implementiert hätten was NICHT Standard und wozu uns dann natürlich die Befehle fehlen...

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

A.Harrenberg

Hi Ralf,

ich habe jetzt doch noch mal direkt in die Spezifikation reingeschaut. Mir fällt da nichts auf wie man sowas über die Befehlsklasse (THERMOSTAT_SETPOINT) machen könnte.

Ich könnte mir nur vorstellen, das wenn das Thermostat einen Temperaturreport bekommt das es diesen dann als Ist-Temperatur verwendet. Solche Notifications kann FHEM aber nicht erzeugen/versenden.

Um das mal grundlegend zu testen wäre es vielleicht möglich so vorzugehen:

In dem Raumfühler eine Assoziation (von der Gruppe die auch die Ist-Temperatur enthält) an das Thermostat eintragen, falls das konfigurierbar ist würde ich die Zeit zwischen den Reports auf das Minimum setzen. Das Ding sendet dann aber an ein "schlafendes Wake-Up" Device... D.h. Du müsstest über die entsprechenden Tastendrücke versuchen das Ding "wach zu halten", d.h. immer wieder manuell ein Wake-Up auslösen.

Falls das Wirkung zeigt wäre es möglich das man einen speziellen Befehl in FHEM erzeugt, der einen Temperatur-Report (mit der Temperatur des Raumfühlers) erzeugt und den an das Thermostat abschickt. Diesen Befehl müssten man dann in ein NOTIFY auf das Wake-Up von dem Thermostaten legen, damit immer wenn er aufwacht er was geschickt bekommt.

Ich halte es aber für recht unwahrscheinlich das das Thermostat auf eine gesendete Temperatur reagiert...

Aber vielleicht sagen ja Deine Anleitungen oder der Danfoss Support da noch mehr zu dem Thema.

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

rudolfkoenig

Wenn die Werbung einigermassen stimmt, dann gehe ich davon aus, dass bei der Anleitung des Raumfühlers beschrieben ist, wie man ihn mit der Heizungsregelung paart, sowas muss ohne FHEM oder andere HA-Software funktionieren, hoechstens fuer die Einrichtung muss ein HA-Software her.

Auf einem anderen Blatt steht, dass man das von FHEM auch gerne ohne einen Raumfühler steuern moechte.
Das ist aber Schritt zwei.

Ralf

Hi,

ok, hier mal kurz was ich bisher rausgefunden habe und was ich derzeit versuche.
1. Man muss grundsätzlich unterscheiden zwischen danfoss und danfoss/devolo.
2. Danfoss übernimmt keinerlei support für die devolo-Geräte obwohl dort auch danfoss drauf steht, da devolo laut danfoss die firmware modifiziert hat.
3. Nur bei meiner devolo-Anleitung befinden sich nähere Infos zu Z-Wave, hier der Link https://www.myplanets.de/infos/Full_Manual_Home_Control_Raumthermostat_0916_de_online.pdf
4. Eine direkte Kommunikation zwischen Raumfühler und Heizkörperthermostat gibt es, wie zu erwarten war, nicht. Läuft alles über die Zentrale (Controller). Es wird auch nirgends beschrieben wie man den Raumfühler mit dem Heizkörperthermostat paart.
5. Zwischenzeitlich hab ich rausgefunden, dass das Heizkörperthermostat über zwei Fühler verfügt. Einer sitzt in der Nähe des Heizkörperventils und misst die Wassertemp des Heizkörpers und ein Fühler sitzt hinter dem Display und soll die Umgebungstemperatur messen.
6. Habe  versucht durch Isolierung des Thermostats das schnelle Aufheizen zu verzögern. Ob das u.U. nicht sogar kontraproduktiv war, soll sich heute in Laufe des Tages zeige.
7. Habe den Support von devolo angeschrieben und das Problem geschildert, mal sehen was die schreiben.
8. Versuche derzeit eine "devolo Home Zentrale" zu Testzwecken aufzutreiben um zu sehen, ob es damit weitere Möglichkeiten gibt.

Ich halte Euch auf dem Laufenden..

Grüße

Ralf
FHEM5.7@RaspPi3 |RaZberry|FIBARO FGWPE Wall Plug|devolo MT02648|Philio PST02-A|
Vision ZG8101 Garage Door|Danfoss RS Room Sensor|DanfossThermostat MT2650|
Popp 009105 Wall Plug Switch|Aeotec DSD31 Siren Gen5|FIBARO System FGS212 Switch 3kW|

Nordmann

#9
Hallo zusammen,

ich habe einen FIBARO System FGMS001 Motion Sensor als Temperaturfühler im Einsatz und möchte
meinen Danfoss Thermostat nach folgender Logik steuern (zumindest in der ersten Ausbaustufe):
# Heizungssteuerung Teil 1 Küche (16.10.2016) -
# Temperatur Absenkung "OG_KUE_Thermostat" auf 17° wenn Sensor "OG_KUE_Sensor" über 21°
# Temperatur Anhebung "OG_KUE_Thermostat" auf 25° wenn Sensor "OG_KUE_Sensor" unter 21°


Aber ich glaube ich habe da in meiner Programmierung einen großen "BOCK" drin:
define OG_KUE_Thermostat_Steuerung notify OG_KUE_Thermostat
{ if (ReadingsVal ("OG_KUE_Sensor","temperature",99) > 21.0)
    { fhem("set OG_KUE_Thermostat_Steuerung setpointHeating 17") }
else
    { fhem("set OG_KUE_Thermostat_Steuerung setpointHeating 25") }
}

Ich bekomme im Logfile folgende Fehlermeldung:
2016.10.16 14:09:11.524 1: configfile: Usage: define <name> notify <regexp> <command>
Unknown command {, try help.
Please define OG_KUE_Thermostat_Steuerung first
Unknown command else, try help.
Please define OG_KUE_Thermostat_Steuerung first
Unknown command }, try help.


Ist das überhaupt sie richtige Vorgehensweise um die Aufgabe zu erfüllen?

Nordmann

#10
Also ich habe den ganzen Tag an meiner "Steuerung" rumprobiert und habe mich in ein gedankliches "Loch" manövriert :-(

Einer meiner Varianten ist:
define H_Steuerung_KUE DOIF ([OG_KUE_Sensor:temperature] gt "21.0") (set OG_KUE_Thermostat setpointHeating 17) DOELSEIF ([OG_KUE_Sensor:temperature] le "21.0") (set OG_KUE_Thermostat setpointHeating 25)

Aber da passiert auch nichts.

Noch mal zur Erinnerung, ich will folgendes erreichen, um damit meinen Danfoss Heizkörper Thermostat zu Steuern:

# Heizungssteuerung Küche
# Temperatur Absenkung "OG_KUE_Thermostat" auf 17° wenn Sensor "OG_KUE_Sensor" über 21°
# Temperatur Anhebung "OG_KUE_Thermostat" auf 25° wenn Sensor "OG_KUE_Sensor" unter oder gleich  21°

Wäre jemand von Euch so freundlich und würde mich wieder auf den rechten Pfad bringen :-)

Nordmann

Nachtrag, um kurz vor "dreh durch":

define H_Steuerung_KUE DOIF ([OG_KUE_Sensor:temperature] gt "21.0 C") (set OG_KUE_Thermostat setpointHeating 17) DOELSEIF ([OG_KUE_Sensor:temperature] le "21.0 C") (set OG_KUE_Thermostat setpointHeating 25)

bringt auch nichts :-(

Bei
define H_Steuerung_KUE DOIF ([OG_KUE_Sensor:temperature] > 21.0) (set OG_KUE_Thermostat setpointHeating 17) DOELSEIF ([OG_KUE_Sensor:temperature] <= 21.0) (set OG_KUE_Thermostat setpointHeating 25)
bringt mir das Logfile Fehler wie diesen:
PERL WARNING: Argument "22.8 C" isn't numeric in numeric gt (>) at (eval 916) line 1.


Nordmann

#12
Guten Morgen zusammen! ;D

Nach meiner "Programmierung" mit

define H_Steuerung_KUE DOIF ([OG_KUE_Sensor:temperature] gt "21.0 C") (set OG_KUE_Thermostat setpointHeating 17) DOELSEIF ([OG_KUE_Sensor:temperature] le "21.0 C") (set OG_KUE_Thermostat setpointHeating 25)

ist irgendwann in der Nacht laut Eventmonitor folgendes passiert:

2016-10-17 01:55:43.872 ZWave OG_KUE_Sensor temperature: 22.8 C
2016-10-17 01:55:44.127 DOIF H_Steuerung_KUE cmd_nr: 2
2016-10-17 01:55:44.127 DOIF H_Steuerung_KUE cmd: 2
2016-10-17 01:55:44.127 DOIF H_Steuerung_KUE cmd_event: OG_KUE_Sensor
2016-10-17 01:55:44.127 DOIF H_Steuerung_KUE error: set OG_KUE_Thermostat setpointHeating 25: Scheduled for sending after WAKEUP
2016-10-17 01:55:44.127 DOIF H_Steuerung_KUE cmd_2
2016-10-17 01:55:44.131 ZWave OG_KUE_Sensor temperature: 0.00228 C
2016-10-17 01:57:18.278 ZWave OG_KUE_Thermostat battery: 63 %
2016-10-17 01:57:18.336 ZWave OG_KUE_Thermostat setpointTemp: 21.00 C heating
2016-10-17 01:57:18.393 ZWave OG_KUE_Thermostat ccsOverride: no, unused
2016-10-17 01:57:18.450 ZWave OG_KUE_Thermostat wakeup: notification
2016-10-17 02:00:42.084 DOIF H_Steuerung_KUE cmd_nr: 1
2016-10-17 02:00:42.084 DOIF H_Steuerung_KUE cmd: 1
2016-10-17 02:00:42.084 DOIF H_Steuerung_KUE cmd_event: OG_KUE_Sensor
2016-10-17 02:00:42.084 DOIF H_Steuerung_KUE error: set OG_KUE_Thermostat setpointHeating 17: Scheduled for sending after WAKEUP
2016-10-17 02:00:42.084 DOIF H_Steuerung_KUE cmd_1
2016-10-17 02:00:42.089 ZWave OG_KUE_Sensor temperature: 22.8 C
2016-10-17 02:00:42.689 ZWave OG_KUE_Sensor temperature: 22.8 C
2016-10-17 02:00:43.240 ZWave OG_KUE_Sensor temperature: 22.8 C
2016-10-17 02:02:14.339 ZWave OG_KUE_Thermostat battery: 63 %
2016-10-17 02:02:14.400 ZWave OG_KUE_Thermostat setpointTemp: 25.00 C heating
2016-10-17 02:02:14.454 ZWave OG_KUE_Thermostat ccsOverride: no, unused
2016-10-17 02:02:14.511 ZWave OG_KUE_Thermostat wakeup: notification
2016-10-17 02:02:49.189 at Atdanfoss Next: 02:32:49
2016-10-17 02:02:49.202 at AtOG_KUE_Sensor Next: 02:32:49
2016-10-17 02:05:40.523 ZWave OG_KUE_Sensor temperature: 22.8 C
2016-10-17 02:05:40.870 ZWave OG_KUE_Sensor temperature: 22.8 C
2016-10-17 02:05:41.631 ZWave OG_KUE_Sensor temperature: 22.8 C
2016-10-17 02:07:10.409 ZWave OG_KUE_Thermostat battery: 63 %
2016-10-17 02:07:10.476 ZWave OG_KUE_Thermostat setpointTemp: 17.00 C heating


Also alles irgendwie falsch zwischendurch!
Und vor allen Dingen hat die "Programmierung" erst nach 2 Stunden "gegriffen", das ist doch viel zu spät!!!!!!
Was kann ich denn hier machen, damit die Sache läuft!!


A.Harrenberg

Hi,

du kannst nicht Zahlen und Texte durcheinanderwürfeln...

Aus der (deutschen) CommandRef zu DOIF:
ZitatVergleichende Abfragen werden, wie in Perl gewohnt, mit Operatoren ==, !=, <, <=, >, >= bei Zahlen und mit eq, ne, lt, le, gt, ge, =~, !~ bei Zeichenketten angegeben.

D.h. du brauchst hier ">=" und "<" da Du Zahlen vergleichen willst. Da das Reading aber Zahl + Einheit enthält muss Du die Zahl "rausfiltern"...

Ebenfalls aus der CommandRef zu DOIF:
ZitatFiltern nach Ausdrücken mit Ausgabeformatierung   back

Syntax: [<Device>:<Reading>|<Internal>:d|"<Regex>":<Output>]

d - Der Buchstabe "d" ist ein Synonym für das Filtern nach Dezimalzahlen, es entspricht intern dem regulären Ausdruck "(-?\d+(\.\d+)?)"

Weiter macht es wenig (bis gar keinen Sinn) auf eine > 21 abzufragen und dann eine ELSEIF Abfrage auf < 21 zu machen. Hierbei lässt Du nämlich den Fall das es genau 21 Grad sind komplett weg! Also eine einfache DOIF ... > 21 DOELSE ... ist hier deutlich besser.

Schau Dir doch mal die vielen Beispiele in der deutschen CommandRef zu DOIF an.

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

Nordmann

#14
Zu meiner "Ehrenrettung".
Das define H_Steuerung_KUE DOIF ([OG_KUE_Sensor:temperature] gt "21.0 C") (set OG_KUE_Thermostat setpointHeating 17) DOELSEIF ([OG_KUE_Sensor:temperature] le "21.0 C") (set OG_KUE_Thermostat setpointHeating 25) falsch ist, weil ich ja Zahlen auslesen will und keine Strings, leuchtet ein :-)
Aber auch wenn das falsch war, die 21 C sind in der Abfrage dabei: le (lower equal), oder liege ich da wieder falsch  ;)

Da ich ja noch am lernen bin und die Syntax peu à peu lerne, habe ich jetzt erst einmal versucht mein define "geradezubiegen.
Wenn das funktioniert teste ich die "DOIF ... > 21 DOELSE" Variante.

Ich habe mich an die Angaben in der Commandref gehalten.
Es soll aus einem Reading, das z. B. ein Prozentzeichen beinhaltet, nur der Zahlenwert für den Vergleich genutzt werden:

define di_heating DOIF ([adjusting:actuator:d] < 10) (set heating off) DOELSE (set heating on)


Hier mein define:
define H_Steuerung_KUE DOIF ([OG_KUE_Sensor:temperature:d] >= 21.0) (set OG_KUE_Thermostat setpointHeating 17) DOELSEIF ([OG_KUE_Sensor:temperature:d] < 21.0) (set OG_KUE_Thermostat setpointHeating 25)

Jetzt bekomme ich im Eventmonitor folgende Fehlermeldeung:
2016-10-17 19:26:31.507 DOIF H_Steuerung_KUE error: set OG_KUE_Thermostat setpointHeating 17: Scheduled for sending after WAKEUP

Wenn ich das jetzt richtig sehe, muss ein WAKEUP des OG_KUE_Thermostat stattfinden BEVOR das "set OG_KUE_Thermostat setpointHeating xx" abgesetzt wird.

Jetzt hatte ich folgende Idee:
define H_Steuerung_KUE DOIF ([OG_KUE_Sensor:temperature:d] >= 21.0) (get OG_KUE_Thermostat battery && set OG_KUE_Thermostat setpointHeating 17) DOELSEIF ([OG_KUE_Sensor:temperature:d] < 21.0) (get OG_KUE_Thermostat battery && set OG_KUE_Thermostat setpointHeating 25)
Aber das bringt mich auch nicht weiter. Irgendwie ist da total der Wurm drin.

Nachtrag:
Also wenn ich das jetzt richtig sehe liegt es z.T. immer noch daran, dass ich die Temperatur immer noch nicht richtig auslese, oder?
Ich hab das immer noch nicht kapiert wie das mit dem "Trennen" der Zahl vom C (für Celsius) funktioniert.
Kann mir bitte da mal jemand auf die Sprünge helfen was das mit "(-?\d+(\.\d+)?)" auf sich hat.
Was muss ich machen, um bei 21.0 C in meinem o.g. Beispiel nur die 21.0 auszulesen. Und was mache ich wenn die Temperatur einstellig wird, also z.B. 7.0 C