[Gelöst] Hilfe zu automatischer Steuerung-reagiert nicht bei Temperaturunter.

Begonnen von techblaster, 16 November 2020, 10:18:46

Vorheriges Thema - Nächstes Thema

techblaster

Guten Morgen zusammen,

zum beschalten eines Heizkörpers habe ich eine kleine Abfrage mit Bedingung (<>) geschaffen um einen Schaltaktor auszulösen.
Das funktioniert meistens schon recht gut. Manchmal so wie jetzt wird aber nicht durchgeschaltet obwohl die Bedingung erfüllt ist. Kann da mal bitte von Euch jemand drüber schauen und mir einen Tipp geben wie ich das besser lösen kann? Wichtig zu wissen, wenn der Aktor beschaltet ist also auf ON steht ist die Heizung aus. Er muss also auf OFF gestellt werden wenn die Soll-Temperatur unterschritten wurde.

Bei Bedarf reiche ich gern noch weitere Infos nach.
Vielen Dank!

Viele Grüße

yersinia

Bitte mal die Ausgabe von
list EIB_4404
und
list EIB_4405
posten.

Mit
[EIB_4404] < [EIB_4405]
vergleichst du nur die states, und die liegen als String vor.

Besser wäre, die Temperatur-Readings zu vergleichen. Wahrscheinlich so:
[EIB_4404:temperature] < [EIB_4405:temperature]
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

techblaster

Zitat von: yersinia am 16 November 2020, 10:35:14
Bitte mal die Ausgabe von
list EIB_4404
und
list EIB_4405
posten.

Mit
[EIB_4404] < [EIB_4405]
vergleichst du nur die states, und die liegen als String vor.

Besser wäre, die Temperatur-Readings zu vergleichen. Wahrscheinlich so:
[EIB_4404:temperature] < [EIB_4405:temperature]

list EIB_4404
Internals:
   DEF        4/4/4
   EIB_MSGCNT 16
   EIB_RAWMSG B231ew4404191b
   EIB_TIME   2020-11-16 12:27:20
   FUUID      5d5e7adc-f33f-8a82-a283-b92bccbb8619f484
   GROUP      4404
   IODev      EIB
   LASTGROUP  4404
   LASTInputDev EIB
   MSGCNT     16
   NAME       EIB_4404
   NR         65
   RAWSTATE   191b
   STATE      22.64 &deg;C
   TYPE       EIB
   CODE:
     1          4404
   READINGS:
     2020-11-16 12:27:20   state           22.64 &deg;C
Attributes:
   IODev      EIB
   alias      Büro 1.03 Temperatur Ist
   dummy      1
   model      tempsensor
   room       1.03



list EIB_4405
Internals:
   DEF        4/4/5
   FUUID      5d5e7adc-f33f-8a82-c648-042eb3fac66419f8
   GROUP      4405
   IODev      EIB
   NAME       EIB_4405
   NR         374
   STATE      23.44 &deg;C
   TYPE       EIB
   CODE:
     1          4405
   READINGS:
     2020-11-09 10:13:55   state           23.44 &deg;C
Attributes:
   IODev      EIB
   alias      Büro 1.03 Temperatur Soll
   dummy      1
   model      tempsensor
   room       1.03


Stimmt, es wäre besser einfach nur die reinen numerischen Werte zu vergleichen. Leider wird "°C" jedoch als Wert durch den Sensor mitgeschickt. Das ist für Wertevergleichsgeschichten etwas ungünstig :/

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

techblaster

Zitat von: Damian am 16 November 2020, 15:54:32
Da kann man sich aber behelfen:

[EIB_4404:state:d] < [EIB_4405:state:d]

siehe: https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen

Sehr geil, vielen Dank!
Hab es direkt so ausprobiert und haut hin :)