Mit HM Wandthermostat KNX-Aktor schalten

Begonnen von jensdipo, 26 September 2016, 19:00:10

Vorheriges Thema - Nächstes Thema

jensdipo

Hallo Zusammen,
ich hoffe ich werde jetzt nicht gesteinigt aber ich habe noch ein kleines Verständnis Problem.
Ich habe Fhem jetzt seit einiger Zeit im Einsatz, wenn auch nur einfach aber es Funktioniert echt gut.
Da wir jetzt umgezogen sind habe ich Interesse daran einen HM-TC-IT-WM-W-EU an die Wand zu hängen und dann über KNX einen Aktor zu schalten.
Im Prinzip soll der Aktor geschaltet werden wenn die eingestellte Temperatur höher ist als die gemessene Temperatur (umgekehrt natürlich auch).
Was ich einfach nicht verstehe ist das ganze mit Threshold ins Fhem einzutragen da ich bei den meisten Beispielen nicht verstehe, wie das Threshold weiß woher die Temperatur kommt und wann er schalten soll?!.
Für eure Hilfe/Tipps wäre ich sehr Dankbar.
MFG
Jens

jensdipo

#1
Hallo Zusammen,
ich bins nochmal:
Folgende Funktion habe ich jetzt noch mal getestet allerdings weiß ich nicht ob ich bei desired-temp die richtige Funktion genommen habe.
{ if (ReadingsVal("Badezimmer.Wandthermostat","temperature",99) < ("Badezimmer.Wandthermostat","desired-temp",99) ) { fhem("set Kueche_Licht on") } else { fhem("set Kueche_Licht off") } }
Im Moment ist es so das er das Licht nur ausschaltet.
kann mir da vielleicht jemand helfen da mir solch eine Funktion erst mal reichen würde.
MFG
Jens
P.S. Das mit dem Kueche_Licht ist nur zum testen ob es geht.

Otto123

Hallo,

also ich habe etwas ähnliches, mein Treshold (DEF) sieht so aus:
SensorR1:measured-temp:1:SensorR1:desired-temp HzgAzGaube

Kannst Du genau so übernehmen, ist der gleiche Thermostat.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

jensdipo

Hy Otto,
Sorry wenn ich jetzt erst schreibe, wurde Beruflich auf eine etwas entfernte Baustelle geschickt.
ich habe mich erst noch mal mit meiner Version der Heizungsteuerung beschäftigt:
+*00:02:00 { if (ReadingsVal( "Badezimmer.Aktuell","temperature",99 ) < ReadingsVal( "Badezimmer.Wandthermostat","desired-temp",99 )) { fhem("set Badezimmer.Heizung value 255" ) } else { fhem("set Badezimmer.Heizung value 0") } }.
Das Funktioniert jetzt auch, allerdings habe ich deine Version noch nicht verstanden und würde dies auch gerne mal testen.
Muss ich das einfach anstelle meines Befehls in die DEF eintragen?
Bei mir ist es so das er alle 2 Minuten die Temperatur abfragt, wie sieht es hier aus?
MFG
Jens

Otto123

Hallo Jens,

was Du machst ist ein at? Du wolltest ja wissen wie es mit Threshold funktioniert und darauf war meine Antwort.

In dem verlinkten teil der Commandref ist das Modul doch gut erklärt, praktisch fassbarer wird es wenn Du einfach mal eines definierst und ausprobierst.
also define Heizung THRESHOLD <Sensor> <Aktor>
Was ich geschrieben habe ist mein Teil meiner Steuerung hinter dem THRESHOLD. Hier die Erklärung der Werte, Zitat Commandref
Zitatsensor
ein in FHEM definierter Sensor

reading (optional)
Reading des Sensors, der einen Wert als Dezimalzahl beinhaltet
Defaultwert: temperature

hysteresis (optional)
Hysterese, daraus errechnet sich die Untergrenze = Sollwert - hysteresis
Defaultwert: 1 bei Temperaturen, 10 bei Feuchtigkeit

target_value (optional)
bei Zahl: Initial-Sollwert, wenn kein Wert vorgegeben wird, muss er mit "set desired value" gesetzt werden.
sonst: <sensorname>:<reading>, hier kann ein weiterer Sensor angegeben werden, der den Sollwert dynamisch vorgibt.
Defaultwert: kein

offset (optional)
Offset zum Sollwert
Damit errechnet sich: die Sollwertobergrenze = Sollwert + offset und die Sollwertuntergrenze = Sollwert - Hysterese + offset
Defaultwert: 0

Also
Sensor1 ist meine Thermostat, Deiner heisst Badezimmer.Wandthermostat
measured-temp ist das Reading für die ist Ist-temperatur
1 ist die Hysterese
Sensor1 ist meine Thermostat, Deiner heisst Badezimmer.Wandthermostat
desired-temp ist das Reading für die ist Soll-temperatur
HzgAzGaube ist mein Aktor, der wird on geschaltet wenn es zu kalt ist und off wenn es zu warm ist. das kannst Du wahrscheinlich nicht übernehmen, da Dein Aktor anders geschaltet wird.
Dafür kannst Du den Schaltbefehl einfach angeben, Zitat Commandref
ZitatBeispiele für die Ausführung beliebiger FHEM/Perl-Befehlsketten:

define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1
define thermostat THRESHOLD sensor alarm|{Log 2,"Wert überschritten"}|set @ off|
define thermostat THRESHOLD sensor ||{Log 2,"Wert unterschritten"}|
Also musst Du anstatt Aktor schreiben:|set Badezimmer.Heizung value 255|set Badezimmer.Heizung value 0|

Das kann ich nicht genau beurteilen, ist jetzt nur theoretisch.
Komplett sehe das so aus:
define Heizung THRESHOLD Badezimmer.Wandthermostat:measured-temp:1:Badezimmer.Wandthermostat:desired-temp |set Badezimmer.Heizung value 255|set Badezimmer.Heizung value 0|

Alles klar?
Das habe ich jetzt nur so ausführlich gemacht weil Sonntag ist  8)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

jensdipo

Hy Otto,
ich Danke dir dafür auch sehr und werde es gleich auch noch ausprobieren und testen.
MFG
Jens

jensdipo

Hy Otto,
wollte dir noch bescheid sagen das ich es hinbekommen habe und es auch gut Funktioniert.
MGF
Jens