Heating_Control Dezimal-Stellen?

Begonnen von Paddie, 24 März 2019, 00:31:34

Vorheriges Thema - Nächstes Thema

Paddie

Ich weiß jetzt gar nicht ob ich hier richtig bin, oder eher im Anfänger-Bereich...

Also ich versuche mich grade mit Heating_Control und habe mich, soweit wie möglich an den Wikibeitrag gehalten.


defmod Heizung_Arbeitszimmer Heating_Control AZ_Temperatur_Tuer 12345|18:00|21 12345|22:00|14 $we|08:00|21 $we|23:00|14 (ReadingsVal("HCAutomatik", "state", "") eq "on")
attr Heizung_Arbeitszimmer alias HZ_Arbeitszimmer
attr Heizung_Arbeitszimmer commandTemplate set $NAME desired-temp $EVENT
attr Heizung_Arbeitszimmer group Heizplan
attr Heizung_Arbeitszimmer room Heizung
attr Heizung_Arbeitszimmer verbose 5


Es funktioniert auch alles (OK, fast alles, sonst würde ich das ja jetzt nicht schreiben  ::) )..allerdings nimmt er nicht die Temperaturen die ich in meiner Definition vorgegeben habe.\

Wenn ich jetzt über den dummy, die Automatik ausschalte, funktionierts, Er gibt die 14 an das (Thermokon) Wandthermostat weiter und alles ist gut.

Wenn ich allerdings die Automatik wieder anschalte, sendet er nicht die (für die Uhrzeit jetzt angegebenen 14 ...sondern ein 14.0  .DAS quittiert fhem dann mit


2019.03.24 00:14:24 3: Usage: 14.0 is not numeric or out of range


So wie ich das verstehe akzeptiert das Wandthermostat also nur ganze Zahlen!?

Gibts vielleicht eine Möglichkeit dem Heating_Control Objekt zu sagen es soll nur ganze Zahlen senden? Oder seh ich einfach den Wald vor lauter Bäumen nicht? Was vielleicht an der Uhrzeit liegen könnte...

Vielen Dank für eure Hilfe

Gruß

Paddie

Paddie

Hmm..Schade, dass keiner eine Lösung hierzu hat, dann werde ich wohl doch direkt die Temperatur an das Thermostat am Heizkörper, statt an das Wandthermostat senden müssen...nicht schön, aber im Moment die einzige Lösung..

igami

Hallo Paddie,

ich habe das Modul von Dietmar geerbt, habe mich damit aber noch nicht auseinander gesetzt.
Ich kann noch nicht nachvollziehen wann eine .0 gesendet wird und wann nicht. Kannst du mir das genauer erklären? Mit der 21 gibt es keine Schwierigkeiten?
Und nimmt dein Thermostat generell keine Nachkommastellen an?

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Paddie

Hi,

ich hab leider heute erst wieder Zeit gehabt mich damit zu befassen..

Also das Thermostat am Heizkörper hat damit keine Probleme, dem kann ich schicken was ich möchte (halt eine Dezimalstelle)

also z. B.


set AZ_Heizkoerper setpointTemp 14.5


dann steht im Log

2019.04.07 12:02:02 3: EnOcean set AZ_Heizkoerper setpointTemp 14.5


Das Problem liegt bei meinem Thermokon SR6, den ich neben der Zimmertür hängen habe...DER akzeptiert nur ganzzahlige Werte.

hier kommt dann

set AZ_Temperatur_Tuer desired-temp 14,5


dann kommt der  FHEM-Screen wo die Fehlermeldung direkt oben unter der Eingabeleiste steht

Usage: 14,5 is not numeric or out of range


Wenn ich stattdesen "nur" ein INT eingebe...also 14... funktionierts ohne Probleme.

----
Mein Versuch jetzt die Temperatur halt direkt ans Thermostat zu schicken war allerdings auch keine so gute Idee  :o ... Im ersten Moment funktionierts zwar, aber kurz drauf übernimmt er wieder die Temperatur vom Thermokon, was ja auch eigentlich der Sinn der Sache war ;-).

Wenn du noch irgendwas wissen möchtest, schreib einfach.

Danke schonmal

Paddie

Paddie

Ich ibn ein Stück weiter  8).

Ich habe heute morgen nochmal etwas Zeit gehabt um mich richtig damit zu befassen.

Dabei habe ich einen (wahrscheinlich eher ekligen) Workaround gefunden...

Ich habe in FHEM/10_EnOcean.pm die Zeile 5728


          if ($a[1] =~ m/^\d+$/ && $a[1] >= 5 && $a[1] <= 40) {


SO abgeändert


          if ($a[1] >= 5 && $a[1] <= 40) {


also den Regex entfernt...Ich bin ja schon eeewig mit Linux (mein Haupt-OS daheim...Win10 nur für ein Spiel ...) unterwegs...kann etwas Python und etwas Java...aber mit Regex steh ich immer wieder auf Kriegsfuss...wahrscheinlich weil ich mir nie die Syntax merken kann....


Jetzt funktioniert auf jeden Fall schon mal die Temperaturänderung  8). Ich werde jetzt mal die nächsten Tage etwas genauer gucken, ob es irgendwelche Seiteneffekte gibt.

CoolTux

if ($a[1] =~ m/^(\d+(\.\d+)?)$/ && $a[1] >= 5 && $a[1] <= 40) {

So sollte es gehen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Paddie

Funktioniert  :D. VIelen Dank. Somit ist das erste Zimmer fast komplett  8).

CoolTux

Du solltest die Änderung dem Modulmaintainer mitteilen. Ansonsten ist sie beim nächsten Update weg.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Paddie

Werde ich tun ;-).  Allerdings erst morgen Abend