FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Damian am 25 Januar 2013, 22:51:43

Titel: Neues Modul - THRESHOLD
Beitrag von: Damian am 25 Januar 2013, 22:51:43
Hallo zusammen,

  Dieses Modul liest einen beliebigen Temperatur- oder Feuchtigkeitsensor aus
  und schaltet abhängig von einem Schwellenwert einen definierten Aktor.

  Damit lässt sich eine Heizung, ein Entfeuchter, eine Klimaanlage oder eine Bewässerung steuern.

  Optional kann das Schaltverhalten zusätzlich durch einen weiteren Kontaktsensor beeinflusst werden.
  Üblicherweise handelt es sich dabei um einen Fensterkontakt.

  Für die Funktionalität, muss nach der Definition eines Thermostats oder Hygrostats vom Typ THRESHOLD, die Solltemperatur oder -feuchtigkeit über

  set <name> desired <value> gesetzt werden.


Hier die Dokumentation:

define <name> THRESHOLD <sensor>[:<reading>[:<threshold>]] [<AND|OR> <sensor2>[:<reading2>][:<state>]] <actor>[:<cmd1>][:<cmd2>]

   <sensor>      ein definierter Temperatur- oder Feuchtigkeitssensor
   <reading>     Reading des Sensors, der die Temperatur bzw. Luftfeuchte als Dezimalzahl beinhaltet
            Defaultwert: temperature
   <threshold>   Abweichung von der Solltemperatur die eine Akton des definierten Aktors auslöst;
            Defaultwert ist bei Temperaturen 0.5, und 10 bei Feuchtigkeit
   AND|OR        Verknüpfung mit einem optionalen zweiten Sensor
   <sensor2>     ein definierter Sensor, dessen Status abgefragt wird
   <reading2>    Reading, der den Status des Sensors beinhaltet,
            Defaultwert: state
   <state>       Status des Sensors, der zu einer Aktion führt
                 Defaultwert: open
   actor          ein definierter Aktor
   cmd1          Aktion, die beim Überschreiten des Sollwertes stattfinden soll bzw.
            wenn status des sensor2 übereinstimmt
            Defaultwert: off
   cmd2           Aktion, die beim Unterschreiten des Sollwertes stattfinden soll bzw.
            wenn status des sensor2 nicht übereinstimmt
            Defaultwert: on
   
    Beispiele:
   
   Beispiel für Heizung:
            
   define Thermostat THRESHOLD S1 heating
   
   entspricht wegen Defaultwerte:
   
   define Thermmostat THRESHOLD S1:temperatur:0.5 heating:off:on
      
   Beschreibung:

   Beim Überschreiten der Solltemperatur um 0,5 Grad ausgelesen über den Sensor "S1" wird der Aktor "heating" ausgeschaltet
   und wieder eingeschaltetn beim Unterschreiben der Temperatur um 0,5 Grad
   
   Beispiel für Heizung mit Fensterkontakt:
   
   define Thermostat THRESHOLD S1 OR W1 heating
   
   entspricht wegen Defaultwerte:
   
   define Thermostat THRESHOLD S1:temparature:0.5 OR W1:state:open heating:off:on
      
   Beschreibung:

   Beim Überschreiten der Solltemperatur um 0,5 Grad ausgelesen über den Sensor "S1" oder wenn der Sensor "W1" geöffnet wird, wird der Aktor
   "heating" ausgeschalet und wieder eingeschaltet beim Unterschreiben der Temperatur um 0,5 Grad, wenn der Sensor "W1" geschlossen wird.
   
   Beispiel für Luftentfeuchter:
   
   define Hygrostat THRESHOLD S1:huminity dehydrator:on:off
   
   Beschreibung:

   Beim Überschreiten der Soll-Feuchtigkeit um 10 % ausgelesen über den Sensor S1 wird der Aktor "dehydrator" eingeschaltet
   und wieder ausgeschaltet beim Unterschreiben der Feuchtigkeit um 10 %.
   
   Beispiel für Luftentfeuchter mit Fensterkontakt:
   
   define Hygrostat THRESHOLD S1:huminity AND W1:state:close dehydrator:on:off
   
   Beschreibung:

   Beim Überschreiten der Soll-Feuchtigkeit ausgelesen über den Sensor "S1" wird der Aktor "dehydrator" eingeschaltet,
   wenn der Sensor "W1" geschlossen ist und wieder ausgeschaltet beim Unterschreiben der Feuchtigkeit oder wenn der Sensor "W1" geöffnet wird.
   
   Bespiel für Klimatisierung:
   
   define Thermostat THRESHOLD S1:temperature:1 aircon:on:off
   
   Beschreibung:

   Beim Überschreiten der Solltemperatur um 1 Grad ausgelesen über den Sensor S1 wird der Aktor "aircon" eingeschaltet
   und wieder ausgeschaltet beim Unterschreiben der Temperatur um 1 Grad.
   
   Beispiel für Klimatisierung mit Fensterkontakt:
   
   define Thermostat THRESHOLD S1 AND W1:state:close aircon:on:off
   
   Beschreibung:

   Beim Überschreiten der Solltemperatur ausgelesen über den Sensor "S1" wird der Aktor "aircon" eingeschaltet,
        wenn der Sensor "W1" geschlossen ist
   und wieder ausgeschaltet beim Unterschreiben der Temperatur oder wenn der Sensor "W1" geöffnet wird.
   
   Bespiel für Bewässerung:
   
   define Hygrostat THRESHOLD S1:huminity:20 watering:off:on
   
   Beschreibung:

   Beim Überschreiten der Soll-Feuchtigkeit um 20 % ausgelesen über den Sensor S1 wird der Aktor "watering" ausgeschaltet
   und eingeschaltet beim Unterschreiben der Soll-Feuchtigkeit um 20 %.

Die englische Übersetzung der Doku werde ich im Modul vornehmen, falls das Modul eingescheckt werden sollte.

Und nun viel Spaß beim Ausprobieren.

Gruß

Damian

Edit:

Das Modul wurde eingecheckt und ist Bestandteil von FHEM. Die aktuelle Version des Moduls ist über FHEM-Update verfügbar.

aktuelle Doku siehe: http://fhem.de/commandref_DE.html#THRESHOLD


Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: jhohn am 25 Januar 2013, 23:21:37
coole Sache. Können auch mehrere Fenstersensoren mit OR angehängt werden oder geht da nur einer?
Also, um bei Deinem Beispiel zu bleiben:
define Thermostat THRESHOLD S1 OR W1 OR W2 OR W3 heating
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Tobias am 26 Januar 2013, 06:49:12
ich finde mit dem Modul ist man seeeehr statisch. Nur ein Sensor und nur ein Aktor. Üblicherweise passiert soetwas in einem Notify oder zentralen Prozedur. Ausgerichtet auf den speziellen Anwendungsfall.

Was macht das Modul anders als mein Wiki-Beitrag??
http://www.fhemwiki.de/wiki/Bew%C3%A4sserungssteuerung (//www.fhemwiki.de/wiki/Bew%C3%A4sserungssteuerung)
Meine aktuelle, weiter entwickelte Prozedur hängt noch vom Sonnenschein und Wind ab.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 26 Januar 2013, 08:44:07
Zitat von: Tobias schrieb am Sa, 26 Januar 2013 06:49ich finde mit dem Modul ist man seeeehr statisch. Nur ein Sensor und nur ein Aktor. Üblicherweise passiert soetwas in einem Notify oder zentralen Prozedur. Ausgerichtet auf den speziellen Anwendungsfall.

Was macht das Modul anders als mein Wiki-Beitrag??
http://www.fhemwiki.de/wiki/Bew%C3%A4sserungssteuerung
Meine aktuelle, weiter entwickelte Prozedur hängt noch vom Sonnenschein und Wind ab.

Immerhin kann man es mit eurem heating_control-modul kombinieren;) Kannst du es mit deiner Routine auch?

Der Wunsch hier war, die Funktionalität eines Schwellenschalters nicht im dem PID-Modul zu integrieren, der sich ähnlich verhält.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 26 Januar 2013, 08:46:22
Zitat von: jhohn schrieb am Fr, 25 Januar 2013 23:21coole Sache. Können auch mehrere Fenstersensoren mit OR angehängt werden oder geht da nur einer?
Also, um bei Deinem Beispiel zu bleiben:
define Thermostat THRESHOLD S1 OR W1 OR W2 OR W3 heating

nein, könnte man aber über einen dummy-Kontakt definieren, der wiederum per notify abhängig von den jeweiligen Kontakten gesetzt wird.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: drdownload am 26 Januar 2013, 10:10:23
Sicher könnte man die Funktionalität auch über notify und dummy lösen, aber das könnte man
1) bei fast jeder Aufgabenstellung
2) wird es gerne ein bisschen unübersichtlich
3) ist es nicht gerade elegant die gleich logik 30x in der config stehen zu haben.

Ich bin ja schon lange der Meinung, dass man die ganzen Heizungspuzzelstücke irgendwann einmal in eine modularere einheitliche Struktur überführen müsste, aber leider habe ich derzeit auch nicht wirklich Zeit das Projekt anzugehen. (anhängigkeiten zwischen schaltern und aktoren ohne immer mit notify zu arbeiten wären auch noch sowas ;)
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 26 Januar 2013, 10:41:31
Vielleicht nochmal zum Verständnis.

Es geht hier nicht um eine komplexe Steuerung einer Heizung o. Ä., sondern um einen einfachen Schwellenwertschalter, der ähnlich wie das PID-Modul für Thermostate funktionieren sollte. Also einmal definieren und über das setzten einer Solltemperatur (set thermostat desired 20) einen Aktor steuern.

Damit lässt sich elegant z. B. eine Fußbodenheizung mit konventionellen 230 V Stellantrieben über das  Heating_control-Modul steuern. Das war auch meine ursprüngliche Idee, siehe http://forum.fhem.de/index.php?t=msg&th=10409&start=0&rid=69. (//forum.fhem.de/index.php?t=msg&th=10409&start=0&rid=69.)

Auf Wunsch von Rudolf habe diese Funktionalität nun in ein separate Modul ausgelagert.

Dass man damit auch Feuchtigkeit auslesen kann bzw. zusätzlich einen Kontakt auswerten kann, ist optional und nur als Draufgabe zu verstehen.

Für komplexe Steuerung mit komplexeren Abfragen bemüht man lieber Perl - einen neuen Parser wollte ich im Modul dafür nicht programmieren.

Gruß

Damian



Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: jhohn am 26 Januar 2013, 16:17:13
Nun gut, dann bleibe ich erst mal bei meiner Gebläsesteuerung für die Nachtspeicheröfen (http://forum.fhem.de/index.php?topic=10447.msg59168#msg59168)
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 26 Januar 2013, 16:52:35
Zitat von: jhohn schrieb am Sa, 26 Januar 2013 16:17Nun gut, dann bleibe ich erst mal bei meiner Gebläsesteuerung für die Nachtspeicheröfen

Da offenbar der Wunsch nach mehr Flexibilität da ist, könnte man über folgende Lösung nachdenken:

define <name> THRESHOLD <sensor>[:<reading>[:<threshold>]][<cmd1>][:<cmd2>] <COMMAND>



<COMMAND> ein beliebiges Kommando wie z. B. bei at oder notify möglich ist, inklusive if-Abfragen

Damit könnte man auch mehrer Sensoren in einer if-Abfragen überprüfen. @ könnte dann ein Platzhalter für das jeweilige Kommando cmd1 bzw cmd2 sein.

z. B. set aktor @

oder {fhem("set aktor @") if (....)}

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Vladi2010 am 26 Januar 2013, 22:59:16
Hallo Damian,

kann ich damit anstadt eines <sensor> einen FHT8V -> Readings -> state  auslesen, und gegebenfalls einen Aktor Schalen bei einem Wert <=1% ?  oder sind wirklich nur sensoren wie CUL_WS möglich ?
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 26 Januar 2013, 23:39:47
Zitat von: Vladi2010 schrieb am Sa, 26 Januar 2013 22:59Hallo Damian,

kann ich damit anstadt eines <sensor> einen FHT8V -> Readings -> state  auslesen, und gegebenfalls einen Aktor Schalen bei einem Wert <=1% ?  oder sind wirklich nur sensoren wie CUL_WS möglich ?

Es gibt keine Einschränkungen bzgl. der Sensoren. Wenn dein definierter Reading des Sensors den entsprechenden Wert liefert wird er auch benutzt.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Vladi2010 am 27 Januar 2013, 01:26:25
hmmmm, also ich habe einen Stellantrieb und eine IT Steckdose:

DEF   1234
IODev CUL_0
NAME Stellantrieb_Kinderzimmer
NR 56
STATE valve 0
TYPE FHT8V
addr 1234
idx 02

Readings
state valve 0
2013-01-27 01:07:28


und Stecksode IT

DEF   00FFFF000F FF F0
IODev CUL_0
NAME Steckdose_M4
NR 103
STATE off
TYPE IT
XMIT 00ffff000f
XMITdimdown 00
XMITdimup 00
XMIToff f0
XMITon ff

Readings
state off
2013-01-27 00:46:02

Müsste die Steckdose bei einem wert von "1 und größer" nicht angehen ?

define Stellantrieb_Ventilator_Kopplung_Kinderzimmer THRESHOLD Stellantrieb_Kinderzimmer:state:1 Steckdose_M4:on:off

bitte dringend um Hlife bin absoluter Anfänger

Andreas


Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 27 Januar 2013, 11:39:28
Zitat von: Vladi2010 schrieb am So, 27 Januar 2013 01:26hmmmm, also ich habe einen Stellantrieb und eine IT Steckdose:

DEF   1234
IODev CUL_0
NAME Stellantrieb_Kinderzimmer
NR 56
STATE valve 0
TYPE FHT8V
addr 1234
idx 02

Readings
state valve 0
2013-01-27 01:07:28


und Stecksode IT

DEF   00FFFF000F FF F0
IODev CUL_0
NAME Steckdose_M4
NR 103
STATE off
TYPE IT
XMIT 00ffff000f
XMITdimdown 00
XMITdimup 00
XMIToff f0
XMITon ff

Readings
state off
2013-01-27 00:46:02

Müsste die Steckdose bei einem wert von "1 und größer" nicht angehen ?

define Stellantrieb_Ventilator_Kopplung_Kinderzimmer THRESHOLD Stellantrieb_Kinderzimmer:state:1 Steckdose_M4:on:off

bitte dringend um Hlife bin absoluter Anfänger

Andreas



Hallo Andreas,

bisher wird nicht nach Zahlen gefiltert, sondern der Wert direkt genommen.

Bei dir steht aber noch das Wort "vavle" vor der Zahl im Status.

Das Filtern nach Zahlen lässt sich allerdings leicht einbauen.

Gruß

Damian





Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Vladi2010 am 27 Januar 2013, 11:46:26
Hallo Damian,

"bisher wird nicht nach Zahlen gefiltert, sondern der Wert direkt genommen.

Bei dir steht aber noch das Wort "vavle" vor der Zahl im Status.

Das Filtern nach Zahlen lässt sich allerdings leicht einbauen."

also wird das nichts mit meiner Ventilator ansteuerung :(

Grüße Andras
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 27 Januar 2013, 12:26:39
Zitat von: Damian schrieb am Sa, 26 Januar 2013 16:52
Zitat von: jhohn schrieb am Sa, 26 Januar 2013 16:17Nun gut, dann bleibe ich erst mal bei meiner Gebläsesteuerung für die Nachtspeicheröfen

Da offenbar der Wunsch nach mehr Flexibilität da ist, könnte man über folgende Lösung nachdenken:

define <name> THRESHOLD <sensor>[:<reading>[:<threshold>]][<cmd1>][:<cmd2>] <COMMAND>



<COMMAND> ein beliebiges Kommando wie z. B. bei at oder notify möglich ist, inklusive if-Abfragen

Das würde mich sehr freuen, da ich bereits nach so etwas suche. Bei mir soll ein Kommando ausgeführt werden, wenn der Energieverbrauch unter ein bestimmtes Level fällt. Ich vergesse andauern, wenn die Maschine im Keller fertig ist :-D

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 27 Januar 2013, 12:41:53
Zitat von: Vladi2010 schrieb am So, 27 Januar 2013 11:46Hallo Damian,

also wird das nichts mit meiner Ventilator ansteuerung :(


Das Filtern werde ich noch einbauen.

Du hast dennoch das Prinzip dieses Schwellenwertschalter noch nicht verstanden.

In der Doku steht:

Für die Funktionalität, muss nach der Definition eines Thermostats oder Hygrostats vom Typ THRESHOLD, die Solltemperatur oder -feuchtigkeit über

set <name> desired <value> gesetzt werden.



Also müsstest du einen Sollwert zunächst mit set Stellantrieb_Ventilator_Kopplung_Kinderzimmer desired Zahl setzten, damit es überhaupt funktioniert.

Nun möchtest du deinen Aktor allerdings abhängig von der Stellung des Stellantriebs schalten und nicht abhängig von der Temperatur.

Bei valve 0 soll dein Ventilator aus sein, sonst an. Dafür ist wahrscheinlich ein notify besser geeignet.

Dennoch ließe sich auch das mit dem THRESHOLD realisieren (wenn nach Zahlen gefilter würde), auch wenn es nicht im Sinne es Erfinders war:

define Stellantrieb_Ventilator_Kopplung_Kinderzimmer THRESHOLD Stellantrieb_Kinderzimmer:state:0.1 Steckdose_M4:on:off

set Stellantrieb_Ventilator_Kopplung_Kinderzimmer desired 0.5

Das hieße dann, wenn der Stellwert größer ist als 0.5+0.1=0.6 dann geht steckdose_M4 on (trifft für alle ganzen Zahlen außer Null zu)

und wenn der Stellwert kleiner ist als 0.5-0.1=0.4 dann geht die Steckdose_M4 off (trifft bei ganzen Zahlen nur für NULL zu)

Wenn nur ganzzahlige Stellenwerte vorkommen, würde es funktionieren, auch wenn im Nachhinein keiner den Sinn des Ganzen verstehen würde;)

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: teggi am 27 Januar 2013, 13:36:04
Danke für das Modul, Damian.

Bin gerade am Ausprobieren, scheitere aber leider schon an der Definition:

define THERMO.KIZ1 THRESHOLD SEN.TH.KIZ1 SW.HEIZUNG.KIZ1

Die Definition liefert gleich die Fehlermeldung "Unknown sensor device SEN.TH.KIZ1 specified"

SEN.TH.KIZ1 ist ein Standard S300TH.

Wo liegt mein Fehler?
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 27 Januar 2013, 14:18:10
Zitat von: teggi schrieb am So, 27 Januar 2013 13:36Danke für das Modul, Damian.

Bin gerade am Ausprobieren, scheitere aber leider schon an der Definition:

define THERMO.KIZ1 THRESHOLD SEN.TH.KIZ1 SW.HEIZUNG.KIZ1

Die Definition liefert gleich die Fehlermeldung "Unknown sensor device SEN.TH.KIZ1 specified"

SEN.TH.KIZ1 ist ein Standard S300TH.

Wo liegt mein Fehler?

Hmm, ich sehe keinen. Die Fehlermeldung kommt, wenn des Device nicht vorhanden ist, abgefragt durch die Stelle im Code:

 my ($sensor, $reading, $threshold) = split(":", $a[2], 3);
  if(!$defs{$sensor}) {
    my $msg = "$pn: Unknown sensor device $sensor specified";
    Log 2, $msg;
    return $msg;
  }

Habe gerade bei mir den einfachen Fall ohne Fehlermeldung getestet:

define test THRESHOLD Aussensensor Schreibtisch

Aussensensor ist bei mir auch der S300TH.

Schau mal, ob dein Sensor in FHEM wirklich SEN.TH.KIZ1 heißt.

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 27 Januar 2013, 15:02:47
Zitat von: Damian schrieb am Sa, 26 Januar 2013 08:46
Zitat von: jhohn schrieb am Fr, 25 Januar 2013 23:21coole Sache. Können auch mehrere Fenstersensoren mit OR angehängt werden oder geht da nur einer?
Also, um bei Deinem Beispiel zu bleiben:
define Thermostat THRESHOLD S1 OR W1 OR W2 OR W3 heating

nein, könnte man aber über einen dummy-Kontakt definieren, der wiederum per notify abhängig von den jeweiligen Kontakten gesetzt wird.

Gruß

Damian

Und es geht doch relativ einfach ohne notify zu bemühen über structure.

Man definiere alle Kontakte zu einer Struktur:

define W_ALL structure <TYPE-Deiner-Kontakte W1 W2 W3 ....
attr W_ALL clientstate_behavior relative
attr W_ALL clientstate_priority closed open

und dann einfach

define Thermostat THRESHOLD S1 OR W_ALL heating


Auch das Schalten mehrerer Aktoren ließe sich über structure relativ einfach realisieren.

Damit ist die ganze Sache gar nicht so statisch, wie es auf den ersten Blick wirkt.

Gruß

Damian
 





Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: jhohn am 27 Januar 2013, 19:55:24
Dann werde ich doch mal umbauen. Spart doch ein bisschen was in der myUtils.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Steve am 11 Februar 2013, 19:48:32
Hallo,

funktioniert das Modul auch mit 1Wire in Verbindung
mit NETIO?



VG
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 11 Februar 2013, 20:47:37
Zitat von: Steve schrieb am Mo, 11 Februar 2013 19:48Hallo,

funktioniert das Modul auch mit 1Wire in Verbindung
mit NETIO?

VG

Im Prinzip können alle Sensoren ausgelesen werden, die in FHEM definiert sind und eine Temperatur als Dezimalzahl im Reading liefern.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 12 Februar 2013, 10:01:01
Hallo Damian,

aktuell konzentrierst du dich sehr auf Temperatur und Feuchtewerte. Währe es nich besser hier genereller zu sein. Nicht jeder möchte einen Schwellwertalarm auf Temperatur oder Feuchtigkeit setzen. Es gibt in der FHEM-Welt noch viel mehr Readings, welche eine Zahl (evtl. mit Kommastellen) erzeugen.

Kann man denn aktuell auch andere Readings verwenden, wie z.B. Energieverbrauch von EM1000-EM Sensoren o.ä.?

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 12 Februar 2013, 10:18:59
Zitat von: Markus Bloch schrieb am Di, 12 Februar 2013 10:01Hallo Damian,

aktuell konzentrierst du dich sehr auf Temperatur und Feuchtewerte. Währe es nich besser hier genereller zu sein. Nicht jeder möchte einen Schwellwertalarm auf Temperatur oder Feuchtigkeit setzen. Es gibt in der FHEM-Welt noch viel mehr Readings, welche eine Zahl (evtl. mit Kommastellen) erzeugen.

Kann man denn aktuell auch andere Readings verwenden, wie z.B. Energieverbrauch von EM1000-EM Sensoren o.ä.?

Viele Grüße

Markus

lt. Doku kannst du beliebige Readings beim Sensor einstellen, diese sollten dann auch Dezimalzahlen liefern. Du bist also keinesfalls auf Temperatur oder Feuchtigkeit festgelegt;)

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 12 Februar 2013, 10:29:38
Das hört sich super an. Andere Frage. Willst du das in FHEM einchecken? Währe natürlich super, da ich das sehr nützlich finde.

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 12 Februar 2013, 11:27:42
Zitat von: Markus Bloch schrieb am Di, 12 Februar 2013 10:29Das hört sich super an. Andere Frage. Willst du das in FHEM einchecken? Währe natürlich super, da ich das sehr nützlich finde.

Viele Grüße

Markus

Ich verfüge über keine Berechtigung zum Einchecken.

Bisher gab es noch wenig Feedback zur Fehlerfreiheit des Moduls.

Entweder benutzt es keiner oder mein erstes Modul ist fehlerfrei;)

Ich habe die Doku etwas verallgemeinert, damit es nicht so auf Temperatur oder Feuchtigkeit fixiert ist.


Doku:


Dieses Modul liest einen beliebigen Sensor aus, der Werte als Dezimalzahlen liefert
  und schaltet abhängig von einem Schwellenwert einen definierten Aktor.

  Nach der Definition eines Moduls vom TYP THRESHOLD erfolgt die eigentliche Steuerung über die Vorgabe eines Sollwertes.

  Damit lässt sich u. A. eine Heizung, ein Entfeuchter, eine Klimaanlage, eine Bewässerung und vieles mehr steuern.

  Optional kann das Schaltverhalten zusätzlich durch einen weiteren Sensor oder eine Sensorgruppe, definiert über  structure (z. B. Fensterkontakte), beeinflusst werden.
 
  Ein definiertes Modul vom Typ THRESHOLD, beginnt mit der Steuerung erst dann, wenn ein Sollwert über

  set <name> desired <value>

  gesetzt wird.
 
  Ein definiertes Modul vom Typ THRESHOLD kann mit attr <name> disable 1 vorübergehend deaktiviert werden.
 
  Im Gegensatz zu einem Notify, werden, falls Sensor2 definiert wurde, beide Sensoren "gleichzeitig" überwacht.



Gruß

Damian


Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 12 Februar 2013, 18:18:34
Hallo Damian,

Ich habe das Modul aus dem ersten Post heruntergeladen, leider kommt bei meiner definition immer "wrong syntax".


define Waschmaschine_Fertig THRESHOLD Verbrauch_Waschmaschine:current:0.01 {Log 2, "Fertig"}



Mach ich etwas falsch?

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 12 Februar 2013, 19:18:27
Zitat von: Markus Bloch schrieb am Di, 12 Februar 2013 18:18Hallo Damian,

Ich habe das Modul aus dem ersten Post heruntergeladen, leider kommt bei meiner definition immer "wrong syntax".


define Waschmaschine_Fertig THRESHOLD Verbrauch_Waschmaschine:current:0.01 {Log 2, "Fertig"}



Mach ich etwas falsch?

Viele Grüße

Markus

So funktioniert es leider nicht.
Das Modul ist dafür konzipiert einen Sollwert zu halten. Das geschieht z. Zt. über 'set Aktor cmd1' beim Überschreiten des Sollwertes und 'set Aktor cmd2' beim Unterschreiten des Sollwertes. Die Syntax ist lt. Doku actor:cmd1:cmd2. Mit {Log 2, "Fertig"} wird es leider nicht funktionieren, da kein Aktor bzw. keine sinnvollen set-Befehle definiert sind.

Eine Erweiterung auf alle möglichen Befehle ist denkbar, allerdings etwas aufwändig, da ich z. Zt. in der Logik des Moduls den Status des Aktors auswerte, um mehrfaches Schalten zu unterbinden.

Gruß

Damian

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Steve am 12 Februar 2013, 20:57:43
Ich habe jetzt mit einem 1Wire-Sensor konfiguriert.

jetzt kommt im Log die Fehlermeldung:

>2013.02.12 20:49:39 2: Test: no reading yet for Kessel temperatur

Meine cfg ist:

>define Test THRESHOLD Kessel:temperatur:0.5 Relais1:off:on
>set Test desired 50

>define Kessel ECMDDevice ONEWIRE 10fb465b02080071
>attr Kessel room Heizung
>define Log_Kessel FileLog /var/InternerSpeicher/fhem/log/Temperatur-%Y.log Kessel:(temp).*


Fehler gefunden, mußte statt "temperatur" nur "temp" eingeben.

Funktioniert super


Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 12 Februar 2013, 21:17:18
Zitat von: Steve schrieb am Di, 12 Februar 2013 20:57Ich habe jetzt mit einem 1Wire-Sensor konfiguriert.

jetzt kommt im Log die Fehlermeldung:

>2013.02.12 20:49:39 2: Test: no reading yet for Kessel temperatur

Meine cfg ist:

>define Test THRESHOLD Kessel:temperatur:0.5 Relais1:off:on
>set Test desired 50

>define Kessel ECMDDevice ONEWIRE 10fb465b02080071
>attr Kessel room Heizung
>define Log_Kessel FileLog /var/InternerSpeicher/fhem/log/Temperatur-%Y.log Kessel:(temp).*




Die Stelle im Code ist:

  if(!($defs{$sensor}{READINGS}{$reading})) {
    my $msg = "$pn: no reading yet for $sensor $reading";
    Log 2, $msg;
    return "";
  }

Das bedeutet, dass während der Abarbeitung der Notify-Routine das Reading 'temperatur' beim 'Kessel' nicht vorhanden war.

Wahrscheinlich heißt es 'temperature'


Ich benutze 18B20-Sensoren vom Typ OWTHERM, da steht die Temperatur unter dem Reading 'temperature'.

Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 12 Februar 2013, 21:45:18
Zitat von: Damian schrieb am Di, 12 Februar 2013 19:18
Zitat von: Markus Bloch schrieb am Di, 12 Februar 2013 18:18Hallo Damian,

Ich habe das Modul aus dem ersten Post heruntergeladen, leider kommt bei meiner definition immer "wrong syntax".


define Waschmaschine_Fertig THRESHOLD Verbrauch_Waschmaschine:current:0.01 {Log 2, "Fertig"}



Mach ich etwas falsch?

Viele Grüße

Markus

So funktioniert es leider nicht.
Das Modul ist dafür konzipiert einen Sollwert zu halten. Das geschieht z. Zt. über 'set Aktor cmd1' beim Überschreiten des Sollwertes und 'set Aktor cmd2' beim Unterschreiten des Sollwertes. Die Syntax ist lt. Doku actor:cmd1:cmd2. Mit {Log 2, "Fertig"} wird es leider nicht funktionieren, da kein Aktor bzw. keine sinnvollen set-Befehle definiert sind.

Eine Erweiterung auf alle möglichen Befehle ist denkbar, allerdings etwas aufwändig, da ich z. Zt. in der Logik des Moduls den Status des Aktors auswerte, um mehrfaches Schalten zu unterbinden.

Gruß

Damian

Damian


Ja Gut, dann werd ich noch etwas warten müssen :-(
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Februar 2013, 13:14:04
ZitatJa Gut, dann werd ich noch etwas warten müssen :-(

Dein Warten hat nun ein Ende;)

Ich habe nun eine erweiterte Version produziert, die beliebige FHEM/Perl-Befehle ausführen kann.

Hier ein Auszug aus der Doku:

define <name> THRESHOLD <sensor>[:<reading>[:<threshold>]] [AND|OR <sensor2>[:<reading2>][:<state>]] <actor>[:<cmd_max>][:<cmd_min>][:<cmd_default>]

oder, wenn beliebige FHEM/Perl-Commdandos ausgeführt werden sollen:

define <name> THRESHOLD <sensor>[:<reading>[:<threshold>]] [AND|OR <sensor2>[:<reading2>][:<state>]] |command_max|command_min|command_default

Beispiele:

define Thermostat THRESHOLD Sensor |{fhem("set Switch1 on;set Switch2 on")|{fhem("set Switch1 off;set Switch2 off")|{fhem("set Switch1 on;set Switch2 on")
define Thermostat THRESHOLD Sensor |{Log 2,"Wert überschritten"}|set Alarm off|{fhem("set Switch1 on;set Switch2 on")}
define Thermostat THRESHOLD Sensor ||{Log 2,"Wert unterschritten"}||

Die vollständige Dokumentation befindet sich im PM-Modul (deutsch und englisch) und kann mit commandref_join.pl aus dem contrib-Verzeichnis in die commandref übernommen werden.

Es ist zusätzlich eine default-Aktion hinzugekommen, die nach dem Setzen von desired Wert ausgeführt wird, bis der Maximal- oder Minimalwert auftritt (Es hat mich immer gestört, dass man nach dem Setzen der Soll-Temperatur immer warten musste bis die Temperatur auf Minimum fallen musste, bevor geheizt wurde).

Das Modul ersetzt das ursprüngliche und wurde weitgehend von mir getestet.

Gruß

Damian




Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 17 Februar 2013, 13:49:00
*_* Werde ich umgehend testen ;-)
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 17 Februar 2013, 14:04:15
Zwei Sachen bezgl. der Doku hab ich schonmal.

Einmal


# ./contrib/commandref_join.pl
EN FHEM/98_THRESHOLD.pm: Unbalanced ul (1, last line ok: 223)
#



Und


(siehe Anhang / see attachement)


Bitte ersetze hier die Sonderzeichen und füge <br> für die Zeilenumbrüche ein.

ä => &auml;
ö => &ouml;
ü => &uuml;
Ä => &Auml;
Ö => &Ouml;
Ü => &Uuml;
ß => &szlig;
< => &lt;
> => &gt;


Und offenbar scheint die Doku generell nur in deutsch zu sein.

Ich versuch mich mal drann. Ich melde mich ;-)

Vielen Dank aber schonmal dafür.

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 17 Februar 2013, 14:19:36
Hallo Damian,

leider funktioniert die Definition nicht aufgrund der Meldung.


Thermostat: Unknown actor device ||{Log specified



Dies liegt an Zeile 87


  my ($actor, $actor_cmd1,$actor_cmd2) = split(":", $actor_defs, 3);

  if(!$defs{$actor}) {
      my $msg = "$pn: Unknown actor device $actor specified";
      Log 2, $msg;
      return $msg;
  }



Meine Definition war:


define Thermostat THRESHOLD Verbrauch_Waschmaschine:current:0.02 ||{Log 2,"Wert unterschritten"}||


Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Februar 2013, 14:26:05
Zitat von: Markus Bloch schrieb am So, 17 Februar 2013 14:19Hallo Damian,

leider funktioniert die Definition nicht aufgrund der Meldung.


Thermostat: Unknown actor device ||{Log specified



Dies liegt an Zeile 87


  my ($actor, $actor_cmd1,$actor_cmd2) = split(":", $actor_defs, 3);

  if(!$defs{$actor}) {
      my $msg = "$pn: Unknown actor device $actor specified";
      Log 2, $msg;
      return $msg;
  }



Meine Definition war:


define Thermostat THRESHOLD Verbrauch_Waschmaschine:current:0.02 ||{Log 2,"Wert unterschritten"}||


Viele Grüße

Markus

Mir scheint es, als würdest du mit der alten Version zu arbeiten. Denn auch die Doku ist von der alten. In der neuen habe ich die UTF-8 Kodierung vorgenommen, da funktioniert es auch mit den Umlauten. Fehlermeldungen gibt es bei mir bei der Erzeugung von Commandref auch keine.


Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 17 Februar 2013, 14:57:40
-,- hatte das neue Modul in meinen SVN Developing Ordner geschoben. Jetzt klappts auch. Ich schmeiß gleich mal eine Waschmaschine an und berichte heute Abend.

Vielen Dank

Gruß
Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 17 Februar 2013, 21:33:05
Hi Damian,

schonmal vielen Dank für dein Modul. Funktioniert super.


define alarm_Waschmaschine THRESHOLD Verbrauch_Waschmaschine:current:0.02 |{Log 2,"Waschmaschine läuft"}|{Log 2,"Waschmaschine fertig"}


Und auch genau richtig im Log:


2013.02.17 15:41:06 2: Waschmaschine läuft
2013.02.17 17:02:08 3: Watchdog watchdog_Anwesenheit triggered
2013.02.17 17:02:08 2: CUL_HM set LED_Kueche off rxt:1
2013.02.17 17:02:08 2: CUL_HM set Licht_Bad off rxt:1
2013.02.17 17:02:08 2: CUL_HM set Licht_Kueche off rxt:1
2013.02.17 17:02:08 2: CUL_HM set Licht_Schlafzimmer off rxt:1
2013.02.17 17:02:08 2: CUL_HM set Licht_Wohnzimmer off rxt:1
2013.02.17 17:02:08 2: CUL_HM set TV_Steckdose off rxt:1
2013.02.17 17:02:09 2: CUL_HM set LED_Kueche 0 rxt:1
2013.02.17 17:08:53 2: CUL_HM set Jalousie_Wohnzimmer off rxt:1
2013.02.17 17:08:53 2: CUL_HM set Jalousie_Schlafzimmer off rxt:1
2013.02.17 17:08:53 2: dummy set Status_Jalousie_Automatik -1
2013.02.17 17:16:06 2: Waschmaschine fertig


Ich hätte da lediglich nur ein paar Schönheitspunkte, die ich noch ändern würde.

- sobald ein THRESHOLD Objekt definiert wurde, sollte es im Status "defined" stehen. Damit man weis, das es zwar da ist, aber noch nicht aktiviert ist.

- sobald man via set <name> desired einen Wert vorgegeben hat, sollte das Objekt im Status "active" sein, damit man weis, dass das Teil arbeitet

- sobald man via Attribut "disable" ein Objekt deaktiviert, sollte der Status "disabled" sein. (siehe dazu AttrFn bei der Initialisierung um sowas sofort zu verarbeiten).

- im Reading "state" würde ich nicht das Kommando hinterlegen was gerade ausgeführt wurde, sondern eine Bezeichnung für das Kommand (z.B. "cmd_max_executed", "cmd_min_executed"). Je nach User kann dieses Kommando ellenlang sein und mit allen möglichen HTML Fallen gespickt sein.


Ansonsten Top, auch wenn ich es gerne vermeiden würde, dass man erst einen set-Befehl absetzen muss, um das ganze anzuschalten. Dadurch kann man gerne mal bei einem Neustart ohne Statefile ein stehendes Device haben.

Ich hatte angenommen, das der Parameter "threshold" eine Grenze darstellt, die je nach dem ob sie unter oder überschritten wird via Kommando getriggert wird (was ja in deinem Fall aber erst durch ein Set-Befehl gegeben wird).

Evtl. kann man so etwas noch einbauen.

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 17 Februar 2013, 21:42:08
evtl. kann man ja die Definition folgendermaßen ändern:

define <name> THRESHOLD <sensor>[:<reading>[:<threshold>[:<initial-desired-value>]]] [AND|OR <sensor2>[:<reading2>][:<state>]] <actor>[:<cmd_max>][:<cmd_min>][:<cmd_default>]

Würde ich persönlich zumindest begrüßen, da so der Threshold sofort mit dem Wert arbeiten würde. Währe evtl. auch für eine Heizung/Entfeuchter nicht uninteressant, denn auch der soll nach einem evtl. Neustart sofort wieder arbeiten, auch wenn mal das State-File nicht funktioniert (hatte schon paar mal diese Situation).

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Februar 2013, 22:03:33

- sobald ein THRESHOLD Objekt definiert wurde, sollte es im Status "defined" stehen. Damit man weis, das es zwar da ist, aber noch nicht aktiviert ist.


Ich hatte zu erst initialisiert drin stehen gehabt. Das hatte zur Folge, dass ein Neustart  von FHEM dazu führte, dass der letzte Status überschrieben wurde.


- sobald man via set <name> desired einen Wert vorgegeben hat, sollte das Objekt im Status "active" sein, damit man weis, dass das Teil arbeitet


War vorher auch so ähnlich, fand aber diese Information nicht so Aussagekräftig wie die aktuell gesetzte Temperatur (siehe Screenshot unten).


- sobald man via Attribut "disable" ein Objekt deaktiviert, sollte der Status "disabled" sein. (siehe dazu AttrFn bei der Initialisierung um sowas sofort zu verarbeiten).


Hatte ich auch überlegt, das hat aber zur Folge, dass durch das Löschen des Attibutes (um es wieder zu aktivieren) der vorheriger Zustand und damit der aktive, z. B.  desired 20, nicht mehr sichtbar wäre.


- im Reading "state" würde ich nicht das Kommando hinterlegen was gerade ausgeführt wurde, sondern eine Bezeichnung für das Kommand (z.B. "cmd_max_executed", "cmd_min_executed"). Je nach User kann dieses Kommando ellenlang sein und mit allen möglichen HTML Fallen gespickt sein.


Z. Zt. Vergleiche ich diese Readings, um unnötiges Schalten zu verhindern. Z. B. ist defaultmäßig cmd_max und cmd_default "set Aktor on". Wenn also zuerst cmd_default ausgeführt wurde, wird danach nicht mehr cmd_max ausgeführt, weil beides "set Aktor on" ist. Wenn ich die Kommandonamen dort ablegen würde, würde ich unnötig in solchen Fällen "set Aktor on" ausführen, weil "cmd_dafault" ungleich "cmd_max" ist.


(siehe Anhang / see attachement)

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Februar 2013, 22:13:53
Zitat von: Markus Bloch schrieb am So, 17 Februar 2013 21:42evtl. kann man ja die Definition folgendermaßen ändern:

define <name> THRESHOLD <sensor>[:<reading>[:<threshold>[:<initial-desired-value>]]] [AND|OR <sensor2>[:<reading2>][:<state>]] <actor>[:<cmd_max>][:<cmd_min>][:<cmd_default>]

Würde ich persönlich zumindest begrüßen, da so der Threshold sofort mit dem Wert arbeiten würde. Währe evtl. auch für eine Heizung/Entfeuchter nicht uninteressant, denn auch der soll nach einem evtl. Neustart sofort wieder arbeiten, auch wenn mal das State-File nicht funktioniert (hatte schon paar mal diese Situation).

Viele Grüße

Markus

Ist durchaus sinnvoll und lässt sich leicht realisieren.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 17 Februar 2013, 22:28:58

ZitatHatte ich auch überlegt, das hat aber zur Folge, dass durch das Löschen des Attibutes (um es wieder zu aktivieren) der vorheriger Zustand und damit der aktive, z. B. desired 20, nicht mehr sichtbar wäre.

Mach dir doch einfach eine Hilfsvariable unter $hash->{helper}{XXXX....}. Dort kannst alles mögliche hinterlegen, ohne das es der user sieht. Erst mit einem "list <device>" sieht man die internen Variablen. Da kannst du temporär den letzten Zustand speichern und beim entfernen des disable-Attributs oder beim setzten auf 0 den letzten Status wieder direkt setzen.

ZitatZ. Zt. Vergleiche ich diese Readings, um unnötiges Schalten zu verhindern. Z. B. ist defaultmäßig cmd_max und cmd_default "set Aktor on". Wenn also zuerst cmd_default ausgeführt wurde, wird danach nicht mehr cmd_max ausgeführt, weil beides "set Aktor on" ist. Wenn ich die Kommandonamen dort ablegen würde, würde ich unnötig in solchen Fällen "set Aktor on" ausführen, weil "cmd_dafault" ungleich "cmd_max" ist.

Mach dir auch hier eine Hilfsvariable unter $hash->{helper}. FHEM Kommandos habe generell nix in den Readings zu suchen.

Generell währe es aber nicht verkehrt, "mit set <name> desired XX" ein Reading "desired" zu setzen. Dieses wird auch im State-File gehalten und du hättest keine Probleme mit State-Änderungen.

Und du solltest auf jedenfall die Reading-Functions verwenden um Readings zu setzen (readingsBeginUpdate, readingsBulkUpdate, readingsEndUpdate, readingsSingleUpdate).

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Februar 2013, 22:42:18
Zitat von: Markus Bloch schrieb am So, 17 Februar 2013 22:28
ZitatHatte ich auch überlegt, das hat aber zur Folge, dass durch das Löschen des Attibutes (um es wieder zu aktivieren) der vorheriger Zustand und damit der aktive, z. B. desired 20, nicht mehr sichtbar wäre.

Mach dir doch einfach eine Hilfsvariable unter $hash->{helper}{XXXX....}. Dort kannst alles mögliche hinterlegen, ohne das es der user sieht. Erst mit einem "list <device>" sieht man die internen Variablen. Da kannst du temporär den letzten Zustand speichern und beim entfernen des disable-Attributs oder beim setzten auf 0 den letzten Status wieder direkt setzen.

ZitatZ. Zt. Vergleiche ich diese Readings, um unnötiges Schalten zu verhindern. Z. B. ist defaultmäßig cmd_max und cmd_default "set Aktor on". Wenn also zuerst cmd_default ausgeführt wurde, wird danach nicht mehr cmd_max ausgeführt, weil beides "set Aktor on" ist. Wenn ich die Kommandonamen dort ablegen würde, würde ich unnötig in solchen Fällen "set Aktor on" ausführen, weil "cmd_dafault" ungleich "cmd_max" ist.

Mach dir auch hier eine Hilfsvariable unter $hash->{helper}. FHEM Kommandos habe generell nix in den Readings zu suchen.

Generell währe es aber nicht verkehrt, "mit set <name> desired XX" ein Reading "desired" zu setzen. Dieses wird auch im State-File gehalten und du hättest keine Probleme mit State-Änderungen.

Und du solltest auf jedenfall die Reading-Functions verwenden um Readings zu setzen (readingsBeginUpdate, readingsBulkUpdate, readingsEndUpdate, readingsSingleUpdate).

Viele Grüße

Markus

Die Sache mit den helper-Variablen kannte ich noch nicht. Das macht die Sache natürlich einfacher. Den Reading desired kann ich wieder einbauen, den hatte ich rausgenommen, weil mir die Sache mit Reading max und Reading min intuitiver vorkam, als das Reading delta und desired in der vorherigen Version.

Gruß

Damian


Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: allp am 19 Februar 2013, 16:36:46
Hallo Damian,

Erstmal ein großes Lob! Das THRESHOLD Modul ist genau das was ich für meine Fußbodenheizung schon lange gesucht habe!

Ich bin ein Anfänger was fhem angeht, habe mich aber in den letzten tagen gründlich eingelesen, unter anderem auch deine Beiträge. Fhem läuft bereits auf meiner fritzbox und die Sensoren/Aktoren werde ich mit Sicherheit ohne Probleme einbinden können.  
Bis jetzt habe ich noch keine Komponenten gekauft da ich mich nicht wirklich entscheiden kann.
Ich würde 1-wire Sensoren  für die temperaturerfassung bevorzugen, nur wohne ich zurzeit in einer Mietwohnung und hab nicht die Möglichkeit (versteckte) Leitungen zu legen (oder vielleicht doch? Wie hast du das gelöst?).  
Sonst bleibt ja nur der Funk. Da kann ich mich aber nicht wirklich entscheiden. Homematic oder Fs20.
Tendiere mehr zu homematic wegen der Rückmeldung der Geräte und somit die Sicherheit! Oder brauche ich es bei fhem nicht (sprich diese Funktion wird von fhem gewährleistet).
Hoffe du kannst mir bei meinem vorhaben weiterhelfen ;)
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Februar 2013, 17:33:59
Zitat von: allp schrieb am Di, 19 Februar 2013 16:36Hallo Damian,

Erstmal ein großes Lob! Das THRESHOLD Modul ist genau das was ich für meine Fußbodenheizung schon lange gesucht habe!
Danke.
Wir haben auch Fußbodenheizung mit 230V Stellantrieben. Ich habe auch lange überlegt, wie ich die Sache in FHEM einbinden kann.
Die ganzen Lösungen, wie FHT, MAX oder ähnliches sind zunächst für konventionelle Heizkörper gedacht.
Da wir nur Fußbodenheizung haben, gibt´s direkt die richtige Vorlauftemperatur von der Therme. Mischer brauche ich nicht.

Die Steuerung beschränkt sich auf ein einfaches Öffnen und Schließen der 230V Stellantriebe, was bei reiner Fußbodenheizung auch üblich ist. Da FB ja sowieso sehr träge ist, macht eine PID-Steuerung wenig Sinn.

Was bei uns über digitale Raumthermostate 14 Jahre lang gut funktionierte, sollte nun auf FHEM umgestellt werden.

Zuerst habe ich das PID-Modul auf einfaches on/off-Schalten erweitert. Danach habe ich das separate Modul THRESHOLD erstellt. Die Vorgeschichte, kennst du ja schon aus dem Thred.

Nun zu meiner Lösung:

Wie du aus dem obigen Screenshot erkennen kannst, entnehme ich die Temperaturen über 1-Wire Sensoren. Kosten ca. 1 € pro Stück. Voraussetzung ist, dass man rechtzeitig Kabel gelegt hat.

Wenn man keine Kabel hat, bieten sich die S300TH-Sensoren für 15 € pro Stück an. Die kann man mit einem CUL 868 empfangen. Die produzieren natürlich Funkverkehr. Bei meinen 10 Tempsensoren, wäre die Funklast schon nicht unerheblich.

Die alten Raumthermostate habe ich einfach gegen HM-Schalter ausgetauscht, die werden dann über das THRESHOLD Modul einzeln angesteuert. Da es einfache Schalter sind, kann man die auch manuell schalten und damit die Automatik bis zum nächsten Schaltzeitpunkt übersteuern. HM ist natürlich zuverlässiger als FS20, allerdings auch teurer. Auch die ganze Therme kann ich mittlerweile über FHEM ein und ausschalten.

Seit gestern habe ich auch die ultimative Sparautomatik, die sich relativ einfach über FHEM realisieren ließ.

Ich habe meine HM-Schalter von allen Zimmern zu einer Gruppe über structure zusammen gefasst. Und dann einfach ein notify zum Schalten der Therme auf diese Structure definiert.

Das Ergebnis ist, dass nun die ganze Therme ausgeschaltet wird, sobald alle Stellantriebe geschlossen sind und wieder eingeschaltet wird, sobald ein Stellantrieb (HM-Schalter) über das THRESHOLD-Modul geöffnet wird.

Da meine Therme nur auf 10 KW runter modulieren kann, hat sie in der Vergangenheit immer getaktet (an-/ausgeschaltet) hauptsächlich, wenn die Stellantriebe geschlossen waren, weil der Heizkreislauf dann klein war.
Dieses Problem dürfte nun entschärft sein. Das dürfte den Gasverbrauch reduzieren und die Lebensdauer der Therme erhöhen.

Ich hoffe dir ein paar Anregungen gegeben zu haben.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: allp am 19 Februar 2013, 18:31:36
Danke erstmal für die schnelle Rückmeldung.

ZitatZuerst habe ich das PID-Modul auf einfaches on/off-Schalten erweitert. Danach habe ich das separate Modul THRESHOLD erstellt. Die Vorgeschichte, kennst du ja schon aus dem Thred.

Genau, das Thema habe ich mitverfolgt.

ZitatNun zu meiner Lösung:

Wie du aus dem obigen Screenshot erkennen kannst, entnehme ich die Temperaturen über 1-Wire Sensoren. Kosten ca. 1 € pro Stück. Voraussetzung ist, dass man rechtzeitig Kabel gelegt hat.

Wenn man keine Kabel hat, bieten sich die S300TH-Sensoren für 15 € pro Stück an. Die kann man mit einem CUL 868 empfangen. Die produzieren natürlich Funkverkehr. Bei meinen 10 Tempsensoren, wäre die Funklast schon nicht unerheblich.

Das ist mein Problem, dass keine Leitungen verlegt sind und ich so auf funk ausweichen muss. Das ist aber erstmal nicht weiter schlimm, da es für den Anfang (und dabei bleibt es in der Mietwohnung was die Heizung angeht, denke ich mal) nur 2 räume sein werden die gesteuert werden. Und zwar das Wohnzimmer und das Bad ( die anderen räume werden nicht beheizt, da diese durch die gute hausisolierung (bj 2008) eine temperatur von ca 19 grad haben und kaum benutzt werden).  

ZitatDie alten Raumthermostate habe ich einfach gegen HM-Schalter ausgetauscht, die werden dann über das THRESHOLD Modul einzeln angesteuert. Da es einfache Schalter sind, kann man die auch manuell schalten und damit die Automatik bis zum nächsten Schaltzeitpunkt übersteuern. HM ist natürlich zuverlässiger als FS20, allerdings auch teurer.

Hab mir das auch so vorgestellt mit den HM Schaltern anstatt der raumthermostate.  Es werden wohl die HM sachen werden! ;)

Was hältst du von diesem Temp.sensor:
http://www.amazon.de/HomeMatic-Außen-Temperatursensor/dp/B004FPU5QU/ref=sr_1_4?ie=UTF8&qid=1361292300&sr=8-4 (//www.amazon.de/HomeMatic-Au%C3%9Fen-Temperatursensor/dp/B004FPU5QU/ref=sr_1_4?ie=UTF8&qid=1361292300&sr=8-4)


Ist zwar für aussen, aber der kann doch nicht viel schlechter als die für innen sein was die Genauigkeit angeht, oder?



ZitatAuch die ganze Therme kann ich mittlerweile über FHEM ein und ausschalten.

Seit gestern habe ich auch die ultimative Sparautomatik, die sich relativ einfach über FHEM realisieren ließ.

Ich habe meine HM-Schalter von allen Zimmern zu einer Gruppe über structure zusammen gefasst. Und dann einfach ein notify zum Schalten der Therme auf diese Structure definiert.

Das Ergebnis ist, dass nun die ganze Therme ausgeschaltet wird, sobald alle Stellantriebe geschlossen sind und wieder eingeschaltet wird, sobald ein Stellantrieb (HM-Schalter) über das THRESHOLD-Modul geöffnet wird.

Da meine Therme nur auf 10 KW runter modulieren kann, hat sie in der Vergangenheit immer getaktet (an-/ausgeschaltet) hauptsächlich, wenn die Stellantriebe geschlossen waren, weil der Heizkreislauf dann klein war.
Dieses Problem dürfte nun entschärft sein. Das dürfte den Gasverbrauch reduzieren und die Lebensdauer der Therme erhöhen.

Das ist bei mir leider nicht möglich da es auf alle 6 Parteien aufgeteilt wird.
Ist aber eine sehr gute Idee!
Die Vorlauftemperatur ist bei uns auf 40 grad eingestellt! Ist das ok?


Wenn das mit dem Thermostat okay ist werde ich wohl die Sachen bestellen und  das ganze mal testen.
Für z.B Nachtabsenkung oder Partymodus kann ich ja dann das HeatingControl Modul verwenden, oder?
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Februar 2013, 19:17:14
[quote title=allp schrieb am Di, 19 Februar 2013 18:31]Danke erstmal für die schnelle Rückmeldung.

ZitatWas hältst du von diesem Temp.sensor:
http://www.amazon.de/HomeMatic-Außen-Temperatursensor/dp/B004FPU5QU/ref=sr_1_4?ie=UTF8&qid=1361292300&sr=8-4 (//www.amazon.de/HomeMatic-Au%C3%9Fen-Temperatursensor/dp/B004FPU5QU/ref=sr_1_4?ie=UTF8&qid=1361292300&sr=8-4)


Ist zwar für aussen, aber der kann doch nicht viel schlechter als die für innen sein was die Genauigkeit angeht, oder?


Da solltest du vorher prüfen, ob dieser Sensor in FHEM mittlerweile eingebunden ist. Von der Genauigkeit sollte der nicht anders sein als der S300TH, der ja auch für Außeneinsatz gedacht ist. Dann brauchst du auch keinen CUL. Ich habe den HM_LAN-Adapter für HM-Sachen im Einsatz. Funktioniert sehr zuverlässig und ist billiger als CUL.

ZitatDie Vorlauftemperatur ist bei uns auf 40 grad eingestellt! Ist das ok?

Viel höher sollte sie bei einer FB nicht sein, sonst wird es unangenehm unter den Füßen. Unsere ist natürlich Außentemperatur gesteuert (das ist heute eher der Standard), geht aber auch nicht über 40 Grad.

ZitatWenn das mit dem Thermostat okay ist werde ich wohl die Sachen bestellen und  das ganze mal testen.

Welches Thermostat meinst du? Wenn du das THRESHOLD-Modul meinst, dann kannst du davon ausgehen, dass alle Versionen, die ich hier zum Upload gepostet habe (inkl. PID-Modul), im Heizmodus zuverlässig funktionieren, da ich diesen Modus bei mir schon länger im Einsatz habe. Ich werde aber noch paar Änderungen an dem Modul vornehmen (siehe obige Konversation). Und wenn mehr Leute das Interesse an dem Modul haben, werde ich mit Rudi über das Einchecken reden.

ZitatFür z.B Nachtabsenkung oder Partymodus kann ich ja dann das HeatingControl Modul verwenden, oder?

Ich habe zunächst ein paar AT-Befehle für die Heizphasen definiert. Ich habe bei mir zwei Heizphasen: morgens und nachmittags (siehe Screenshot oben). In diesen Phasen läuft die Therme auch nur, dann setze ich die gewünschten Temperaturen für die einzelnen Zimmer mit set TH_Zimmer desired Wunschtemp. In den anderen Phasen, wo die Therme nicht läuft, setze ich die desired Temperaturen herunter, damit keine Stellantriebe unnötig angehen (die brauchen immerhin ca. 2-3 W pro Stellantrieb). Man könnte hier auch auch das Attribut disable bei THRESHOLD Devices benutzen.

Später werde ich die AT-Definitionen mit dem Setzen der desired Temperaturen durch das Heating_Control-Modul ersetzen, weil es einfach übersichtlicher ist.

Gruß

Damian
 
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: allp am 19 Februar 2013, 20:57:11
ZitatDa solltest du vorher prüfen, ob dieser Sensor in FHEM mittlerweile eingebunden ist. Von der Genauigkeit sollte der nicht anders sein als der S300TH, der ja auch für Außeneinsatz gedacht ist. Dann brauchst du auch keinen CUL. Ich habe den HM_LAN-Adapter für HM-Sachen im Einsatz. Funktioniert sehr zuverlässig und ist billiger als CUL.

Das hört sich gut an!
Das war auch der Hintergedanke dabei, anstatt dem CUL dem HM Lan Adapter zu verwenden. ;)
Wo kann ich den prüfen oder nachlesen ob der sensor in fhem eingebunden ist?

ZitatViel höher sollte sie bei einer FB nicht sein, sonst wird es unangenehm unter den Füßen. Unsere ist natürlich Außentemperatur gesteuert (das ist heute eher der Standard), geht aber auch nicht über 40 Grad.

Das ist unsere eigentlich auch (außebtem. Gesteuert), wurde mir gesagt!
Dann sind die 40 grad wahrscheinlich die max. Temperatur.

ZitatWenn das mit dem Thermostat okay ist werde ich wohl die Sachen bestellen und das ganze mal testen.

Damit war natürlich der Temperatur sensor gemeint, sorry!

ZitatSpäter werde ich die AT-Definitionen mit dem Setzen der desired Temperaturen durch das Heating_Control-Modul ersetzen, weil es einfach übersichtlicher ist.

Dazu werde ich später bestimmt ein paar fragen noch haben.
Aber erstmal werden nun die Komponenten bestellt und alles aufgebaut. ;)

Achja, noch ne frage. Was für ein gerät nutzt du für die 1-wire sensoren.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Februar 2013, 23:49:37
ZitatWo kann ich den prüfen oder nachlesen ob der sensor in fhem eingebunden ist?
http://www.fhemwiki.de/wiki/Kategorie:HomeMatic_Components (//www.fhemwiki.de/wiki/Kategorie:HomeMatic_Components)

Habe den da aber nicht gefunden. Am besten im FHEM-HomeMatic-Forum anfragen.

ZitatAchja, noch ne frage. Was für ein gerät nutzt du für die 1-wire sensoren.

Einen USB-Adapter aus Polen.

http://www.meraprojekt.com.pl/files/MP00202.pdf (//www.meraprojekt.com.pl/files/MP00202.pdf)

War aus einer einer Sammelbestellung.

Weitere Infos hier:

https://groups.google.com/forum/?fromgroups=#!topic/fhem-users/p7OYeDDZ8kg (//groups.google.com/forum/?fromgroups=#!topic/fhem-users/p7OYeDDZ8kg)

funktioniert bei mir wunderbar.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: allp am 20 Februar 2013, 00:12:24
Danke noch mal für deine Hilfe!

Werde mich dann noch etwas schlau machen!

Gruß
Alex
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Michael am 20 Februar 2013, 07:18:37
Hi Damian

Lese hier schon ganze Zeit mit.
Und bin am Testen der Feuchtigkeits funktion.

ZitatUnd wenn mehr Leute das Interesse an dem Modul haben, werde ich mit Rudi über das Einchecken reden.
Würden ich prima finden.

Gruß, Michael



Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 26 Februar 2013, 21:59:51
Hallo Damian,

Ich habe Dein Modul auch zum probieren vorgemerkt, sobald mein Urlaub vorbei ist. Habe eine Heizungsreglung im Büro mit Thermoelektrischem Ventil 220V gesteuert über 1wire Switch mit SSR unter Einbeziehung von Fensterkontakt ( anderer Kanal vom DS2406) und Temperatur über DS1820. Da sollte das doch ganz gut passen und meine "Eigenbauprogrammierung mit if then" günstig ersetzen.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 26 Februar 2013, 22:04:44
Zitat von: det. schrieb am Di, 26 Februar 2013 21:59Hallo Damian,

Ich habe Dein Modul auch zum probieren vorgemerkt, sobald mein Urlaub vorbei ist. Habe eine Heizungsreglung im Büro mit Thermoelektrischem Ventil 220V gesteuert über 1wire Switch mit SSR unter Einbeziehung von Fensterkontakt ( anderer Kanal vom DS2406) und Temperatur über DS1820. Da sollte das doch ganz gut passen und meine "Eigenbauprogrammierung mit if then" günstig ersetzen.

Warum nicht;)

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 02 März 2013, 10:15:27
Hallo Damian,

wenn ich mein FHEM auf der Konsole direkt starte bekomme ich folgende Warnung:


Use of uninitialized value $operator in string eq at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 107, <$fh> line 758.
Use of uninitialized value $operator in string eq at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 107, <$fh> line 758.


Nur als Hinweis, stört zwar nicht, währe aber schön, wenn du das beseitigen könntest.

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: cwagner am 10 März 2013, 11:35:24
Hi Demian,

dieses Modul finde ich große Klasse - es hat bei mir (in der 2. Upload-Fassung) auf Anhieb sofort funktioniert. Neben dem Wunsch, es in FHEM einzuchecken, den sich sehr unterstütze, habe ich natürlich auch Wünsche, dann könnte das Modul bei mir ein sehr umständliches/unübersichtliches Notify für eine Steuerung einer alten Heizungsanlage inkl. Warmwasserbereitung und Anpassung an den Heizbedarf in den Räumen ersetzen:

Ich würde gerne per set-Befehl nicht nur desired, also die Wunschtemperatur ändern können, sondern auch die Schwelle (Threshold).
So in der Art:

set Thermostat threshold:temperature:5

um von dem aktuellen Wert z.B. auf +/- 5 umzuschalten.

Hintergrund: Wenn in meinen Räumen eines/mehrere Ventile über 50% offen sind, gehe ich von erhöhtem Wärmebedarf aus und erhöhe schrittweise die Vorlauftemperatur.
Umgekehrt: Wenn die Ventile unter 50 % gehen, senke ich schrittweise die Vorlauftemperatur
Natürlich gibt es da untere und obere Grenzen, die die Vorlauftemperatur der Heizung nicht über-/unterschreiten dürfen.

Christian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 10 März 2013, 12:12:28
Hallo Christian,

ich bin kurz vor Fertigstellung der hoffentlich letzten Version zum Einchecken.

Ich habe noch viele Details verändert, die z. T. missverständlich waren.

Insbesondere der Parameter threshold, war nicht günstig gewählt, denn es war nicht die Schwelle,
sondern die Differenz zum Sollwert.

In der neuen Version heißt es nun hysteresis.

Der Sollwert (desired-Wert) ist nun die Obergrenze und die Untergrenze ist dann Sollwert-hysteresis.

Zu deinem Wunsch: Würde es in deinem Fall nicht reichen den desired-Wert einfach neu zu setzen?

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 10 März 2013, 12:19:03
Hallo Damian,

schonmal vielen Dank für deine Mühe. Bin schon sehr gespannt. Die letzte Vorab-Version hier aus dem Thread funktioniert jedenfalls schonmal super und das auch unter schwierigen Umständen (FHEM zwischendurch mal gestoppt, als der Wert die untere Schwelle überschritten hatte, etc).

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: cwagner am 10 März 2013, 13:00:34
Hui, Deminan,

das mit dem Antworten geht hier ja schnell! Auf die Lösung, desired zu verschieben, bin ich auch schon gekommen. Dennoch habe ich Bedarf nach einer Möglichkeit, auch Hysteris setzen zu können, weil während der Warmwasserproduktion muss ich Min/Max des Vorlaufs spreitzen, damit es nicht zu vielen Ein-/Ausschaltvorgängen kommt (Verschleiß des alten Heizungschätzchens und Umweltbelastung beim Anfahrbetrieb).

Ich freu mich schon auf die neue Version!

Christian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 10 März 2013, 17:04:26
Zitat von: cwagner schrieb am So, 10 März 2013 13:00Hui, Deminan,

das mit dem Antworten geht hier ja schnell! Auf die Lösung, desired zu verschieben, bin ich auch schon gekommen. Dennoch habe ich Bedarf nach einer Möglichkeit, auch Hysteris setzen zu können, weil während der Warmwasserproduktion muss ich Min/Max des Vorlaufs spreitzen, damit es nicht zu vielen Ein-/Ausschaltvorgängen kommt (Verschleiß des alten Heizungschätzchens und Umweltbelastung beim Anfahrbetrieb).

Ich freu mich schon auf die neue Version!

Christian

Das Setzen der Hysterese per set-Kommando ist nun auch drin.

Das Modul ist bereits eingecheckt und dürfte morgen verfügbar sein.

Das Schreiben meines Vornamens üben wir aber noch;)

Alle, die bisher die Vorabversionen getestet haben, sollten vor dem Update die bisherigen THRESHOLD-Definitionen löschen, da sich einige Readings und die Syntax des Aufrufs geändert haben. Alles Weitere steht in der Doku.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Steve am 14 März 2013, 11:24:13
Hallo Damian,

wo finde ich die Doku?

In der Definition ist nichts da.

VG Steve
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 März 2013, 15:43:05
Hallo Steve,

die entsprechende Doku befindet sich in dem jeweiligen Modul.

In der Commandref (link auf der Startseite von FHEM) sollte nach einem update das THRESHOLD-Modul zu finden sein. Ich unterstelle, dass das Update-Kommando auch die Doku in der Commandref aktualisiert.

Da ich FHEM unter Windows laufen habe, funktioniert das update-Kommando bei mir nicht. Deswegen rufe ich ./contrib/commandref_join.pl immer manuell auf, um die Commandref zu aktualisieren.

Gruß

Damian

 
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: cwagner am 14 März 2013, 16:19:10
Hallo zusammen,

die sehr hilfreiche Dokumentation ist auch auf einem Windows-8 bei mir unter den Browsern Chrome wie auch Internet-Explorer dann vollständig über Commandref und dem Link im mittleren Bock "devices" vorhanden, wenn das eingecheckte Modul über die update-Funktion aufgerufen wird (seit Montag). Die aus den Postings heruntergeladenen früheren Versionen wurden nicht eingelesen.
Alternative, die auch völlig ohne FHEM funktioniert: http://fhem.de/commandref.html (//fhem.de/commandref.html)

Die jüngsten Veränderung von Threshold habe ich jetzt in den ersten Tagen des Einsatzes als äußerst hilfreich erlebt und zugleich eröffnen sich über die Option zwei Sensoren mit und/oder abzufragen und auch Befehlsketten auszulösen, vielversprechende Optionen. Bei mir hat das Modul an vielen Stellen zuverlässig vielzeilige, komplizierte Bedingungskonstruktionen ersetzt und ist zugleich auch noch reaktionsschneller.

Aktuell erprobe ich eine Brennersteuerung mit Parameter-Anpassung bei Warmwasserbedarf und Anpassung an den Wärembedarf im Haus durch Verschiebung des Sollwertes und Anpassung der Hysterese (also Abstand zwischen Ein- und Ausschaltpunkt) mit zwei verschachtelten THRESHOLDs. Hier bewährt sich die Entscheidung, nicht mehr eine Plus/minus-Konstruktion zu machen (Soll = z.B. 55 +/- 5 bedeutet erster Schaltpunkt bei 50 und zweiter Schaltpunkt bei 60, sondern den oberen Schaltpunkt zu setzen und von diesem dann die Hysterese abzuziehen. Damit läßt sich eine Verschiebung des oberen Punktes ganz simpel auch gleich zur Erhöhung der Spreizung benutzen - dies ist bei Öl-Heizung, die wegen Korrosionsgefahr eine untere Kesseltemperatur nicht unterschreiten darf, ganz toll: Je größer der Unterschied zwischen Ein- und Ausschaltpunkt nämlich ist, umso seltener muss sie umweltschädlich und verschleissend starten.
Z.B.: Wenig Bedarf: Threshold 50; Hysteresis 10 (40° Brenner ein, 50° Brenner aus).
Mehr Bedarf: Threshold 50+5; Hysteresis 10+5 (40° Brenner ein, 55° Brenner aus)
Viel Bedarf: Threshold 50+10; Hysteresis 10+10 (40° Brenner ein, 60° Brenner aus).
Da Threshold als Parameter nur Zahlen akzeptiert, muss man diese Werte-Veränderung in einem Scalar errechnen.

Christian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 14 März 2013, 16:40:30
Hallo Damian,

vielen Dank schonmal. Ich würde aber auf jedenfall in der Commandref THRESHOLD unter "Helper modules" führen und nicht unter "Devices".

Viele Grüße

Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 März 2013, 17:15:21
Zitat von: Markus Bloch schrieb am Do, 14 März 2013 16:40Hallo Damian,
vielen Dank schonmal. Ich würde aber auf jedenfall in der Commandref THRESHOLD unter "Helper modules" führen und nicht unter "Devices".

Sehe ich auch so. Die erste Version wurde vom Rudi eingecheckt, da hatte ich noch keinen Zugang zu SourceForge. Man müsste das Modul offensichtlich unter Helper modules in der commandref_frame.html eintragen. Ich weiß nicht ob das jeder Entwickler für sich macht oder ob man es lieber den Rudi eintragen lässt.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 14 März 2013, 23:33:51
Hi Damian,

mir ist noch etwas aufgefallen. Ich habe laut Doku eine eigene Hysteresis von 0 gesetzt. Dennoch ist die Hysteresis 20.


Internals:
   DEF        Verbrauch_Waschmaschine:current:0:0.02 |{Log 2,"Waschmaschine läuft"}|{prowl("Waschmaschine ist fertig")}
   NAME       Alarm_Waschmaschine
   NR         332
   NTFY_ORDER 50-Alarm_Waschmaschine
   STATE      active 0.02
   TYPE       THRESHOLD
   hysteresis 20
   sensor     Verbrauch_Waschmaschine
   sensor_reading current
   CHANGETIME:
   Readings:
     2013-03-14 23:32:51   cmd             wait for next cmd
     2013-03-14 23:32:51   desired_value   0.02
     2013-03-11 00:52:07   sensor_max      0.06
     2013-03-11 00:52:07   sensor_min      0.02
     2013-03-14 23:30:19   sensor_value    0.01
     2013-03-14 23:32:51   state           active 0.02
     2013-03-14 23:32:51   threshold_min   -19.98
   Helper:
     actor_cmd1 {Log 2,"Waschmaschine läuft"}
     actor_cmd2 {prowl("Waschmaschine ist fertig")}
     actor_cmd_default 0
Attributes:
   loglevel   2


Kann es sein, dass das ein Fehler ist?

Viele Grüße
Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rudolfkoenig am 15 März 2013, 10:20:57
Hab die beiden commandref_frame.html Dateien angepasst und eingecheckt.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 15 März 2013, 16:49:52
Zitat von: Markus Bloch schrieb am Do, 14 März 2013 23:33Hi Damian,
Kann es sein, dass das ein Fehler ist?

ja.

Fehler wurde korrigiert. Korrektur kommt morgen per Update.


Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 15 März 2013, 17:37:33
Hallo Damian,
Modul funktioniert prima. Vielen Dank! Kann mir jemand einen Tip geben, wie ich den Wert dieses Dummys:define Buero_desired_temp dummy
attr Buero_desired_temp alias Solltemperatur
attr Buero_desired_temp group Heizung
attr Buero_desired_temp room Buero
attr Buero_desired_temp setList state:slider,16,1,25
attr Buero_desired_temp stateFormat state  °C
attr Buero_desired_temp webCmd state
anset Thermostat desired ...zur einfachen Änderung der Solltemperatur über den Slider übergeben kann. Bekomme da immer die Meldung das alle meine Versuche nicht "numeric" sind.
Danke!
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 15 März 2013, 20:39:57
Zitat von: rudolfkoenig schrieb am Fr, 15 März 2013 10:20Hab die beiden commandref_frame.html Dateien angepasst und eingecheckt.

Danke.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 15 März 2013, 20:42:35
Zitat von: det. schrieb am Fr, 15 März 2013 17:37Bekomme da immer die Meldung das alle meine Versuche nicht "numeric" sind.
Danke!

Ich habe bisher keinen dummy benutzt, aber vielleicht liegt es an der Grad-Einheit, die würde THRESHOLD nicht akzeptieren.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 15 März 2013, 22:39:45
Leider nicht, der state ist z.b. 20, wenn ich ReadingsVal (Dummy, "state","6") verwende und der Slider  auf 20*C steht
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 15 März 2013, 23:23:13
Zitat von: det. schrieb am Fr, 15 März 2013 22:39Leider nicht, der state ist z.b. 20, wenn ich ReadingsVal (Dummy, "state","6") verwende und der Slider  auf 20*C steht

Das sollte bei auch dir funktionieren:

{my $a=ReadingsVal ("Buero_desired_temp", "state","6");;fhem("set Thermostat desired $a")}

Gruß

Damian

P.S: Ab morgen ist THRESHOLD gesprächiger, was Fehlermeldungen angeht;)
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Markus Bloch am 16 März 2013, 08:35:24
Funktioniert jetzt sauber.

Vielen Dank und schönes Wochenende

Gruß
Markus
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 16 März 2013, 19:11:53
Hallo Damian,
Danke, funktioniert prima! Da ich das thermische Heizungsventil und den Fensterkontakt über einen 1-wire DS2406 mit OWSWITCH schalte/überwache und mit Perl noch so meine Schwierigkeiten habe, war der Fenstersensor nicht mein Freund in Zusammenarbeit mit Deinem Modul. Habe das mit dem Slider für die Temperatureinstellung, dem Fensterkontakt, der Vorlauftemperatur und der Uhrzeit jetzt so gelöst:
define Buero_desired_temp dummy
attr Buero_desired_temp alias Solltemperatur
attr Buero_desired_temp setList state:slider,16,1,25
define Dummy_notify notify (Buero_desired_temp:.*|OWSWITCHB) {\
 my $a=ReadingsVal ("Buero_desired_temp", "state","6");;\
 my $temp_OWX_HZ_RUECK = ReadingsVal("OWX_HZ_RUECK","temperature","20");;\
 if (($temp_OWX_HZ_RUECK > 39) && (ReadingsVal("OWSWITCHB","B","20") ne "OFF") && ($hour>=7) && ($hour<22)) {fhem "set Thermostat desired $a";;}\
else {fhem "set Thermostat desired 12";;}\
}
define Thermostat THRESHOLD BueroTemp_KG:temperature |{fhem"set OWSWITCHB output A OFF"}|{fhem"set OWSWITCHB output A ON"}|1
nur so als Anregung, falls jemand Lust verspürt, das zu optimieren
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 16 März 2013, 20:14:38
Zitat von: det. schrieb am Sa, 16 März 2013 19:11Hallo Damian,
Danke, funktioniert prima! Da ich das thermische Heizungsventil und den Fensterkontakt über einen 1-wire DS2406 mit OWSWITCH schalte/überwache und mit Perl noch so meine Schwierigkeiten habe, war der Fenstersensor nicht mein Freund in Zusammenarbeit mit Deinem Modul. Habe das mit dem Slider für die Temperatureinstellung, dem Fensterkontakt, der Vorlauftemperatur und der Uhrzeit jetzt so gelöst:
define Buero_desired_temp dummy
attr Buero_desired_temp alias Solltemperatur
attr Buero_desired_temp setList state:slider,16,1,25
define Dummy_notify notify (Buero_desired_temp:.*|OWSWITCHB) {\
 my $a=ReadingsVal ("Buero_desired_temp", "state","6");;\
 my $temp_OWX_HZ_RUECK = ReadingsVal("OWX_HZ_RUECK","temperature","20");;\
 if (($temp_OWX_HZ_RUECK > 39) && (ReadingsVal("OWSWITCHB","B","20") ne "OFF") && ($hour>=7) && ($hour<22)) {fhem "set Thermostat desired $a";;}\
else {fhem "set Thermostat desired 12";;}\
}
define Thermostat THRESHOLD BueroTemp_KG:temperature |{fhem"set OWSWITCHB output A OFF"}|{fhem"set OWSWITCHB output A ON"}|1
nur so als Anregung, falls jemand Lust verspürt, das zu optimieren

das sollte einfacher gehen mit:

define Thermostat THRESHOLD BueroTemp_KG:temperature OR OWSWITCHB:B:OFF OWSWITCHB|set @ output A OFF|set @ output A ON

Dann könntest du dein notify weiter abspecken.

Ich unterstelle dabei, dass ein offenes Fenster beim Reading "B" vom OWSWITCHB "OFF" liefert.

Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 17 März 2013, 11:18:37
Hallo Damian,
Danke für deine Bemühungen, die Annahmen bezüglich der Zustände des OWSWITCH sind genau richtig, leider erzeugt Deine Code Zeile folgende Fehlermeldung:wrong syntax: define THRESHOLD [:[:][:] [AND|OR [:][:]] [][|][|][|] Please define Thermostat firstIch hatte da vorher auch schon alles so probiert und letztendlich aufgegeben und den Code so umgesetzt, wie in meinem vorigen post.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 17 März 2013, 12:37:24
Zitat von: det. schrieb am So, 17 März 2013 11:18Hallo Damian,
Danke für deine Bemühungen, die Annahmen bezüglich der Zustände des OWSWITCH sind genau richtig, leider erzeugt Deine Code Zeile folgende Fehlermeldung:wrong syntax: define THRESHOLD [:[:][:] [AND|OR [:][:]] [][|][|][|] Please define Thermostat firstIch hatte da vorher auch schon alles so probiert und letztendlich aufgegeben und den Code so umgesetzt, wie in meinem vorigen post.

gut, dass wir darüber gesprochen haben - es war noch ein kleiner Bug drin. Neue Version ist bereits eingecheckt.

Wenn du es direkt probieren willst musst du in THRESHOLD.pm in der Zeile 52 die Zahl 5 gegen 6 tauschen (zuvor FHEM beenden):

  if (@b > 4 || @a < 3 || @a > 6) {

dann sollte es funktionieren.  

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 17 März 2013, 13:27:44
Hallo Damian,

FHEM nimmt die Befehlzeile jetzt an. Ob das schaltet kann ich erst sagen, wenn meine Heizung aus der Mittagspause raus ist. Allerdings ist die Konsole jetzt recht gesprächig:Use of uninitialized value $hysteresis in string eq at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 71.
Use of uninitialized value $init_desired_value in string ne at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 84.
Use of uninitialized value $cmd_default in string eq at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 135.
Use of uninitialized value $init_desired_value in string ne at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 154.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 17 März 2013, 16:02:41
Hallo Damian,
define Thermostat THRESHOLD BueroTemp_KG:temperature OR OWSWITCHB:B:OFF OWSWITCHB|set @ output A OFF|set @ output A ONwar leider nicht zum Schalten zu überreden, egal wie ich desired_temp / AND OR etc. verändert habe. Bin wieder zum vorherigen Code zurückdefine Thermostat THRESHOLD BueroTemp_KG:temperature |{fhem"set OWSWITCHB output A OFF"}|{fhem"set OWSWITCHB output A ON"}|1das funktioniert.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 17 März 2013, 17:58:37
Zitat von: det. schrieb am So, 17 März 2013 13:27Hallo Damian,

FHEM nimmt die Befehlzeile jetzt an. Ob das schaltet kann ich erst sagen, wenn meine Heizung aus der Mittagspause raus ist. Allerdings ist die Konsole jetzt recht gesprächig:Use of uninitialized value $hysteresis in string eq at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 71.
Use of uninitialized value $init_desired_value in string ne at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 84.
Use of uninitialized value $cmd_default in string eq at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 135.
Use of uninitialized value $init_desired_value in string ne at /usr/share/fhem/FHEM/98_THRESHOLD.pm line 154.

warnings sind jetzt weg

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 17 März 2013, 18:13:23
Zitat von: det. schrieb am So, 17 März 2013 16:02Hallo Damian,
define Thermostat THRESHOLD BueroTemp_KG:temperature OR OWSWITCHB:B:OFF OWSWITCHB|set @ output A OFF|set @ output A ONwar leider nicht zum Schalten zu überreden, egal wie ich desired_temp / AND OR etc. verändert habe. Bin wieder zum vorherigen Code zurückdefine Thermostat THRESHOLD BueroTemp_KG:temperature |{fhem"set OWSWITCHB output A OFF"}|{fhem"set OWSWITCHB output A ON"}|1das funktioniert.

Ich habe den OR-Fall bei mir noch mal erfolgreich getestet.

Du kannst ja die Definitionen mit "list Thermostat" einsehen und vergleichen.

Dein Notify von oben ist in sofern suboptimal, als dass du ständig (ich schätze alle 2,5 Minuten) "set Thermostat desired value" aufrufst und damit das Modul immer wieder in den Zustand "wait for next cmd" versetzt. Normalerweise macht man das, wenn tatsächlich neuer Wert gesetzt werden soll.

Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 17 März 2013, 18:38:48
Mit dem Notfy hast Du recht. Das ruft die desired_temp aller 300 s auf, jedes Mal wenn das 1-wire Thermometer einen Wert liefert. Ich habe allerdings die Herausforderung - das thermische Ventil nur zu  Heizen ( zum Öffnen ) wenn:
die Vorlauftemperatur hoch genug ist ( damit das Ventil nicht die Wärmequelle ist, sondern der Heizkörper)
die Zeit von. .... bis ist (Bürozeiten)
das Fenster nicht auf ist
die desired_temp höher als die Raumtemperatur ist
Das habe ich vor Deinem Modul alles in einem verschachtelten Notify untergebracht. Klar, hätte ich dafür einfach ein FHT kaufen können, aber der Basteltrieb... Und die Tatsache, dass der WAF in dem Raum keine Rolle spielt.
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: cwagner am 19 März 2013, 11:13:30
Moin, Damian,

die Variante mit on/off-Befehlen für einen Aktor läuft bei inzwischen wirklich zuverlässig und dauerhaft für die Brenner-Steuerung einer Ölheizung sowie die Entfeuchtung der Waschküche.
Bei meinem Projekt Warmwasser-Steuerung wollte ich die zweite Variante, die Befehlszeilen einsetzen, und bastele seit Tagen ohne wirklichen Erfolg. Deshalb hier einmal meine Deifinition und der entsprechende Log-Auszug, an dessen Anfang auch der Beleg ist, dass ich die absolut neueste eingecheckte Fassung von Threshold benutze:

2013.03.19 09:18:26 1: update nothing to do...
2013.03.19 09:24:15 3: output of TH_Stat_Warmwasser {fhem("set WWBedarf on ;set TH_Stat_Heizung desired 75")}: Unknown command {fhem("set, try help
TH_Stat_Heizung: set desired value:75")}, desired value needs a numeric parameter


Internals:
   CFGFN      ./FHEM/heizung.cfg
   DEF        TH_Warmwasser:temperature:5:60 |{fhem("set SW_02_WWPumpe off;set TH_Stat_Heizung desired 50")}|{fhem("set WWBedarf on ;set TH_Stat_Heizung desired 75")}|1
   NAME       TH_Stat_Warmwasser
   NR         255
   NTFY_ORDER 50-TH_Stat_Warmwasser
   STATE      active 60
   TYPE       THRESHOLD
   hysteresis 5
   sensor     TH_Warmwasser
   sensor_reading temperature
   Readings:
     2013-03-19 08:24:08   cmd             wait for next cmd
     2013-03-19 08:24:08   desired_value   60
     2013-03-19 09:24:14   sensor_value    51.6
     2013-03-19 08:24:08   state           active 60
     2013-03-19 08:24:08   threshold_min   55
   Helper:
     actor_cmd1 {fhem("set SW_02_WWPumpe off;set TH_Stat_Heizung desired 50")}
     actor_cmd2 {fhem("set WWBedarf on ;set TH_Stat_Heizung desired 75")}
     actor_cmd_default 1
Attributes:
   loglevel   3
   room       Heizung
   webCmd     deactivated:active

Darf ich um Hilfe bitten, womöglich mache ich als Neuling einen Fehler, den ich aber offenbar aus eigener Kraft nicht erkennen kann.
Die Absicht ist, bei Warmwasser-Bedarf einen Dummy einzuschalten, über den ich ein Notify steuere, dass die Ladepumpe für Warmwasser erst dann zuschaltet, wenn die Heizung einen ausreichend hohen Vorlauf erzeugt hat. Dieser Dummy kennt die beiden Status on und off. Wenn ich ihn alleine in die CMD-Ausdrücke einstelle, funktioniert er, wie auch das Ausschalten der Pumpe.
Zum Erwärmen des Warmwassers brauche ich einen höheren Vorlauf, deshalb soll die Wunschtemperatur des Brenner-Thermostats entsprechend rauf und später wieder runtergesetzt werden.
Wenn ich die Ausdrücke für cmd1 oder cmd2 ohne fhem, die Klammern und die Anführungszeichen kopiere und in der Konsole aufrufe, dann funktoniert alles, wie gewünscht.

Herzliche Grüße Chritian
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 19 März 2013, 15:51:26
Hallo Christian,

du hast keinen Fehler gemacht. Ich konnte das Problem bei mir nachstellen, das hat offenbar mit dem Ausmaskieren von Semikolons zu tun. Morgen gibt´s ein Update dazu.

Heute kannst du in der Definition deines THRESHOLD-Moduls (nicht in der Kommandozeile, sondern auf DEF klicken) die Semikolons verdoppeln, dann sollte es auch heute schon klappen.

Es sollte in der Definition dann so aussehen:

DEF TH_Warmwasser:temperature:5:60 |{fhem("set SW_02_WWPumpe off;;set TH_Stat_Heizung desired 50")}|{fhem("set WWBedarf on;;set TH_Stat_Heizung desired 75")}|1

Ab morgen wird es dann nicht mehr nötig sein.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: det. am 19 März 2013, 17:13:06
Hallo Damian,
Dann sollte ich am Wochenende auch noch mal versuchen, die Mail mit Parameterübergabe bei Überschreitung der Kühlschrank Temperatur hinzubekommen. Das scheiterte offenbar am selben Sachverhalt (Variablendefinition und Mailbefehl in einer Fhem Zeile). Kannst Du Dich bitte noch mal mit meinem launigen Post vom Sonntag beschäftigen? Lösung wäre, neben dem ON/Off und Temperatur Sensor einen weiteren Temperatur Sensor abzufragen.
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 19 März 2013, 17:49:43
Zitat von: det. schrieb am Di, 19 März 2013 17:13Hallo Damian,
Dann sollte ich am Wochenende auch noch mal versuchen, die Mail mit Parameterübergabe bei Überschreitung der Kühlschrank Temperatur hinzubekommen. Das scheiterte offenbar am selben Sachverhalt (Variablendefinition und Mailbefehl in einer Fhem Zeile). Kannst Du Dich bitte noch mal mit meinem launigen Post vom Sonntag beschäftigen? Lösung wäre, neben dem ON/Off und Temperatur Sensor einen weiteren Temperatur Sensor abzufragen.

Das Problem ist: morgen will einer drei Temperaturen abfragen und dann am besten noch mit UND,ODER und NICHT verknüpfen;)

Eine funktionierende Lösung, die modular aufgebaut ist, könnte ich dir bereits jetzt mit der aktuellen Version für dein Problem präsentieren und die funktioniert auch mit beliebig vielen (Temperatur-)Sensoren;)

Dafür brauchst du auch keinen einzigen Notify, höchstens vielleicht, um über deinen Slider set Thermostat desired $temp zu setzen.

Zuerst aber sollten wir herausfinden warum die Sache mit:

define Thermostat THRESHOLD BueroTemp_KG:temperature OR OWSWITCHB:B:OFF OWSWITCHB|set @ output A OFF|set @ output A ON

nicht funktioniert. Dafür bräuchte ich Auszüge, wie von Christian, mit list Thermostat und  list OWSWITCHB im Zustand OFF.

Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: cwagner am 19 März 2013, 20:30:06
Hi Damian,
gerade hat es tatsächlich das erste Mal "gefunkt", der Thermostat Warmwasser hat den Thermostat Brenner verändert, es waren, wie Du festgestellt hast, die zu maskierenden Semikonlons.
Nun kann ich weitermachen im Projekt...

Vielen Dank für die tolle Arbeit und die schnelle Unterstützung.

Christian
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 19 März 2013, 21:18:25
Zitat von: cwagner schrieb am Di, 19 März 2013 20:30Hi Damian,
gerade hat es tatsächlich das erste Mal "gefunkt", der Thermostat Warmwasser hat den Thermostat Brenner verändert, es waren, wie Du festgestellt hast, die zu maskierenden Semikonlons.
Nun kann ich weitermachen im Projekt...

Vielen Dank für die tolle Arbeit und die schnelle Unterstützung.

Christian

nur mal zur Info:

DEF TH_Warmwasser:temperature:5:60 |set SW_02_WWPumpe off;set TH_Stat_Heizung desired 50|set WWBedarf on;set TH_Stat_Heizung desired 75|1

hätte direkt funktioniert (mit einem Simikolon). Wenn du nur FHEM-Befehle benutzt, brauchst du nicht unnötig über {fhem("... zu gehen.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: det. am 19 März 2013, 22:08:10
Hallo Damian,
danke für die schnelle Rückmeldung und die Hoffnung, die Herausforderung am Ende mit Hilfe Deines Moduls doch noch elegant zu lösen.
Bin jetzt erst mal bis Freitag auf Dienstreise - die List Auszüge kommen dann asap.
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 19 März 2013, 22:34:40
Zitat von: det. schrieb am Di, 19 März 2013 22:08Hallo Damian,
danke für die schnelle Rückmeldung und die Hoffnung, die Herausforderung am Ende mit Hilfe Deines Moduls doch noch elegant zu lösen.
Bin jetzt erst mal bis Freitag auf Dienstreise - die List Auszüge kommen dann asap.

Bin selber ab nächste Woche in Urlaub für zwei Wochen - hoffentlich mit Internetzugang.

Deinen Fall habe ich spaßeshalber bei mir nachgestellt unter den Bedingungen: Zeitgesteuert, Vorlauftemperatur, Fenster, Zimmertemperatur.

Ich werde versuchen noch vor dem Urlaub einen Wiki-Beitrag zu erstellen unter dem Titel:

Heizungssteuerung ohne Notifys

Hier als Vorgeschmack konkret für deinen Fall:


(siehe Anhang / see attachement)


... und es funktioniert ohne einen einzigen Notify mit Spagetti-Code;)

Das Schöne an der Sache ist, es lässt sich um beliebig viele Fensterkontakte und beliebig viele Temperatursensoren einfach erweitern - ohne eine einzige if-Abfrage schreiben zu müssen.

Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 20 März 2013, 19:52:59
Morgen gibt es ein weiteres Update.

Man kann jetzt Zustandsanzeige für cmd1 und cmd2 definieren. Den Status kann man dann in anderen Modulen abfragen.

Das obige Beispiel lässt sich dann auch ohne Dummy realisieren.

Alles Weitere steht in der Doku.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: det. am 24 März 2013, 12:03:22
Hallo Damian,

schönen Urlaub erst mal für die nächsten 2 Wochen! define Thermostat THRESHOLD BueroTemp_KG:temperature OR OWSWITCHB:B:OFF OWSWITCHB|set @ output A OFF|set @ output A ONfunktioniert jetzt prima, list Thermostat gibt aus:Internals:
   DEF        BueroTemp_KG:temperature OR OWSWITCHB:B:OFF OWSWITCHB|set @ output A OFF|set @ output A ON
   NAME       Thermostat
   NR         102
   NTFY_ORDER 50-Thermostat
   STATE      active 24
   TYPE       THRESHOLD
   hysteresis 1
   operator   OR
   sensor     BueroTemp_KG
   sensor2    OWSWITCHB
   sensor2_reading B
   sensor2_state OFF
   sensor_reading temperature
   Readings:
     2013-03-24 11:19:57   cmd             cmd2
     2013-03-24 11:19:34   desired_value   24
     2013-03-24 11:59:11   sensor2_state   ON☇
     2013-03-24 11:59:11   sensor_value    22.1875
     2013-03-24 11:19:34   state           active 24
     2013-03-24 11:19:34   threshold_min   23
   Helper:
     actor_cmd1 set OWSWITCHB output A OFF
     actor_cmd2 set OWSWITCHB output A ON
     actor_cmd_default 0
     state_cmd1
     state_cmd2
Attributes:
   group      Heizung
   room       Buero
Für die Einbindung von Zeit und Volauftemperatur warte ich geduldig auf Deinen WIKI Beitrag - das ist nicht eilig, warm wird es auch so.
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 24 März 2013, 14:11:52
Zitat von: det. schrieb am So, 24 März 2013 12:03Für die Einbindung von Zeit und Volauftemperatur warte ich geduldig auf Deinen WIKI Beitrag - das ist nicht eilig, warm wird es auch so.

Den Wiki-Beitrag werde ich erst später verfassen - soll natürlich allgemeingültig sein und verschiedene Szenarien der Steuerung beinhalten.

Dank dem Internetzugang und dem Regenwetter hier in Südfrankreich, kann ich dir aber schon mal die paar Zeilen für deinen Fall hier posten - bevor das eisige Wetter in Deutschland vorbei ist und die Testumgebung nicht mehr gegeben ist;)

Definition des Zustands deiner Heizung (bei über 39 Grad Zustand ON, sonst OFF)

define TH_Heizung OWX_HZ_RUECK:temperature:0:39 ||||ON:OFF


Definition einer Struktur Heizen, die den Zustand deiner Heizung und deines Fensterkontaktes zusammenfasst (Voraussetzung ist, dass OWSWITCHB den Zustand des Kontaktes(ON/OFF) im state liefert, wenn nicht, wirst du wohl über einen dummy gehen müssen, weil structure meines Wissens nach nur den Status auswertet)

define Heizen structure TH_Heizung OWSWITCHB
attr Heizen clientstate_behavior relative
attr Heizen clientstate_priority OFF ON


Definition des Zimmerthermostats TH_Zimmer in Abhängigkeit der Zimmertemperatur, der Rücklauftemperatur und des Fensterkontaktes:

define TH_Zimmer THRESHOLD BueroTemp_KG OR Heizen:state:OFF OWSWITCHB|set @ output A OFF|set @ output A ON


Definition der Heizzeiten:

define HC_Zimmer Heating_Control TH_Zimmer 07:00|21 22:00|17


die Wunschtemperatur wird dann über

set TH_Zimmer desired temp

gesetzt.

Und nun viel Erfolg beim Ausprobieren.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 24 März 2013, 14:17:59
gerade Fehler entdeckt:

define TH_Heizung OWX_HZ_RUECK:temperature:0:39 ||||ON:OFF

muss natürlich heißen:


define TH_Heizung THRESHOLD OWX_HZ_RUECK:temperature:0:39 ||||ON:OFF
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 24 März 2013, 14:33:00
und noch einen Fehler entdeckt:

define HC_Zimmer Heating_Control TH_Zimmer 07:00|21 22:00|17

muss lauten:

define HC_Zimmer Heating_Control TH_Zimmer 07:00|21 22:00|17 set @ desired %
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: det. am 24 März 2013, 18:27:07
Hallo Damian,
vielen Dank! Schade mit dem Urlaubswetter, hier sind dafür schon wieder -3°C... Habe Deinen Code gleich probiert, auch wenn mir das zum Verstehen etwas komplex ist...ich arbeite dran...
Heizen geht, Fenster auf wird nicht erkannt, Zustand für "Fenster AUF" ist OWSWITCHB:B:OFF, Heizen steht auf undefined ? - da tut sich irgendwie nichts. Ich hänge die Programmzeilen mal dran:define Buero_desired_temp dummy
attr Buero_desired_temp alias Solltemperatur
attr Buero_desired_temp setList state:slider,16,1,25
attr Buero_desired_temp stateFormat state  °C

define Heizen structure TH_Heizung OWSWITCHB:B:
attr Heizen clientstate_behavior relative
attr Heizen clientstate_priority OFF ON

define TH_Heizung THRESHOLD OWX_HZ_VOR:temperature:0:45 ||||ON:OFF

define TH_Zimmer THRESHOLD BueroTemp_KG OR Heizen:state:OFF OWSWITCHB|set @ output A OFF|set @ output A ON

define HC_Zimmer Heating_Control TH_Zimmer 07:00|21 22:00|17 set @ desired %

define Dummy_notify notify Buero_desired_temp:.* {\
 my $a=ReadingsVal ("Buero_desired_temp", "state","6");;\
 {fhem "set TH_Zimmer desired $a";;}\
}
Das Einstellen der Solltemperatur mit dem Slider geht auch.
Titel: Aw: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 24 März 2013, 21:27:00
[quote title=det. schrieb am So, 24 März 2013 18:27]

define Heizen structure TH_Heizung OWSWITCHB:B

da sind noch Fehler drin:

hinter structure muss erstmal noch ein TYP definiert werden (den hatte ich vergessen anzugeben)

define Heizen structure dummy_typ TH_Heizung OWSWITCHB

Das Problem wird noch OWSWITCHB:B sein, die Syntax wird von structure nicht erkannt werden.

Du müsstest über Status von OWSWITCHB und nicht über Readings von OWSWITCHB gehen, denn structure funktioniert offenbar nur mit Stati. Was wird denn bei OWSWITCHB im Status angezeigt?

Gruß

Damian

Titel: gelöst: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: det. am 25 März 2013, 08:46:15
Hallo Damian,
jetzt geht es:define Buero_desired_temp dummy
attr Buero_desired_temp setList state:slider,16,1,25
attr Buero_desired_temp stateFormat state  °C
attr Buero_desired_temp webCmd state

define TH_Heizung THRESHOLD OWX_HZ_VOR:temperature:0:45 ||||ON:OFF
attr TH_Heizung dummy_type Heizen
attr TH_Heizung dummy_type_map B: ON B: OFF

define Heizen structure dummy_type TH_Heizung OWSWITCHB
attr Heizen clientstate_behavior relative
attr Heizen clientstate_priority ON OFF
attr Heizen dummy_type_map B: ON B: OFF

define TH_Zimmer THRESHOLD BueroTemp_KG OR Heizen:state:OFF OWSWITCHB|set @ output A OFF|set @ output A ON
define HC_Zimmer Heating_Control TH_Zimmer 07:00|20 22:00|17 set @ desired %

define Dummy_notify notify Buero_desired_temp:.* {\
 my $a=ReadingsVal ("Buero_desired_temp", "state","6");;\
 {fhem "set TH_Zimmer desired $a";;}\
}
Vielen Dank! Das Einzige was komisch ist, aber nicht funktionsrelevant - wenn OWSWITCHB B: ON, also Fenster ist zu - ist der state von Heizen undefined. Ist das Fenster auf, geht Heizen auf OFF.
Titel: Aw: gelöst: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 26 März 2013, 17:53:53
Zitat von: det. schrieb am Mo, 25 März 2013 08:46Vielen Dank! Das Einzige was komisch ist, aber nicht funktionsrelevant - wenn OWSWITCHB B: ON, also Fenster ist zu - ist der state von Heizen undefined. Ist das Fenster auf, geht Heizen auf OFF.

Ich habe mir jetzt nochmal die Sache mit typ_map angeschaut. Meiner Meinung nach ist dein Mapping nicht richtig. Lt. Doku von structure gibt es zum Mappen von Readings drei Angaben Readingname:Readinginhalt:Status. Du hast aber nur zwei Angaben B: ON. Auch die Reihenfolge in Client_state_priority ist nicht unbedeutend.

Das Mapping macht nur Sinn bei deinem OWSWITCHB-Device und nicht bei TH_HEIZEN bzw. HEIZEN.

Es müsste eigentlich heißen:

attr OWSWITCHB dummy_type_map B:ON:ON B:OFF:OFF

und

attr Heizen dummy_type_map B: ON B: OFF
attr TH_Heizung dummy_type_map B: ON B: OFF


würde ich löschen, weil dort nichts zu mappen ist.

und

attr Heizen clientstate_priority ON OFF

müsste lauten:


attr Heizen clientstate_priority OFF ON


denn HEIZEN sollte auf OFF gehen, sobald TH_HEIZUNG oder OWSWITCHB auf OFF geht, und HEIZEN soll ON sein, wenn TH_HEIZUNG und OWSWITCHB ON ist und nicht anders herum.

Gruß

Damian



Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 26 März 2013, 20:08:52
Das Modul liest sich sehr gut.

Ich möchte gern damit eine Infrarotheizung steuern. Diese hängt an einer FS20ST oder am äquivalenten Unterputzschalter.
Die Solltemperatur soll über den FHT80B Raumthermostat gesetzt wie auch gemessen werden.

Kann das Modul diese Aufgabe übernehmen?

Gruß
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 26 März 2013, 20:26:18
Zitat von: rokno schrieb am Di, 26 März 2013 20:08Das Modul liest sich sehr gut.

Ich möchte gern damit eine Infrarotheizung steuern. Diese hängt an einer FS20ST oder am äquivalenten Unterputzschalter.
Die Solltemperatur soll über den FHT80B Raumthermostat gesetzt wie auch gemessen werden.

Kann das Modul diese Aufgabe übernehmen?

Gruß



Sollte kein Problem sein. Ich habe keinen FHT80B, daher kenne ich nicht die Readings. Ich nehme an, dass aber dort die Solltemperatur und die tatsächliche Temperatur ausgelesen werden kann. Im Prinzip brauchst du eine Zeile für die Definition deines THRESHOLD-Moduls zum Steuern deiner FS20ST-Heizung und ein Notify zum Auslesen der Solltemperatur, um sie mit set TH_Modul desired temp zu setzen.
Poste hier mit list <dein_FHT80B> den Auszug vom FHT80B mit gesetzter Solltemperatur, dann kann ich dir einen Vorschlag zur Umsetzung machen.

Gruß

Damian











Titel: Aw: gelöst: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: det. am 26 März 2013, 20:34:02
Hallo Damian,
WOW - genau so - es funktioniert jetzt alles! Vielen Dank!

(siehe Anhang / see attachement)

Ich poste noch mal den kompletten Code, falls jemand so was ähnliches nachempfinden möchte (bitte entschuldigt die Länge)define OWSWITCHB OWSWITCH DS2406 4EF17B000000 300
attr OWSWITCHB alias Heizungsschalter
attr OWSWITCHB dummy_type Heizen
attr OWSWITCHB dummy_type_map B: ON: ON B: OFF: OFF
attr OWSWITCHB model DS2406
attr OWSWITCHB stateFormat Ventil: A | Fenster: B

define Buero_desired_temp dummy
attr Buero_desired_temp alias Raum-Soll-Temperatur
attr Buero_desired_temp setList state:slider,16,1,25
attr Buero_desired_temp stateFormat state  °C
attr Buero_desired_temp webCmd state

define TH_Heizung THRESHOLD OWX_HZ_VOR:temperature:0:45 ||||ON:OFF
attr TH_Heizung dummy_type Heizen

define Heizen structure dummy_type TH_Heizung OWSWITCHB
attr Heizen clientstate_behavior relative
attr Heizen clientstate_priority OFF ON

define TH_Zimmer THRESHOLD BueroTemp_KG OR Heizen:state:OFF OWSWITCHB|set @ output A OFF|set @ output A ON
attr TH_Zimmer alias Thermostat

define HC_Zimmer Heating_Control TH_Zimmer 07:00|20 22:00|17 set @ desired %
attr HC_Zimmer alias Programm-Temperatur
attr HC_Zimmer stateFormat state °C

define Dummy_notify notify Buero_desired_temp:.* {\
 my $a=ReadingsVal ("Buero_desired_temp", "state","6");;\
 {fhem "set TH_Zimmer desired $a";;}\
}
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 26 März 2013, 22:27:22
Hallo Damian,

hier die Ausgabe von list:

Internals:
   CODE       3233
   CUL_MSGCNT 107896
   CUL_RAWMSG T323300A600FA
   CUL_RSSI   -77
   CUL_TIME   2013-03-26 22:17:49
   DEF        3233
   IODev      CUL
   LASTIODev  CUL
   MSGCNT     107896
   NAME       Heizung_Bad
   NR         46
   STATE      measured-temp: 18
   TYPE       FHT
   Readings:
     2013-03-26 22:17:49   actuator        0%
     2012-10-04 20:54:54   actuator1       pair
     2013-03-26 22:10:05   battery         ok
     2012-10-07 23:54:12   day-temp        25.0
     2013-03-26 06:30:26   desired-temp    17.0
     2012-10-30 00:02:38   fri-from1       04:30
     2012-10-30 00:02:38   fri-from2       24:00
     2012-10-30 00:02:38   fri-to1         06:30
     2012-10-30 00:02:39   fri-to2         24:00
     2013-03-26 22:10:05   lowtemp         ok
     2012-10-07 23:30:48   lowtemp-offset  4.0
     2013-03-26 22:10:04   measured-temp   18
     2012-10-11 19:11:34   mode            auto
     2012-10-29 23:39:20   mon-from1       04:30
     2012-10-29 23:39:21   mon-from2       24:00
     2012-10-29 23:39:20   mon-to1         06:30
     2012-10-29 23:39:21   mon-to2         24:00
     2012-10-07 23:54:12   night-temp      17.0
     2012-10-07 23:36:34   report1         255
     2012-10-07 23:28:48   report2         255
     2012-10-13 22:11:39   sat-from1       05:30
     2012-10-13 22:11:40   sat-from2       24:00
     2012-10-13 22:11:40   sat-to1         06:30
     2012-10-13 22:11:40   sat-to2         24:00
     2012-10-13 22:11:41   sun-from1       05:30
     2012-10-13 22:11:41   sun-from2       24:00
     2012-10-13 22:11:41   sun-to1         06:30
     2012-10-13 22:11:42   sun-to2         24:00
     2013-03-26 22:10:04   temperature     18
     2012-12-13 18:52:01   thu-from1       04:30
     2012-12-13 18:52:02   thu-from2       24:00
     2012-12-13 18:52:02   thu-to1         06:30
     2012-12-13 18:52:02   thu-to2         24:00
     2012-12-25 17:08:14   tue-from1       04:30
     2012-12-25 17:08:14   tue-from2       24:00
     2012-12-25 17:08:14   tue-to1         06:30
     2012-12-25 17:08:14   tue-to2         24:00
     2013-03-26 22:10:05   warnings        none
     2012-10-29 23:39:23   wed-from1       04:30
     2012-10-29 23:39:23   wed-from2       24:00
     2012-10-29 23:39:23   wed-to1         06:30
     2012-10-29 23:39:24   wed-to2         24:00
     2013-03-26 22:10:05   window          closed
     2012-10-07 23:54:12   windowopen-temp 12.0
     2013-03-26 22:10:05   windowsensor    ok
   Fhem:
     measuredHigh 0
     measuredLow 180
   Helper:
Attributes:
   fm_view    1,0
   model      fht80b
   retrycount 3
   room       Bad


Gruß
Rik


Zitat von: Damian schrieb am Di, 26 März 2013 20:26
Zitat von: rokno schrieb am Di, 26 März 2013 20:08Das Modul liest sich sehr gut.

Ich möchte gern damit eine Infrarotheizung steuern. Diese hängt an einer FS20ST oder am äquivalenten Unterputzschalter.
Die Solltemperatur soll über den FHT80B Raumthermostat gesetzt wie auch gemessen werden.

Kann das Modul diese Aufgabe übernehmen?

Gruß



Sollte kein Problem sein. Ich habe keinen FHT80B, daher kenne ich nicht die Readings. Ich nehme an, dass aber dort die Solltemperatur und die tatsächliche Temperatur ausgelesen werden kann. Im Prinzip brauchst du eine Zeile für die Definition deines THRESHOLD-Moduls zum Steuern deiner FS20ST-Heizung und ein Notify zum Auslesen der Solltemperatur, um sie mit set TH_Modul desired temp zu setzen.
Poste hier mit list <dein_FHT80B> den Auszug vom FHT80B mit gesetzter Solltemperatur, dann kann ich dir einen Vorschlag zur Umsetzung machen.

Gruß

Damian











Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 27 März 2013, 16:48:15
Hallo Rik,

Definition eines THRESHOLD-Devices in Abhängigkeit von der Temperatur:

define TH_Bad THRESHOLD Heizung_Bad <dein FS20ST-Device>

und dann noch das Setzen der Wunschtemperatur:

define desired_notify notify Heizung_Bad:.* {my $desired_tmp=ReadingsVal ("Heizung_Bad", "desired-tmp","17");{fhem "set TH_Bad desired $desired_tmp"}
}


Das war es schon.

Eleganter wäre natürlich sich die letzte desired-tmp vom FHT80B in einer Variablen zu merken und nur bei Änderung "set TH_Bad desired $desired_tmp" aufzurufen.

So ist der Notify aber einfacher. Ich werde zukünftig im THRESHOLD-Modul noch einbauen, dass das Setzen der gleichen desired-temp zu keiner Zustandsänderung im Modul führt.

Gruß

Damian



Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 28 März 2013, 18:29:25
Hallo Damian,

vielen Dank dafür!

Werde voraussichtlich mein COC für's RPI am Samstag erhalten.
HomeMatic Unterputzschalter ist heute gekommen. Werde mich nochmals mit dem Ergebnis melden :-)

Gruß
Rik
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Groby am 29 März 2013, 10:27:36
@Andreas,

...
"also wird das nichts mit meiner Ventilator ansteuerung :("
...

Du kannst State über das attr stateFormat modifizieren.

Mfg Groby
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 29 März 2013, 10:40:04
Zitat von: Groby schrieb am Fr, 29 März 2013 10:27@Andreas,

...
"also wird das nichts mit meiner Ventilator ansteuerung :("
...

Du kannst State über das attr stateFormat modifizieren.

Mfg Groby

Ist nicht mehr nötig.

Das Filtern nach Zahlen ist schon seit der eingecheckten Version drin.

Gruß

Damian
Titel: Aw: gelöst: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: det. am 29 März 2013, 14:25:27
Hallo Damian,
hab da noch eine Herausforderung - ohne Änderung des obigen Codes kommt jetzt periodisch diese Meldung:2013.03.29 07:05:43 1: ERROR: endless loop detected in structure_Notify Heizen
2013.03.29 07:15:44 1: ERROR: endless loop detected in structure_Notify Heizen
fällt Dir dazu eine Lösung ein? Danke,
Titel: Aw: gelöst: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: Damian am 29 März 2013, 16:41:08
Zitat von: det. schrieb am Fr, 29 März 2013 14:25Hallo Damian,
hab da noch eine Herausforderung - ohne Änderung des obigen Codes kommt jetzt periodisch diese Meldung:2013.03.29 07:05:43 1: ERROR: endless loop detected in structure_Notify Heizen
2013.03.29 07:15:44 1: ERROR: endless loop detected in structure_Notify Heizen
fällt Dir dazu eine Lösung ein? Danke,

Ist bei mir noch nicht aufgetreten.

Vielleicht liegt es am Mapping:

attr OWSWITCHB dummy_type_map B: ON: ON B: OFF: OFF

Warum hast du die Leerzeichen eingebaut? Die Leerzeichen grenzen eigentlich mehrere Definitionen von einander ab. Du hast nur zwei und nicht sechs.

Mein Vorschlag war viel mehr:

attr OWSWITCHB dummy_type_map B:ON:ON B:OFF:OFF

Probier die Änderung mal aus.

Gruß

Damian

Titel: Aw: gelöst: Neues Modul - THRESHOLD - Befehlsketten
Beitrag von: det. am 29 März 2013, 20:46:16
Danke, geht auch ohne die Leerzeichen und die Fehlermeldung ist bisher nicht mehr aufgetreten. Die Leerzeichen hab ich reingemogelt weil der state mit Leerzeichen ist und die da auch gebraucht werden: state A: OFF B: ON< um den Switch zu schalten.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 02 April 2013, 11:27:57
[quote title=Damian schrieb am Fr, 29 März 2013 10:40]
Zitat von: Groby schrieb am Fr, 29 März 2013 10:27@Andreas,

...
"also wird das nichts mit meiner Ventilator ansteuerung :("
...

... und es geht doch, auch, wenn etwas unkonventionell.

Das Hacken auf Andreas Rechner kann man hier nachvollziehen;)

Link

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 11 April 2013, 23:27:38
Hallo Damian,

folgendes erhalte ich beim Speichern der config:

ERROR:
Global symbol "$desired_tmp" requires explicit package name at (eval 2737) line 1, <$fh> line 328. Unknown command }, try help




Zitat von: Damian schrieb am Mi, 27 März 2013 16:48Hallo Rik,

Definition eines THRESHOLD-Devices in Abhängigkeit von der Temperatur:

define TH_Bad THRESHOLD Heizung_Bad <dein FS20ST-Device>

und dann noch das Setzen der Wunschtemperatur:

define desired_notify notify Heizung_Bad:.* {my $desired_tmp=ReadingsVal ("Heizung_Bad", "desired-tmp","17");{fhem "set TH_Bad desired $desired_tmp"}
}


Das war es schon.

Eleganter wäre natürlich sich die letzte desired-tmp vom FHT80B in einer Variablen zu merken und nur bei Änderung "set TH_Bad desired $desired_tmp" aufzurufen.

So ist der Notify aber einfacher. Ich werde zukünftig im THRESHOLD-Modul noch einbauen, dass das Setzen der gleichen desired-temp zu keiner Zustandsänderung im Modul führt.

Gruß

Damian



Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 12 April 2013, 16:21:20
Zitat von: rokno schrieb am Do, 11 April 2013 23:27Hallo Damian,

folgendes erhalte ich beim Speichern der config:

ERROR:
Global symbol "$desired_tmp" requires explicit package name at (eval 2737) line 1, <$fh> line 328. Unknown command }, try help

Damit ein Semikolon übrig bleibt, musst du in der Definition zwei angeben:

define desired_notify notify Heizung_Bad:.* {my $desired_tmp=ReadingsVal ("Heizung_Bad", "desired-tmp","17");;{fhem "set TH_Bad desired $desired_tmp"}}

Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 12 April 2013, 21:12:56
Danke Damian....

Gerne möchte ich mit dem FHT80B-3 die Temperatur in dem Raum messen.
Diese wird mit der Variable "measured-temp" an fhem geliefert.

Am FHT80B-3 hat man genauso die Möglichkeit über ein Stellrad die Soll-temperatur für den Raum vorzugeben. Diese wird dann durch "desired-temp" abgebildet.

Kannst Du mir bitte nochmals in der Richtung weiterhelfen, also am Stellrad die Solltemperatur vorgeben und das THRESHOLD Module regelt anhand der gemessene Temperatur.

Gruß
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 12 April 2013, 23:00:55
Zitat von: rokno schrieb am Fr, 12 April 2013 21:12Danke Damian....

Gerne möchte ich mit dem FHT80B-3 die Temperatur in dem Raum messen.
Diese wird mit der Variable "measured-temp" an fhem geliefert.

Am FHT80B-3 hat man genauso die Möglichkeit über ein Stellrad die Soll-temperatur für den Raum vorzugeben. Diese wird dann durch "desired-temp" abgebildet.

Kannst Du mir bitte nochmals in der Richtung weiterhelfen, also am Stellrad die Solltemperatur vorgeben und das THRESHOLD Module regelt anhand der gemessene Temperatur.

Gruß

Wo ist der Unterschied zu FHT80B? Funktioniert es denn mit dem FHT80B mit den beiden Definitionen, die ich vorgeschlagen habe? Bei dem FHT80B war die aktuelle Temperatur lt. deinem Reading-Output unter measured-temp sowie temperature angegeben.

Wenn du measured-temp abfragen willst, dann musst du das einfach angeben:

define TH_Bad THRESHOLD Heizung_Bad:measured-temp:1 <dein FS20ST-Device>

Die Eins steht dann für die Hysterese von einem Grad.

Das Setzen der desired-temp ist dann der notify, wie vorgeschlagen.

Wie schon gesagt, ich werde noch im THRESHOLD-Modul einbauen, dass beim zyklischen Setzen der desired-temp, wie in dem notify, nicht jedes mal ein Befehl an den Schalter gesendet wird, wenn sich die desired-temp nicht ändert.


Gruß

Damian






Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 12 April 2013, 23:31:41
Stimmt, temperature und measured-temp sind gleich.

Hab den Vorschlag mit measured-temp übernommen.


Kann es sein, dass in deinem Beispielcode an der Stelle -tmp ein "e" fehlt?                          
("Heizung_Bad", "desired-tmp","17")

Hab das fehlende e mal ergänzt --> der Schalter schaltet!!
Allerdings erhalte ich nun folgende Meldungen im Log.
************
2013.04.12 23:28:23 2: CUL_HM set HM_Schalter1 on rxt:1
2013.04.12 23:28:23 3: set TH_Bad desired 26.5
2013.04.12 23:28:23 2: COC: unknown message 80021CA9ADF112340101C8003E0F
2013.04.12 23:28:25 2: COC: unknown message 80021CA9ADF112340101C8003F10
2013.04.12 23:28:30 2: COC: unknown message 80021CA9ADF112340101C8003E0F
2013.04.12 23:30:19 2: CUL_HM set HM_Schalter1 on rxt:1
2013.04.12 23:30:19 3: set TH_Bad desired 26.5
2013.04.12 23:30:20 3: COC: Unknown code SM86880021CA9ADF112340101C8003E11, help me!
2013.04.12 23:30:20 2: CUL_HM set HM_Schalter1 on rxt:1
2013.04.12 23:30:21 3: set TH_Bad desired 20.0
2013.04.12 23:30:24 2: COC: unknown message m C F80021CA9ADF112340101C8003E11
2013.04.12 23:30:24 2: COC: unknown message  x
2013.04.12 23:32:16 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:32:16 3: set TH_Bad desired 20.0
2013.04.12 23:32:16 2: COC: unknown message 180021CA9ADF11234010100003E27
2013.04.12 23:32:18 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:32:18 3: set TH_Bad desired 20.5
2013.04.12 23:32:18 2: COC: unknown message known80021CA9ADF11234010100003327
2013.04.12 23:32:19 2: COC: unknown message  T V 80021CA9ADF11234010100003327
*************

Gruß

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 12 April 2013, 23:44:01
Zitat von: rokno schrieb am Fr, 12 April 2013 23:31Stimmt, temperature und measured-temp sind gleich.

Hab den Vorschlag mit measured-temp übernommen.


Kann es sein, dass in deinem Beispielcode an der Stelle -tmp ein "e" fehlt?                          
("Heizung_Bad", "desired-tmp","17")



Gruß

Ja.

Ich habe gerade das THRESHOLD-Modul angepasst und teste gerade. Wenn alles gut geht, gibt´s morgen ein update.

Mit der jetzigen Version wird der notify viele Log-Einträge produzieren mit set TH_Heizung_Bad desired Wert. Und es werden unnötige set off bzw. on Befehle an deinen Schalter gesendet.

Aber teste erst mal mit dem aktuellen THRESHOLD-Modul, ob es überhaupt klappt.
 
Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 12 April 2013, 23:52:58
Das sieht seht gut aus bis jetzt! Der Homematic Schalter schaltet zuverlässig.

Allerdings erhalte ich folgende Einträge im Log:

2013.04.12 23:34:12 3: set TH_Bad desired 20.5
2013.04.12 23:34:13 2: COC: unknown message 0021C80021CA9ADF11234010100003327
2013.04.12 23:34:15 2: COC: unknown message 4ED7680021CA9ADF11234010100003327
2013.04.12 23:34:20 2: COC: unknown message 8002180021CA9ADF11234010100003327
2013.04.12 23:36:09 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:36:09 3: set TH_Bad desired 20.5
2013.04.12 23:36:09 2: COC: unknown message 0101C80021CA9ADF11234010100003327
2013.04.12 23:36:11 2: COC: unknown message 03B7480021CA9ADF11234010100003327
2013.04.12 23:36:14 2: COC: unknown message 021CA80021CA9ADF11234010100003327
2013.04.12 23:38:05 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:38:05 3: set TH_Bad desired 20.5
2013.04.12 23:38:06 3: COC: Unknown code ED76880021CA9ADF112340101000033, help me!
2013.04.12 23:38:06 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:38:07 3: set TH_Bad desired 19.0
2013.04.12 23:38:07 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:38:07 3: set TH_Bad desired 19.0
2013.04.12 23:38:07 3: set TH_Bad desired 19.0
2013.04.12 23:38:08 2: COC: unknown message 9E5B080021CA9ADF11234010100003326
2013.04.12 23:38:13 2: COC: unknown message 05D9080021CA9ADF11234010100003328
2013.04.12 23:40:02 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:40:02 3: set TH_Bad desired 19.0
2013.04.12 23:40:04 2: COC: unknown message DF11280021CA9ADF11234010100003326
2013.04.12 23:40:06 2: COC: unknown message 88D0680021CA9ADF11234010100003326
2013.04.12 23:41:58 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:41:59 3: set TH_Bad desired 19.0
2013.04.12 23:42:01 2: COC: unknown message 722A580021CA9ADF11234010100003326
2013.04.12 23:42:06 2: COC: unknown message 8002180021CA9ADF11234010100003326
2013.04.12 23:43:55 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:43:55 3: set TH_Bad desired 19.0
2013.04.12 23:43:55 2: COC: unknown message 0101C80021CA9ADF11234010100003326
2013.04.12 23:43:57 2: COC: unknown message 03B7480021CA9ADF11234010100003327
2013.04.12 23:43:59 2: COC: unknown message 8003E80021CA9ADF11234010100003426
2013.04.12 23:45:51 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:45:51 3: set TH_Bad desired 19.0
2013.04.12 23:45:52 2: COC: unknown message 8003E80021CA9ADF11234010100003326
2013.04.12 23:45:54 2: COC: unknown message 8003D80021CA9ADF11234010100003326
2013.04.12 23:45:55 2: COC: unknown message 8003D80021CA9ADF11234010100003326
2013.04.12 23:47:48 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:47:48 3: set TH_Bad desired 19.0
2013.04.12 23:47:48 2: COC: unknown message 8003D80021CA9ADF11234010100003327
2013.04.12 23:47:50 2: COC: unknown message 8003E80021CA9ADF11234010100003327
2013.04.12 23:47:55 2: COC: unknown message 8003F80021CA9ADF11234010100003327
2013.04.12 23:49:44 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.12 23:49:44 3: set TH_Bad desired 19.0
2013.04.12 23:49:45 2: COC: unknown message 8003E80021CA9ADF11234010100003327
2013.04.12 23:49:47 2: COC: unknown message 8003E80021CA9ADF11234010100003326
2013.04.12 23:49:50 2: COC: unknown message 8003E80021CA9ADF11234010100003425


Gruß
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 13 April 2013, 00:02:28
Kommen die Meldungen auch, wenn du manuell set HM_Schalter1 off aufrufst?
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 13 April 2013, 00:07:11
Zitat von: Damian schrieb am Sa, 13 April 2013 00:02Kommen die Meldungen auch, wenn du manuell set HM_Schalter1 off aufrufst?

Es sieht schwer danach aus.... on wurde von mir manuell gesetzt.

2013.04.13 00:03:13 2: CUL_HM set HM_Schalter1 on rxt:1
2013.04.13 00:03:14 2: COC: unknown message 0003380021CA9ADF112340101C800330E
2013.04.13 00:03:16 2: COC: unknown message 0003380021CA9ADF112340101C8003F0C
2013.04.13 00:03:17 2: COC: unknown message 0003480021CA9ADF112340101C800400E
2013.04.13 00:03:20 2: CUL_HM set HM_Schalter1 off rxt:1
2013.04.13 00:03:20 3: set TH_Bad desired 19.0

Ein Auszug noch aus der Logdatei des Schalters:
2013-04-13_00:03:13 HM_Schalter1 set_on
2013-04-13_00:03:20 HM_Schalter1 set_off
2013-04-13_00:03:21 HM_Schalter1 MISSING ACK
2013-04-13_00:03:52 HM_Schalter1 set_off
2013-04-13_00:03:54 HM_Schalter1 set_on
2013-04-13_00:03:58 HM_Schalter1 set_off
2013-04-13_00:03:58 HM_Schalter1 set_on
2013-04-13_00:04:01 HM_Schalter1 MISSING ACK

Da muss ich wohl nach dem COC schauen.... :-(



Lag wohl am HMLAN Module... --> update durchgeführt.... Fehler tritt nicht mehr auf...

Gruß
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 13 April 2013, 00:27:51
Ab morgen gibt´s zumindest ein Update vom THRESHOLD-Modul. Dann ist das zyklische Setzen von desired Wert unkritisch.

Dein Kommunikationsproblem mit dem HM-Schalter wirst du bis dahin bestimmt in den Griff bekommen.

Gute Nacht.

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 13 April 2013, 00:30:28
Zitat von: Damian schrieb am Sa, 13 April 2013 00:27Ab morgen gibt´s zumindest ein Update vom THRESHOLD-Modul. Dann ist das zyklische Setzen von desired Wert unkritisch.

Dein Kommunikationsproblem mit dem HM-Schalter wirst du bis dahin bestimmt in den Griff bekommen.

Gute Nacht.

Damian


Freu mich!!

HM-Schalter läuft...

CIAO

Gruß
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 14 April 2013, 18:59:50
Hallo Damian,

das sieht sehr gut aus nach dem letzten Update...

Hier ein Auszug aus dem Log:

2013.04.14 18:48:19 3: set TH_Bad desired 18.0
2013.04.14 18:50:15 2: CUL_HM set HM_Schalter1 off rxt:1



Eine Frage noch zu der folgenden Zeile Code:
 
define desired_notify notify Heizung_Bad:.* {my $desired_tmp=ReadingsVal ("Heizung_Bad", "desired-temp", "17");;{fhem "set TH_Bad desired $desired_tmp"}}

Wird die "17" unbedingt benötigt...bzw welchen Zweck erfüllt diese Konstante.
Die Soll-Temperatur wird ausschließlich per Hand am FHT80B oder dem Wochenprogramm gesetzt.

Gruß
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 April 2013, 19:10:13
Zitat von: rokno schrieb am So, 14 April 2013 18:59Hallo Damian,

das sieht sehr gut aus nach dem letzten Update...

Hier ein Auszug aus dem Log:

2013.04.14 18:48:19 3: set TH_Bad desired 18.0
2013.04.14 18:50:15 2: CUL_HM set HM_Schalter1 off rxt:1



Eine Frage noch zu der folgenden Zeile Code:
 
define desired_notify notify Heizung_Bad:.* {my $desired_tmp=ReadingsVal ("Heizung_Bad", "desired-temp", "17");;{fhem "set TH_Bad desired $desired_tmp"}}

Wird die "17" unbedingt benötigt...bzw welchen Zweck erfüllt diese Konstante.
Die Soll-Temperatur wird ausschließlich per Hand am FHT80B oder dem Wochenprogramm gesetzt.

Gruß

Der dritte Übergabeparameter wird benutzt, falls das Reading nicht gefunden wird. Da das Reading desired-temp normalerweise immer gesetzt wird, kommt diese Zahl nie zum tragen.

Wie schlägt sich das neue Modul?

Gruß

Damian




Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 14 April 2013, 19:16:06
Das "neue" Modul sieht sehr gut aus...hatte im letzten Beitrag den Auszug gepostet...

Werde nächste Woche mein IR Heizung erhalten...dann wird mal richtig getestet.... :-)

Vielen Dank nochmals für die Unterstützung.

Gruß
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 April 2013, 19:24:16
... da fällt mir gerade beim Stichwort IR-Heizung auf:

Falls du den HM_LC-SW1PBU-FM genommen hast - der ist nur bis 1000 Watt ausgelegt.


Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rokno am 14 April 2013, 20:08:08
Danke für den Hinweis....

Mein Panel hat lediglich 420Watt.....das sollte reichen... :-)

Gruß
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 April 2013, 20:19:06
Den Notify kannst du, wie ich heute gelernt habe, noch weiter vereinfachen, so kommt man sogar ohne zusätzliche Variable aus:

define desired_notify notify Heizung_Bad:.* {fhem "set TH_Bad desired ".ReadingsVal("Heizung_Bad", "desired-temp", "17")}

Kannst ja mal ausprobieren.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Tiefflieger am 26 April 2013, 07:57:20
Komme gerade nicht weiter..... er will einfach nicht schalten !

Habe folgendes prob.:

define Zirkulation THRESHOLD OWX_28_4A32BE040000:temperature:0.5 FS20_10c900 :on:off
set Zirkulation desired 20
attr Zirkulation room Steuerung

er will einfach nicht .... habe statt :temperature auch schon :T :temp :temperatur probiert !
Wo ist der Fehler ?

MFG

Kann es so machen , das nach 3.40 min der nächste geschaltet wird ?
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 26 April 2013, 14:57:48
sollte funktionieren mit:

define Zirkulation THRESHOLD OWX_28_4A32BE040000:temperature:0.5 FS20_10c900

entspricht wegen Defaults (siehe Doku):

define Zirkulation THRESHOLD OWX_28_4A32BE040000:temperature:0.5 FS20_10c900|set @ off|set @ on|2


"temperature" muss übereinstimmen mit dem Temperatur-Reading bei deinem OWX_28-Sensor.

Geschaltet wird immer nur, wenn ein Event vom OWX_28 kommt. Wie oft der ausgelesen wird, kannst du bestimmt bei deinem OWX_28 einstellen. Ich benutze OWTHERM, da wird das Intervall per set <Sensor> interval ... gesetzt (Default 300, also 5 Minuten)

Ich frage mich nur, ob deine Hysterese mit 0,5 Grad für Zirkulation sinnvoll ist - da wird deine Pumpe aber oft an- und wieder ausgehen.

Gruß

Damian




Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Tiefflieger am 27 April 2013, 08:23:04
Danke Damian hat geklappt..... mußte nur das on und off tauschen bei mir !
Ist es möglich, wenn ich 1 aktor über einem sensor schalte
das ein 2. aktor dann 4 min schäter schalten ?

MFG

P.S: Ist für eine Heizungssteuereung, wo das ventiel 4 min zum öffnen brauch, bevor die pumpe anläuft!
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 27 April 2013, 12:28:04
Zitat von: Tiefflieger schrieb am Sa, 27 April 2013 08:23Danke Damian hat geklappt..... mußte nur das on und off tauschen bei mir !
Ist es möglich, wenn ich 1 aktor über einem sensor schalte
das ein 2. aktor dann 4 min schäter schalten ?

MFG

P.S: Ist für eine Heizungssteuereung, wo das ventiel 4 min zum öffnen brauch, bevor die pumpe anläuft!


Warum nicht, im Prinzip:

define Zirkulation THRESHOLD OWX_28_4A32BE040000:temperature:0.5 FS20_10c900|set @ off;set pumpe off|set @ on;sleep 240;set pumpe on|2


oder vertauscht, je nach Schaltungslogik.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 04 Juni 2013, 14:25:36
Hallo Rudi,

ich habe das Problem, dass durch die Auswertung der Eingabezeile Informationen verloren gehen, konkret:

im THRESHOLD-Modul habe ich vorgesehen mehrere FHEM-Befehle hintereinander zu schalten, lt. meiner Doku soll z. B. gehen:

define thermostat THRESHOLD sensor |set Switch1 on;set Switch2 on|set Switch1 off;set Switch2 off|1

im Prinzip funktioniert es auch, wenn man die Verkettung der Befehle mit den Semikolons nachträglich im DEF-Bereich anpasst. So waren auch meine Tests.

Nun musste ich feststellen, dass eine direkte Eingabe der obigen Zeile in der Eingabezeile zu einer Fehlermeldung führt - offenbar ausgelöst durch das erste Semikolon - klar, du hast zuvor die Zeile interpretiert. Den Umweg über {fhem("... wollte ich den Usern erstmal nicht zumuten, wenn es nicht sein muss. Evtl. müsste ich in der Doku aufnehmen, dass solche Verkettungen nur über den DEF-Bereich realisierbar sind oder hast du eine Idee, wie man das Problem elegant löst?

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: rudolfkoenig am 04 Juni 2013, 14:49:21
> lt. meiner Doku soll z. B. gehen:

Wunschdenken :)

; ist FHEM Befehlstrenner, Escape ist ;;
Gilt eigentlich ueberall (telnet/FHEMWEB/fhem.cfg/fhem()/etc), Ausnahme ist (wie Du es geschrieben hast) das FHEMWEB-Detailansicht-DEF-Eingabefenster, dieses macht aus ; selbst ein ;;, bevor es die Daten als modify Argument an FHEM uebergibt.

Fuer "elegant" braucht man einen "vollwertigen" Parser, das haben wir uns bisher geschenkt. Er wuerde in den abgebildeten Fall aber auch nicht helfen, da mir kein Regel einfaellt, warum der Strichpunkt hier nicht als Trenner zu sehen ist.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 04 Juni 2013, 15:11:34
Zitat von: rudolfkoenig schrieb am Di, 04 Juni 2013 14:49> lt. meiner Doku soll z. B. gehen:

Wunschdenken :)

; ist FHEM Befehlstrenner, Escape ist ;;

Du sagst es, dann reicht einfach ;; in der Eingabezeile anzugeben damit es funktioniert:)

Dann kann ich die Doku so lassen, wie sie ist, denn die beschriebene Syntax bezieht sich nicht unbedingt auf die Eingabezeile und diese Problematik ist nicht Modul- sondern FHEM-spezifisch.

Gruß

Damian  
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 04 Juni 2013, 16:02:54
Zitat von: Damian schrieb am Di, 04 Juni 2013 15:11Dann kann ich die Doku so lassen, wie sie ist, denn die beschriebene Syntax bezieht sich nicht unbedingt auf die Eingabezeile und diese Problematik ist nicht Modul- sondern FHEM-spezifisch.

Gruß

Damian  

Ich sehe gerade, dass in der fhem.cfg auch ;; vorkommt. D. h. die einzige Stelle, wo der Anwender nur ein Semikolon sieht, ist im Web-Interface, weil es dort dynamisch für die Eingabe ausblendet wird - wieder was gelernt.

Dann ist es wohl doch besser in der Dokumentation auch ;; aufzunehmen, denn eine Zeile mit der Definition:

define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1

kann ja nur in der Eingabezeile oder der fhem.cfg vorkommen aber nicht in der DEF-Zeile der Web-Oberfläche, denn dort ist ja nur noch das Kommando drin.

Gruß

Damian



 
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: hans88 am 05 Juni 2013, 07:47:17
Hallo,

ich versuche eine Mail bei einer bestimmten Termperatur
auszulösen.

ich habe es so probiert:
define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:28 ||{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Text');;}|

Wo liegt der Fehler ?

gruß Hans
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 05 Juni 2013, 08:26:02
Zitat von: hans88 schrieb am Mi, 05 Juni 2013 07:47Hallo,

ich versuche eine Mail bei einer bestimmten Termperatur
auszulösen.

ich habe es so probiert:
define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:28 ||{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Text');;}|

Wo liegt der Fehler ?

gruß Hans

Syntaktisch sehe ich keine. Gibt es irgendwelche Fehlermeldungen?

Poste hier mal das Ergebnis von List Temp_Alarm und List WTCX5

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 05 Juni 2013, 08:33:29
Ich sehe gerade, du hast Hysterese von 28 gesetzt, wolltest aber sicherlich die Grenztemperatur setzen:

dann eher:


define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:28 ||{DebianMail('xxx@@online.de','THRESHOLD','Text');;}|

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: hans88 am 05 Juni 2013, 15:00:00
Danke das wars !
Hat mich viel Zeit gekostet.
In diesem Fall darf man ausserdem offensichtlich nur 1x @ in der Email
Adresse verwenden.

Gruß Hans
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: hans88 am 05 Juni 2013, 18:17:00
Ich hab da noch eine Frage.
Wenn die Hysterese auf 0 gesetzt ist wie in meinem Beispiel
müsste der event doch direkt bei erreichen der threshold Temperatur
ausgelöst werden.
Es hat aber den Anschein als ob dies erst bei einem Grad drunter bzw. drüber
geschied. Ich erhalte die Temperatur nur in ganzen Zahlen.

Gruß Hans

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 05 Juni 2013, 18:29:45
Hallo Hans,

der Event wird durch deinen WTCX5 ausgelöst.

D. h. konkret in deinem Fall: die E-Mail wird verschickt, wenn der WTCX5 eine Temperatur über 28 Grad gemeldet hat und wenn der z. B. alle 5 Minuten sendet, dann musst du dich im Durchschnitt 2,5 Minuten gedulden;)

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: hans88 am 05 Juni 2013, 18:47:34
Hallo Damian,

das hab ich schon verstanden. Das entscheidente bei deiner Antwort ist
"Temperatur über 28 Grad gemeldet hat". Works as designt.
Ich habe gedacht dass ich mit hysterese 0 dirkekt bei 28° die Mail auslöse.

Gruß Hans
 
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: hans88 am 05 Juni 2013, 21:09:54
Mit den obigen Einstellungen bekomme ich jetzt bei ansteigender Temperatur
bei 29 ° eine mail und bei fallender Temperatur bei 27°.

Jetzt fehlt mir nur noch eine Sache zu meinem Glück
Wie krieg ich die aktuelle Temperatur aus dem reading in den mailtext ?

Gruß Hans
 
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 05 Juni 2013, 22:09:01
Hallo Hans,

bei dieser Definition:

define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:28 ||{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Text');;}|

wird jedes Mal nur beim Überschreiten von 28 Grad eine Mail geschickt.

Wenn du eine Mail auch beim Unterschreiten haben willst, dann musst du es so angeben:

define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:28 |{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Temperatur unterschritten')|{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Temperatur überschritten')|


Eine Temperaturübergabe sollte wie folgt funktionieren:

define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:28 |{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Temperatur unterschritten'.ReadingsVal("WTCX5", "Vorlauf-Ist", "0"))|{DebianMail('xxx@@online.de' (@@online.de'),'THRESHOLD','Temperatur überschritten'.ReadingsVal("WTCX5", "Vorlauf-Ist", "0"))|

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: hans88 am 07 Juni 2013, 13:09:32
Hallo Damian,

es funktioniert genau so wie du es beschrieben hast.
Mit einer Heizung um Sommerbetrieb war es nicht so einfach mit dem testen.

Hier noch mal der Eintrag mit allen Semikolon in der fhem.cfg ;)

define Temp_Alarm THRESHOLD WTCX5:Vorlauf-Ist:0:60 |{DebianMail('xxx@online.de' ('xxx@online.de'),'Temperatur ueberschritten','Temperatur von 60 Grad wurde ueberschritten aktuelle Temperatur '.ReadingsVal("WTCX5", "Vorlauf-Ist", "0") .' Grad');;}|{DebianMail('xxx@online.de' ('xxx@online.de'),'Temperatur unterschritten','Temperatur von 60 Grad wurde unterschritten aktuelle Temperatur '.ReadingsVal("WTCX5", "Vorlauf-Ist", "0") .' Grad');;}|

Danke und Gruß

Hans

 
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 13 Juni 2013, 22:20:55
Hallo Damian, hallo Hans,

habe versucht das Beispiel von Hans mit einem 1-wire Temperatursensor  nachzunutzen ( zum überwachen von Kühltruhe und Kühlschrank).  Der Mailversand funktioniert perfekt, allerdings hatte ich bei einem Abfrageintervall von 5 s sehr schnell über 100 Mail, bevor ich die Sache auf dem Test RPI stoppen konnte. Ich war bisher der Auffassung, dass THRESHOLD nur je ein Event feuert bei über oder unterschreiten des Schwellen-wertes?
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 13 Juni 2013, 22:31:00
... dann hat die Temperatur 100-mal um die vorgegebene Temperatur (hier 60 Grad) "geschwankt". Es wird nur ein Kommando für´s Überschreiten ausgeführt, wenn zuvor die Temperatur unterschritten wurde und umgekehrt. Für diesen Fall solltest du die Hysterese (hier 0 Grad) etwas erhöhen z. B. auf ein Grad setzen (die Zahl vor der 60) damit nicht die kleinste Schwankung ein Kommando auslöst.

Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 13 Juni 2013, 22:47:10
hallo Damian,

danke für die schnelle Antwort, rascher als ich es testen kann. Es kam eine Mail für jede Temperaturänderung - z.B. Schwellenwert 30 grd
- Sensor zum Testen an die Schreibtischleuchte geklemmt - Mail bei 32 grd - bei 34 grd - bei 36 grd etc. ebenso bei unterschreiten der Temperatur Mail bei 28 grd - 26 grd - 24 grd etc. Dabei gab es keinen Durchgang des Threshold Wertes.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 13 Juni 2013, 23:00:16
hmm, das wäre ein Fehler. Passiert das auch, wenn dein Intervall höher als 5 Sekunden ist (z. B. 30 Sekunden)?

Poste hier genau deine Definition.

Was steht beim Reading "cmd" beim definierten THRESHOLD-Modul im Falle des wiederholten Sendens?

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 13 Juni 2013, 23:15:21
Da fällt mir noch ein, dass ein von außen Abgesetztes "set TH_Name active" oder "set TH_Name desired Wert" das Modul initialisiert. Dann steht im Reading "cmd" "wait for next command" und führt bewusst beim nächsten Event zum Ausführen des entsprechenden Kommandos. Das würde dieses Verhalten erklären.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 14 Juni 2013, 15:10:29
Hallo Damian,
das passiert leider bei jedem Thermometerabruf egal wie INTERVALL eingestellt ist (bei 5 - Mail aller 5s bei 30 - aller halben Minute).
Meine Testdefinition:define Temp_Alarm THRESHOLD OWX_28_F213DD030000:temperature:5:28 |{DebianMail('mail@test.de','Temperatur ueberschritten','Temperatur  ueberschritten aktuelle Temperatur '.ReadingsVal("OWX_28_F213DD030000", "temperature", "0") .' Grad');;}|{DebianMail('mail@test.de','Temperatur unterschritten','Temperatur unterschritten aktuelle Temperatur '.ReadingsVal("OWX_28_F213DD030000", "temperature", "0") .' Grad');;}|

(siehe Anhang / see attachement)

Auch ein Verändern der Hysterese oder setzen der desired Temp über das Web Interface ändert daran nichts. - sorry -
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 Juni 2013, 16:36:49
Es müsste nach dem Ausführen des Kommandos im "cmd"-Reading cmd1 oder cmd2 stehen, bei dir steht aber noch "wait for next cmd". Das bedeutet normalerweise, dass kein Kommando bisher ausgeführt wurde. Eine dumme Frage: Du hast nicht noch irgendwo ein notify mit der E-Mail laufen;)?

Ich habe bei mir Folgendes getestet:

define TH_Test THRESHOLD T_Dachgeschoss:temperature:0:20 |{Log 2,"Wert überschritten"}|{Log 2,"Wert unterschritten"}|

Es es funktioniert, wie programmiert.

Es wird nur einmalig ein Log ausgegeben.

Mit DebianMail kann ich es nicht testen, da ich einen Windowsrechner habe - wo möglich hängt es damit zusammen.

Mach mal ein List Temp_Alarm. Was steht unter actor_cmd1 bzw. actor_cmd2?

Und probier mal, ob die einfache Definition mit Log-Ausgaben von oben bei dir funktioniert.

Gruß

Damian
 






Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 Juni 2013, 17:28:12
Ich habe im Code mir die Stelle noch mal angeschaut:

  if ($ret = AnalyzeCommandChain(undef, $cmd_now)) {Log GetLogLevel($pn,3), "output of $pn $cmd_now: $ret";return "";

Schau mal, ob du die Fehlermeldung im Log findest.

Das würde bedeuten, dass AnalyzeCommandChain einen Fehlercode liefert, deine Mail aber dennoch ausgeführt wurde.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 Juni 2013, 20:00:22
Aus deinem Log in der PM sehe ich, dass der Fehlercode 68 zu dem Problem führt.
Womöglich wird er direkt von DebianMail geliefert - das musst du jetzt selbst herausfinden.
Versuche erst mal eine ganz einfache Mail z. B. DebianMail(mail@test.de' (mail@test.de'),"Test").
Solange ein Fehlercode ungleich 0 kommt, wird es eine Fehlermeldung im Log geben und die Sache wird nicht funktionieren, denn nur fehlerfreie Kommandos führen zu Änderung des Status von cmd und damit zu keiner Wiederholung.

Gruß

Damian



Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 14 Juni 2013, 20:24:50
Hallo Damian,

Dein Beispiel mit LOG Ausgabe funktioniert auch bei mir wie gewünscht - d.h. es schaltet zwischen cmd1 und cmd2 um und meldet nur jeweils einmal die Zustandsänderung. Liegt also doch irgendwie an der Mailgeschichte.... dabei wäre gerade Dein Modul genau die Lösung, eine Fehlfunktion von Kühlschrank oder Gefriertruhe zu überwachen und nur eine Mail abzusenden, wenn die Dinger zu warm geworden sind (z.B. Tür zu lange offen) und danach wieder im richtigen Temperaturbereich arbeiten.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 14 Juni 2013, 20:57:50
Probier noch mal eine einfache Mail, wie oben beschrieben. Ansonsten nochmal in DebianMail schauen warum Fehlercode 68 kommt.

Zukünftig werde ich im THRESHOLD-Modul anpassen, dass der Zustand trotz Fehlercode geändert wird, damit es nicht zur Wiederholung kommt.

Gruß

Damian

Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 15 Juni 2013, 14:16:02
Das Problem ist, dass die Routine DebianMail keinen definierten Returnwert zurück gibt.

Die Lösung des Problems ist, am Ende der Routine (hier: DebianMail) ein Return ""; einzubauen. Damit wird ein definierte Returncode zurück gemeldet und die Sache funktioniert, wie programmiert.

hier der angepasste Code aus dem Wiki:

sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "absender\@account.de";
my $konto = "kontoname\@account.de";
my $passwrd = "passwrd";
my $provider = "smtp.provider.de";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";

$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
return "";
}

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: cwagner am 15 Juni 2013, 14:40:50
Moin, Damian,

hier melde ich mich mal wieder, da ich mit inzwischen 8, sehr unterschiedlich eingesetzten Threshold-Modulen vom Anfang an inzwischen eine solide Begeisterung für dieses Modul entwickelt habe.

Bis dahin gab es natürlich auch Klippen:
1. Wer von Anfang an dabei war, kannte die Notation mit ":" als Trenner von Optionen. Mit der ersten größeren Überarbeitung wurde "|" eingeführt, die alten Notationen funktionierten in einfachen Thermostaten (also ohne Befehlsketten, Perl-Einsprengseln) auch weiterhin. Doch es gab Zickereien und meine Empfehlung heute ist, alle Threshold-Module auf die in der Doku gezeigten Schreibweise anzupassen.
2. Wenn in Befehlsketten das ";" benötigt wird, sollte man es aktuell m.E. in CF-Dateiengrundsätzlich maskieren (also verdoppeln). Das tut das "modify" in der Web-Oberfläche nämlich auch(zu dem Thema gibt es einen eigenen Thread)
3. Was ich recht mühsam lernen musste, dass Leerzeichen vor einem "|" Ärger machen (können).
4. Sehr hilfreich ist der jüngste Hinweis von Dir, Damian, das nicht fehlerfrei ausgeführte Kommandos wiederholt werden (ein vorausgehender Beitrag in diesem Thread). Da ist es mir wie Schuppen von den Augen gefallen - falls es also nicht gelingt, dieses Verhalten zu ändern, wäre m.E. ein Hinweis in der Doku ganz wichtig.
5. Man muss vor allem bei Verkettung von mehreren Threshold-Modulen mit wechselseitiger Abhängigkeit (z.B. über deaktivieren/aktivieren oder ändern der Schwellwerte) immer berücksichtigen, dass bis zur nächsten Auslösung des Schwellwertes durch den Sensor das Modul im Status "wait for next cmd stehen" bleibt. In Verbindung mit Strom- und Sendeleistung sparenden Einstellungen beim Sensor (Status-Änderung nur, wenn Reading wirklich geändert), kann das dann recht lange dauern.
6. Von Damian erhielt ich den extrem hilfreichen Hinweis, wie ich bei Verwendung eines Sliders, um verschiedene Schwellwerte vorzugeben, den zuletzt eingegebenen Schwellwert auch über einen restart / rereadcfg hinaus "retten" kann. In der Konfiguration wird dann kein Initialwert (desired temp) eingetragen, mit dem Slider wähle ich die aktuell gewünschte Thermostat-Einstellung und mache ein save config. Nun ist der manuell gewählte Wert auch "scharf", wenn ich neustarte. Das fände ich auch in der Doku nützlich.

Aus meiner Praxis habe ich noch ein Feature-Vorschlag:
Es gibt für mich immer mal wieder die Situation, wo Mensch die schlauesten Konfigurationen übersteuern sollte. Also: Threshold soll zwei Aktoren schalten beim Über- oder Unterschreiten eines bestimmten Sensorwertes (bei mir meist Temperatur oder Feuchtigkeit, ich werde noch mit Licht und Windgeschwindigkeit experimentieren). Jetzt geht Mensch oder ein anderer Prozess also hin, und schaltet die beiden Aktoren (was für den Menschen schon mal mehrere Klicks sind). threshold weiß davon nichts und bleibt bis zur nächsten Über/Unterschreitung des Threshold brav noch im aktuellen Status, sagen wir cmd1.
Ich fände es sinniger, wenn Threshold die Möglichkeit böte, über z.B. ein webcmd zwischen cmd 1 und cmd 2 zu wechseln (toggle bzw. konkret an/aus zu schalten). Dies sollte für programmgesteuerte Aktionen ein "set" sein. Damit wäre cmd in Threshold kongruent zu seinen Aktoren und beim nächsten Über/Unterschreiten des Schwellwertes (bei Hysterese 0) oder der beiden Schwellwerte (bei Hysterese ungleich 0) würde Theshold wieder schalten.
In einem Web-Interface wäre leicht einzugreifen und zugleich auch immer eine stimmige Zustandsanzeige.


Grüße

Christian
 
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 15 Juni 2013, 21:07:54
Hallo Christian,

schön, dass dir das Modul das Leben etwas erleichtert.

Ich finde, dass in FHEM noch viel zu wenig "modular" vorgegangen wird. Es werden oft für eine bestimmte Steuerung viele notifys und at-Befehle kombiniert mit if-Abfragen benutzt, die dann gleich auch noch ein paar andere Steuerungen übernehmen. Das mag bei einigen wenigen Steuerung noch gut funktionieren, aber irgendwann durchblickt man sein eigenes System nicht mehr - so geht es mir zumindest und sehe hier im Forum immer wieder diese Vorgehensweise. Es erinnert mich ein wenig an die achtziger Jahre, wo ich in Basic mit gotos rum hantiert hatte. Immerhin gibt es schon sehr viele Module, die bestimmte Aufgaben übernehmen und es werden immer mehr - ich habe deshalb die Hoffnung noch nicht aufgegeben, irgendwann ohne notifys und at-Befehle auszukommen.

Nun zu deinen Anmerkungen:

Punkt 1 bis 6 lässt sich sicherlich in der Doku aufnehmen.

Ich werde, wie ich schon geschrieben habe, zukünftig den Status trotz eines Fehlercode ändern, damit keine Wiederholungen stattfinden.

Ich weiß nicht, ob ich deinen Wunsch richtig verstanden habe?

Du möchtest also z. B. ein set TH_Name cmd1 oder set TH_Name cmd2 haben, das das entsprechende Kommando bis zum nächsten automatischen Schalten übersteuert.

Der einziger Vorteil, den ich jetzt auf Anhieb sehe, ist, dass du in den Readings des THRESHOLD-Moduls bei cmd den tatsächlichen Status siehst bzw. beim Status des THRESHOLD-Moduls selbst, wenn du es in der Definition des Moduls so definiert hast, dass anstatt "active Wert" ein bestimmter Status für cmd1 bzw. cmd2 angezeigt wird (war meine letzte Änderung in dem Modul). OK, wenn man sich auf diesen Status in anderen Modulen bezieht, dann würde es Sinn machen. So etwas lässt sich, so wie ich es auf die Schnelle sehe, leicht einbauen.

Ich möchte, sobald ich etwas mehr Zeit habe, für´s nächste Update noch folgende Funktionen einbauen:

-Unterstützung eines zweiten Readings, der genauso wie der erste Dezimalwerte liefert. Damit könnte man z. B. Umwälz- oder Zirkulationspumpen  steuern, in dem man die Differenz zwischen Vor- und Rücklauftemperatur als Hysterese auswertet.

-Direkte Unterstützung von diversen Wand-Thermostaten, wie FHT, HomeMatic, Max, usw., dann könnte man sich die lästigen notifys für die Übernahme der Desired-Temperatur aus den Profilen sparen (das war immerhin schon zwei Mal ein Thema in diesem Thread). Dazu gäbe es auch zwei Modi, die man setzen kann für: extern- bzw. FHEM-gesteuert. .

-Variable Definition des Modulstatus mit beliebigem Text und Platzhaltern für "Zustand", "Sollwert", "aktueller Wert", "cmd1", "cmd2".

Das war es dann aber erst mal.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: det. am 16 Juni 2013, 10:31:30
Hallo Damian,
Deine Erweiterungspläne klingen verlockend. Gut, das ich meine Zirkulationspumpensteuerung mit geschachteltem Notify Konstrukt noch so gelassen habe wie sie seit langem funktioniert. Da warte ich doch gern auf die Neuerungen in Deinem THRESHOLD Modul. Die Mailbenachrichtigung von Tiefkühler und Kühlschrank funktioniert jetzt dank Deiner Hilfe prima.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: cwagner am 16 Juni 2013, 11:40:44
Moin, moin, Damian,

genau die einfachere Struktur macht mich ja zum Liebhaber von nun schon 9 Threshold-Modulen: Sie ersetzen auch bei mir viele Notify- und noch viel mehr meist sehr fragile, geschachtelte If-Konstuktionen. Für mich als Perl- und FHEM-Anfänger waren sie eine dramatische Erleichterung und führten einfach zu schnelleren, stabileren, durchschaubareren Ergebnissen.

Meinen Feature-Vorschlag hast Du genau richtig interpretiert.

Dein Plan mit Differenz-Thermostaten erweitert die Möglichkeit zur Einbindung einer Thermo-Solaranlage mit Heizungsrücklaufanhebung. Hier muss ich ja mehrfach Temperaturdifferenzen nutzen, um logische Entscheidungen zu treffen:
a) soll Pumpe überhaupt fördern: ja, wenn Temperatur im Modul auf dem Dach > entweder Speicher 1 (Warmwasser) (dann Dreiwegeventil in Stellung 1) oder Speicher 2 (dann Dreiwegeventil in Stellung 2 für Speicher Rücklaufanhebung)
b) im Heizbetrieb muss threshold2 den Rücklauf aus den Heizkörpern nun laufend vergleichen, um zu entscheiden, ob der kälter ist als die gespeicherte Sonnenwärme im Rücklaufspeicher (dann Dreiwegeventil2 schalten).
c) Auch unsere kontrollierte Lüftung ist mir mit der Werkssteuerung zu unflexibel, hier böte sich ein weiteres Feld, um je nach Wettersituation und Verhältnissen im Haus den Erdwärmetauscher zum Kühlen zu nutzen oder die Wärme im Haus möglichst festzuhalten. Auch hier sind es eigentlich immer Differenzentscheidungen der Art, wenn draußen mehr als 24 Grad und drinnen größer 22 Grad, dann schalte den Erdwärmetauscher ein, damit die Außenluft durch ihn gekühlt wird und das Haus nicht durch die Lüftung mit warmer (und feuchtigkeitsangereicherter) schleichend immer weiter erhitzt wird. Und wenn das Haus dann in Hitzeperioden immer wärmer wird, kann man durch verstärkte Lüftung mit der nachtkalten Luft gegenhalten.

Auch eine kompliziertere Verkettung zweier Thresholds zum Steuern der Warmwassernachheizung durch die Heizung, wenn die winterliche Sonne nicht reicht, mit der Solarthermie ausreichend Warmwasser zu machen, wäre mit Deiner Differenz-Idee vermutlich deutlich zu entschlacken.

Kurz: Da freu ich mich auf neue Chancen, das System schlank und damit für jemanden, der immer nur punktuell sich drum kümmern kann, wartbar zu halten. Das hatte mich ja ganz lange davon abgehalten, mich in ein Abenteuer wie FHEM zu stürzen.

Herzliche Grüße

Christian
Titel: Beschattungssteuerung mit THRESHOLD
Beitrag von: Damian am 04 August 2013, 16:36:11
Hallo zusammen,

die kalte Zeit ist schon lange vorbei und nun kämpfen wir mit der Hitze.

In diesem Zusammenhang wollte ich endlich meine Rollläden, die sich schon länger abends und morgens automatisch rauf- und runterfahren auch als Schutz vor der Hitze einsetzen.

Was lag da näher als eine Routine dafür zu programmieren. Die Routine wurde in 99_Utils schnell erstellt. Sie war zeitgesteuert, außentemperatur-, innentemperatur- und sonneneinstrahlung-abhängig programmiert und funktionierte zunächst auch. Getrigger wurde die Sache über ein notify des Außentemperatursensors. Was mir jedoch nicht gefiel war, dass das manuelle Übersteuern des Rollladen fünf Minuten später wieder zunichte gemacht wurde, als meine Routine wieder getriggert wurde. Also dachte ich mir, ich müsste mir den letzten Zustand merken und nicht den des Rollos auswerten. Ich war kurz davor mir ein neues Modul zu programmieren, allerdings hatte ich doch da schon was programmiert:

Wenn man Beschattung vor der Hitze als indirekte "Kühlung" betrachtet, dann lässt sich so etwas mit THRESHOLD und Heating_Control wie folgt realisieren:
 
define TH_R_Keller THRESHOLD T_Keller AND Sonne:state:on R_Keller|set @ 30||2

define HC_R_Keller Heating_Control TH_R_Keller 12:00|20 20:00|30  set @ desired %


Zur Bedeutung:

T_Keller ist Temperaturfühler im Keller, R_Keller der Rollladen und Sonne ein Sonnenschein-Fühler.

Zwischen 12:00 und 20:00 Uhr (potenzielle Sonnengefahr auf der Südseite) wird der Rolladen auf 30 % herunter gefahren, wenn die Raumtemperatur über 20 Grad ist und die Sonne scheint. Im Winter, wenn die Zimmertemperatur niedriger ist (< 20), will ich von der Sonnenenergie profitieren und den Rollladen oben lassen.

Ab 20 Uhr wird die Funktionalität mit set TH_R_Keller desired 30 bis zum nächsten Tag um 12:00 Uhr außer Funktion gesetzt (so heiß wird es nämlich nicht in diesem Raum),  bevor die Sonne wieder kommt und der Rollladen wieder auf 30 % gesetzt wird.


Wer auch das automatische Hochfahren bei Bewölkung bzw. nach 20 Uhr wünscht, der kann auch das Kommando zum Hochfahren definieren (in meinem Fall set R_Keller 100).

define TH_R_Keller THRESHOLD T_Keller AND Sonne:state:on R_Keller|set @ 30|set @ 100|2

Mir persönlich ist das allerdings zu viel Automatisation;)

Die restlichen Fenster werden je nach Ausrichtung mit anderen Zeiten und anderer Raumtemperatur definiert.


Gruß

Damian


Titel: neue Version
Beitrag von: Damian am 05 September 2013, 15:42:50
Hallo zusammen,

noch können wir die heißen Tage des Jahres genießen. Allerdings werden die Temperaturen bald fallen und da kann man schon an die Optimierungen der nächsten Heizperiode denken;)

Ich bin gerade in der Testphase einer neuen Version des Moduls. Diese Version ist abwärtskompatibel zu der bisherigen.

Die Syntax lautet:

define <name> THRESHOLD <sensor>:<reading>:<hysteresis>:<target_value>:<offset> AND|OR <sensor2>:<reading2>:<state> <actor>|<cmd1_gt>|<cmd2_lt>|<cmd_default_index>|<state_cmd1_gt>:<state_cmd2_lt>|<state_format>

Die Änderungen sind target_value (bisher init_desired), offset und state_format

Wenn bei target_value eine Zahl angegeben wird  - dann entspricht das der bisherigen Angabe mit init_desired.

Alternativ kann bei target_value ein weiterer Sensor <Sensorname>:<reading> angegeben werden, der dann dynamisch den desired-Wert vorgibt.

Mit offset lässt sich die Verschiebung der Grenzen vornehmen und bei state_format lässt sich über Platzhalter das Aussehen des Status anpassen.

Nun ein Beispiel für meine Zirkulationspumpe abhängig vom Warmwasserspeicher:
 

(siehe Anhang / see attachement)


Zur Bedeutung:

Rücklauf der Zirkulation soll fünf Grad unter der Temperatur des Warmwasserspeichers sein und bis zu fünf Grad schwanken können.

Beim Status wurde mit state_format der Zustand (mode) und cmd_status als Ausgabe definiert, Standard ist wie bisher Zustand und desired-Wert.

Der externe Modus (Vorgabe des Sollwertes durch den Sensor) lässt sich durch "set desired value" übersteuern oder durch "set active" einfrieren und durch "set active external" wieder reaktivieren.


Steuerung mit Hilfe eines Wandthermostats sollte nun wie folgt ohne zusätzliche notifys funktionieren:

define TH_Heizung THRESHOLD WT:measured-temp:1:WT:desired-temp Heizung

WT ist ein Wandthermostat (MAX, HM, oder FHT).

Anregungen zu den vorgesehenen Änderungen bitte hier posten.

Gruß

Damian
Titel: Aw: neue Version
Beitrag von: Damian am 11 September 2013, 18:14:26
Neue Version wurde hochgeladen - ab morgen per Update verfügbar.
Weitere Informationen zu der Version bitte den umfangreichen Änderungen in der Commandref entnehmen.
Bei Problemen bitte hier posten.

Gruß

Damian
Titel: Aw: neue Version
Beitrag von: Damian am 27 September 2013, 22:00:10
Hallo zusammen,

in Kombination mit dem dewpoint-Modul lässt sich mit der letzten Version eine Lüftungssteuerung ohne notifys realisieren.

Beispiel:

define dew_Aussensensor dewpoint dewpoint Aussensensor

define dew_Innensensor dewpoint dewpoint Innensensor

define TH_Lueftung THRESHOLD Aussensensor:dewpoint:2:Innensensor:dewpoint:-3 Luefter



Bedeutung: Der Lüfter springt an, wenn der Taupunkt außen 5 Grad (2+3) unter dem Taupunkt innen ist und geht wieder aus, wenn der Taupunkt außen 3 Grad unter dem Taupunkt innen ist.


Die Hysterese von 2 Grad und offset von -3 müssen natürlich den eigenen Bedürfnissen angepasst werden. Weitere Bedingungen der Steuerung lassen sich mit AND oder OR verknüpfen.

Ebenso können Alarme zum Fensteröffnen bzw. -schließen auf diese Weise realisiert werden.

Natürlich lässt sich eine Lüftungssteuerung genauso gut mit notifys, wie in der Doku des dewpoint-Moduls beschrieben, realisieren. Der Vorteil des obigen Beispiels ist jedoch, dass sich die Steuerung durch Kommandos wie: set TH_Lueftung desired <Wert>, set TH_Lueftung external, set TH_Lueftung hystersis <Wert>, set TH_Lueftung offset <Wert> beeinflussen lässt. Mit Heating_Control kann auch noch eine zeitliche Komponente der Steuerung hinzukommen.

Gruß

Damian
Titel: Aw: neue Version Threshold
Beitrag von: cwagner am 09 Oktober 2013, 21:29:53
Moin, Damian,

die neueste Ergänzung von Threshold, das zu meinen Lieblingsmodulen gehört, bringt mich noch einmal auf einen Feature-Vorschlag:
Ich nutze Threshold gerne als Thermostat im Heizungsumfeld. Dort gibt es einzelne Regelaufgaben, die von anderen Modulen/Ereignissen angestoßen werden. Die an sich sinnvolle Eigenschaft von Threshold, dass er nach einem Schaltvorgang auf das entgegengesetzte Ereignis wartet, um wieder aktiv zu werden, kommt mir da vereinzelt in die Quere.
Ich würde es gerne sehen, dass man einen manuellen Override auslösen mit zb.
set <name_threshold> on       oder off
Das sollte behandelt werden, als habe Threshold das Sensorereignis wahrgenommen und er soll nun auf das "Gegenereignis" warten: Off oder on und entsprechend handeln.

Könntest Du das als sinnvolle Ergänzung sehen oder hast Du gar einen Vorschlag das mit einem Dummy zu lösen?

Herzliche Grüße

Christian
Titel: Aw: neue Version Threshold
Beitrag von: Damian am 09 Oktober 2013, 21:39:44
Hallo Christian,

meinst du set <name_threshold> cmd1_gt oder cmd2_lt?

Das habe ich speziell auf deinen Wunsch bereits eingebaut;) Siehe Commandref.

Gruß

Damian
Titel: Aw: neue Version Threshold
Beitrag von: cwagner am 10 Oktober 2013, 09:41:07
Moin, Damian,

wer lesen tut ist klar im Vorteil. Sorry - leider hatte ich nur die Neuerung mit dem zweiten Sensor wahrgenommen. Du hast tatsächlich meinen Wunsch aus dem Frühjahr umgesetzt, das werde ich jetzt mal ausprobieren.
Immerhin 8 Thresholds habe ich inzwischen im Einsatz und sie machen mir wirklich viel Freude. Inzwischen kann ich mir gar nicht mehr vorstellen, das alles mit Notifys und Begingungsmonstern zu bauen...

Herzliche Grüße

Christian
Titel: Aw: neue Version Threshold
Beitrag von: Damian am 10 Oktober 2013, 10:18:43
ZitatImmerhin 8 Thresholds habe ich inzwischen im Einsatz

... das geht ja noch, bei mir sind es mittlerweile 20!


Ich weiß auch nicht mehr, wann ich mich zuletzt mit if-Abfragen rumgeschlagen habe;)


Noch mal zu deinem Problem von vorhin. Wichtig ist auch, gerade wenn Hysterese > 0 ist, cmd_default (beim Heizen auf 2) zu setzen, damit nicht gewartet werden muss, bis ein Grenzwert überschritten oder unterschritten wird, wenn man mit set ... desired oder set ... active das Modul in den Zustand "wait for next cmd" versetzt.

Gruß

Damian
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: tucka am 10 Oktober 2013, 18:48:14
Hi Damian,

sau geiles Modul, das Du da geschrieben hast!!!

Ich habe auch gleich schon mal meine Zirkulationspumpe (1-Wire Sensor + Homematic Funksteckdose) damit gesteuert.

Wie kann ich denn noch eine Zeitabhängige Schaltung mit einbauen? Ich will ja nicht, dass die Zirkulationspumpe auch die Nacht durchläuft....

Danke!!!
Tucka
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 10 Oktober 2013, 19:27:20
Zitat von: tucka schrieb am Do, 10 Oktober 2013 18:48Hi Damian,

Wie kann ich denn noch eine Zeitabhängige Schaltung mit einbauen? Ich will ja nicht, dass die Zirkulationspumpe auch die Nacht durchläuft....

Indem du die Solltemperatur für die Nacht runter setzt, z. B.

define HC_Pumpe Heating_Control TH_Pumpe 06:00|40 22:00|10 set @ desired %

So etwas steht aber auch in der commandref des Modul bei den Beispielen:

siehe:

http://fhem.de/commandref_DE.html#THRESHOLD

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Vorhand am 13 Oktober 2013, 14:48:01
Hallo,

habe folgende Definition:
define GaesteDuscheFenster THRESHOLD fht.Gaestedusche:measured-temp:2:19:0  FS20_St02BueroSteckdose
Zweck:
Ich möchte über die Temperatur des FHT Reglers erinnert werden, dass das Fenster noch offen ist - über die Steckdose wird eine Lampe eingeschaltet.

Wenn ich mit set ... den Sollwert ändere, müsste dann das Modul sofort schalten? ( tut es derzeit nicht)
Ist was falsch an der Definition?

Grüße
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 13 Oktober 2013, 16:27:47
Hat die Definition von GaesteDuscheFenster geklappt oder gab es Fehlermeldung bei der Definition?

"Wenn ich mit set ... den Sollwert ändere, müsste dann das Modul sofort schalten? ( tut es derzeit nicht)"

Das Modul arbeitet ereignisgesteuert, sofort heißt hier, wenn dein FHT wieder die aktuelle Temperatur sendet.

Wenn´s dann nicht klappt, bitte die Readings von GaesteDuscheFenster posten.

Gruß

Damian

Titel: Antw:Aw: neue Version
Beitrag von: volschin am 20 Oktober 2013, 16:29:38
Zitat von: Damian am 27 September 2013, 22:00:10
in Kombination mit dem dewpoint-Modul lässt sich mit der letzten Version eine Lüftungssteuerung ohne notifys realisieren.

Beispiel:

define dew_Aussensensor dewpoint dewpoint Aussensensor

define dew_Innensensor dewpoint dewpoint Innensensor

define TH_Lueftung THRESHOLD Aussensensor:dewpoint:2:Innensensor:dewpoint:-3 Luefter



Bedeutung: Der Lüfter springt an, wenn der Taupunkt außen 5 Grad (2+3) unter dem Taupunkt innen ist und geht wieder aus, wenn der Taupunkt außen 3 Grad unter dem Taupunkt innen ist.


Die Hysterese von 2 Grad und offset von -3 müssen natürlich den eigenen Bedürfnissen angepasst werden. Weitere Bedingungen der Steuerung lassen sich mit AND oder OR verknüpfen.
Super, nachdem ich an der Funktion von dewpoint im fan und alarm-Modus mit den Homematic TC's fast verzweifelt bin, kam mir das gerade richtig.
Genau diesen Taupunktvergleich wollte ich machen und mit einer Schwelle bei der Humidity koppeln. Das habe ich jetzt über 2 kombinierte Thresholds realisiert.
define Humidity.Wohnen THRESHOLD Thermostat.Wohnen_Weather:humidity:10:55:0||||on:off|_sc
define Lueftung.Wohnen THRESHOLD Thermostat.Wohnen_Weather:dewpoint:2:Wetter:dewpoint:1 AND Humidity.Wohnen Luefter.Wohnen|set @ on|set @ off|2||_sc _dv


Allerdings funktioniert das Update von Attributen bei Änderung der DEF nicht fehlerfrei, insbesondere wenn nicht alle optionalen Teile nach hinten angegeben sind. Bei mir hat es dann die Hysterese nicht mehr aktualisiert, bzw. auf 0 gesetzt.

Mit einer Lampe funktioniert das jetzt, mal testen, wie es produktiv ausschaut. 8)

Gruß,
Veit
Titel: Antw:Aw: neue Version
Beitrag von: Damian am 20 Oktober 2013, 16:54:37
Zitat von: volschin am 20 Oktober 2013, 16:29:38
Allerdings funktioniert das Update von Attributen bei Änderung der DEF nicht fehlerfrei, insbesondere wenn nicht alle optionalen Teile nach hinten angegeben sind. Bei mir hat es dann die Hysterese nicht mehr aktualisiert, bzw. auf 0 gesetzt.

Das kann gut sein.

Wenn man z. B beim erstmaligen Define eines THRESHOLD-Moduls einen Aktor angegeben hat, dann werden bestimmte Default-Werte für den Status in den jeweiligen Attributen festgelegt, wenn man dann mit DEF den Aktor wegnimmt, wie bei deinem ersten THRESHOLD, dann gelten diese Default-Werte nicht mehr und müssen entweder in den Attributen manuell geändert werden oder durch vollständige Angabe in der THRESHOLD-Definition, wie bei dir jetzt, angegeben werden. Das Gleiche gilt auch für die Hysterese.

Wann welche Default-Werte gelten, steht in der commandref des Moduls.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: jps am 24 Oktober 2013, 14:42:28
Servus an alle hier im Forum -
bin ein Newbie...,

seit es wieder kälter wurde habe ich das geniale THRESHOLD Modul für meine Fußbodenheizung laufen - 4 Kreise.
Und es hat sofort funktioniert, a Traum - danke Damian!
Jetzt wird's noch kälter und ich will einen Frostwächter für den verglasten Balkon definieren.
Dabei habe ich ein Problem ähnlich wie det. im Juni. Ein einfacher HM THSensor soll einen HM Schalter steuern.
Im Eventmonitor kommen die Events des Sensors, aber der Schalter reagiert nicht - auch nicht, wenn ich die desired Temp höher
als die Außentemperatur (z.B. 18) setze.
Das ist mein Setup:
--> fhem.cfg
##### Tempertursensor Balkon unten #####
define T_Balkon_unten CUL_HM 1CCC74
attr T_Balkon_unten .devInfo 030100
attr T_Balkon_unten .stc 70
attr T_Balkon_unten actCycle 000:10
attr T_Balkon_unten actStatus unknown
attr T_Balkon_unten expert 2_full
attr T_Balkon_unten firmware 1.2
attr T_Balkon_unten model HM-WDS10-TH-O
attr T_Balkon_unten peerIDs
attr T_Balkon_unten room CUL_HM,Balkon
attr T_Balkon_unten serialNr JEQ0268211
attr T_Balkon_unten subType THSensor

##### Schalter Balkon #####
define HZ_Schalter_Balkon CUL_HM 1BF032
attr HZ_Schalter_Balkon .devInfo 010100
attr HZ_Schalter_Balkon .stc 10
attr HZ_Schalter_Balkon expert 2_full
attr HZ_Schalter_Balkon firmware 1.9
attr HZ_Schalter_Balkon model HM-LC-SW1-PL2
attr HZ_Schalter_Balkon peerIDs
attr HZ_Schalter_Balkon room CUL_HM,Balkon
attr HZ_Schalter_Balkon serialNr JEQ0462233
attr HZ_Schalter_Balkon subType switch
attr HZ_Schalter_Balkon webCmd toggle:on:off:statusRequest
define FileLog_HZ_Schalter_Balkon FileLog ./log/HZ_Schalter_Balkon-%Y.log HZ_Schalter_Balkon
attr FileLog_HZ_Schalter_Balkon logtype text
attr FileLog_HZ_Schalter_Balkon room CUL_HM

define Frostschutz_Balkon THRESHOLD T_Balkon_unten:temperature:1:0 HZ_Schalter_Balkon
attr Frostschutz_Balkon room Balkon
attr Frostschutz_Balkon state_cmd1_gt off
attr Frostschutz_Balkon state_cmd2_lt on
attr Frostschutz_Balkon state_format _m _dv _sc
define SVG_FileLog_HZ_Schalter_Balkon_1 SVG FileLog_HZ_Schalter_Balkon:SVG_FileLog_HZ_Schalter_Balkon_1:CURRENT
attr SVG_FileLog_HZ_Schalter_Balkon_1 room Balkon

-->
fhem> list Frostschutz_Balkon
Internals:
   DEF        T_Balkon_unten:temperature:1:0 HZ_Schalter_Balkon
   NAME       Frostschutz_Balkon
   NR         131
   NTFY_ORDER 50-Frostschutz_Balkon
   STATE      initialized
   TYPE       THRESHOLD
   cmd1_gt    set HZ_Schalter_Balkon off
   cmd2_lt    set HZ_Schalter_Balkon on
   cmd_default 2
   hysteresis 1
   init_desired_value 0
   offset     0
   sensor     T_Balkon_unten
   sensor_reading temperature
   Readings:
     2013-10-24 14:09:46   cmd             wait for next cmd
     2013-10-24 14:09:46   desired_value   0
     2013-10-24 14:09:46   mode            active
     2013-10-23 20:47:17   sensor_value    15.7
     2013-10-24 11:40:14   state           active 0
     2013-10-24 14:09:46   threshold_max   0
     2013-10-24 14:09:46   threshold_min   -1
Attributes:
   room       Balkon
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv _sc


Wahrscheinlich habe ich etwas Grundlegendes übersehen - aber ich komm nicht drauf.
Könnt ihr mir bitte helfen?

Grüße
Joachim
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Oktober 2013, 15:02:06
Hallo Joachim,

die Definition von Frostschutz_Balkon sieht ok aus, ob die Hysterese von 1 Grad sinnvoll ist, ist eine andere Frage.

Lt. Readings deines THRÈSHOLD-Moduls hat dein Sensor T_Balkon_unten zuletzt gestern um  20:47:17 gesendet.

Poste mal die Readings von  T_Balkon_unten.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: jps am 24 Oktober 2013, 15:27:52
Hallo Damian,

danke für die Express-Antwort...
Mit readings meinst du die Einträge z.B. im Log-File für T_Balkon_unten?
Das sieht so aus: - demnach sendet der Sensor alle 2-3 Min.
...
2013-10-24_15:09:47 T_Balkon_unten temperature: 19.4
2013-10-24_15:09:47 T_Balkon_unten humidity: 65
2013-10-24_15:09:47 T_Balkon_unten T: 19.4 H: 65
2013-10-24_15:12:05 T_Balkon_unten temperature: 19.4
2013-10-24_15:12:05 T_Balkon_unten humidity: 65
2013-10-24_15:12:05 T_Balkon_unten T: 19.4 H: 65
2013-10-24_15:14:09 T_Balkon_unten temperature: 19.4
2013-10-24_15:14:09 T_Balkon_unten humidity: 65
2013-10-24_15:14:09 T_Balkon_unten T: 19.4 H: 65
2013-10-24_15:17:02 T_Balkon_unten temperature: 19.4
2013-10-24_15:17:02 T_Balkon_unten humidity: 65
2013-10-24_15:17:02 T_Balkon_unten T: 19.4 H: 65
2013-10-24_15:19:40 T_Balkon_unten temperature: 19.4
2013-10-24_15:19:40 T_Balkon_unten humidity: 65
2013-10-24_15:19:40 T_Balkon_unten T: 19.4 H: 65


Grüße
Joachim
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Oktober 2013, 16:36:57
Nein, ich meinte nicht den Log.

Readings sind zu sehen beim Device selbst.

Mach einfach list T_Balkon_unten wie beim THRESHOLD-Modul, da sind die Readings mit dabei.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: jps am 24 Oktober 2013, 16:46:04
Ok - werde mit der Sprache noch vertraut ;)
Hier sind die readings:

fhem> list T_Balkon_unten
Internals:
   DEF        1CCC74
   EVENTS     59
   HMCFGLAN_MSGCNT 59
   HMCFGLAN_RAWMSG E1CCC74,0000,458D6B77,FF,FFC8,D586701CCC7400000000BE41
   HMCFGLAN_RSSI -56
   HMCFGLAN_TIME 2013-10-24 16:38:40
   IODev      HMCFGLAN
   LASTInputDev HMCFGLAN
   MSGCNT     59
   NAME       T_Balkon_unten
   NR         37
   STATE      T: 19.0 H: 65
   TYPE       CUL_HM
   lastMsg    No:D5 - t:70 s:1CCC74 d:000000 00BE41
   protLastRcv 2013-10-24 16:38:40
   rssi_at_HMCFGLAN avg:-55.81 min:-57 max:-55 lst:-56 cnt:59
   Readings:
     2013-10-24 14:19:52   Activity        alive
     2013-10-24 11:39:09   CommandAccepted yes
     2013-10-24 11:39:10   PairedTo        0x1EA0FA
     2013-10-24 11:39:10   R-burstRx       off
     2013-10-24 11:39:10   R-intKeyVisib   invisib
     2013-10-24 11:39:10   R-pairCentral   0x1EA0FA
     2013-10-24 11:39:10   RegL_00:        01:00 02:01 05:00 0A:1E 0B:A0 0C:FA 0F:00 00:00
     2013-10-24 16:38:40   humidity        65
     2013-10-24 16:38:40   state           T: 19.0 H: 65
     2013-10-24 16:38:40   temperature     19.0
   Helper:
     mId        003D
     rxType     12
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Role:
       chn        1
       dev        1
     Rssi:
       At_hmcfglan:
         avg        -55.8135593220339
         cnt        59
         lst        -56
         max        -55
         min        -57
Attributes:
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   1.2
   model      HM-WDS10-TH-O
   peerIDs   
   room       CUL_HM,Balkon
   serialNr   JEQ0268211
   subType    THSensor

Grüße
Joachim
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Oktober 2013, 17:10:19
Hallo Joachim,

bei dir ist alles ok. Leider musste ich feststellen: it´s not a feature, it´s a bug  >:(

Es liegt an der Null von desired_value.

Mit

define Frostschutz_Balkon THRESHOLD T_Balkon_unten:temperature:0:1 HZ_Schalter_Balkon

wird es erst mal klappen.

Versuche es bis morgen zu fixen, bis dahin wird es wohl noch keinen Frost geben  ;)

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: jps am 24 Oktober 2013, 18:10:20
Hi Damian,
ich hätte meinen Pflanzen etwas mehr Komfort gönnen sollen ;)
Klappt jetzt erstmal... und wir haben ja noch goldenen Herbst.
Vielen Dank
Joachim
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Oktober 2013, 20:15:46
Der Frost kann kommen. THRESHOLD-Update ab morgen per FHEM-Update.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: schenkel am 05 November 2013, 12:39:38
Hallo,

das Modul ist genau, was ich suche (hatte mir vor Ewigkeiten mal selbst was gestrickt, um Elektroheizungen mit HM-CC-TC mit HM-LC-Sw1-Pl2 zu verbinden).
Ich komme von alten FS20-Wandthermostaten. Die hatten eine Sicherheitsschaltung drin, daß die Aktoren immer im on-for-timer laufen. Sendet das Thermostat nicht mehr bleibt der Schalter aus und es kann keine Elektroheizung überhitzen oder größere Kosten verursachen.

Daher ein Feature-Request :
das cmd1 auf on-for-timer zu setzen ist ja schon möglich. Gäbe es die Option, das Einschalt-Kommando jedesmal zu wiederholen, wenn ein neues Reading vom Thermostat empfangen wird ?

Viele Grüße,
Sven
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 05 November 2013, 13:42:13
Hallo Sven,

du kannst jetzt schon durch set <dein Threshold-Modul> active das THRESHOLD-Modul in den Zustand "wait for next cmd" versetzen, damit wird beim nächsten Senden deines Thermostats das letzte bzw. das gerade aktuelle cmd-Kommando wiederholt.

Und wenn du es regelmäßig haben willst, dann das obige set-Kommando in einen at-Befehl, notify oder heating_control einbauen.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: krk_0812 am 05 November 2013, 22:46:46
Hallo Demian,

genau das, was ich gesucht hatte.
Einfach anzuwenden, gut beschrieben und funktioniert (auch bei Laien!) auf Anhieb.
Einfach toll!
Frage eines Anfängers . . .
Wo liegt der grundlegende Unterschied zwischen "watchdog" und "Threshold"?

Danke und weiter so!!!
Viele Grüße
Manfred
Titel: Neues Modul - THRESHOLD
Beitrag von: justme1968 am 06 November 2013, 08:44:45
hallo damian,

wo ich gerade die frage oben sehr fällt mir ein das ich noch einen vorschlag machen wollte :).

es wäre klasse wenn es möglich wäre die schalt aktion ähnlich wie in watchdog so lange zu verzögern bis die schaltbedingung eine gewisse zeit bestanden hat.

ein beispiel wäre z.b. eine beschattungs steuerhung die nicht bei einer wolke wieder auf machen soll sondern erst wenn es eine gewisse zeit nicht mehr sonnig ist oder eine beleuchtung bei dunkelheit die nicht bei einem vorbei fahrenden auto wider aus gehen soll sondern erst wenn es längere zeit hell war.

das geht zwar mit einem nachgeschalteten watchdog oder at das bei bedarf wieder gelöscht wird die zeit direkt anzugeben ist aber schöner.

gruss
  andre
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 06 November 2013, 09:56:29
Zitat von: krk_0812 am 05 November 2013, 22:46:46
Wo liegt der grundlegende Unterschied zwischen "watchdog" und "Threshold"?

Das sind zwei völlig verschiedene Dinge: siehe die jeweilige commandref der Module.

Nur kurz: watchdog wird oft zum Verzögern von Aktionen benutzt, THRESHOLD reagiert dagegen sofort und wird oft zum Nachbilden eines Thermostats benutzt (Schalten in Abhängigkeit einer Schwellobergrenze bzw. Schwelluntergrenze eines Wertes, wie z. B. Temperatur)

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 06 November 2013, 10:14:51
Zitat von: justme1968 am 06 November 2013, 08:44:45
hallo damian,

wo ich gerade die frage oben sehr fällt mir ein das ich noch einen vorschlag machen wollte :).

es wäre klasse wenn es möglich wäre die schalt aktion ähnlich wie in watchdog so lange zu verzögern bis die schaltbedingung eine gewisse zeit bestanden hat.

ein beispiel wäre z.b. eine beschattungs steuerhung die nicht bei einer wolke wieder auf machen soll sondern erst wenn es eine gewisse zeit nicht mehr sonnig ist oder eine beleuchtung bei dunkelheit die nicht bei einem vorbei fahrenden auto wider aus gehen soll sondern erst wenn es längere zeit hell war.

das geht zwar mit einem nachgeschalteten watchdog oder at das bei bedarf wieder gelöscht wird die zeit direkt anzugeben ist aber schöner.

gruss
  andre

Hallo Andre,

das hatte ich insb. für meine Beschattungssteuerung bereits schon auf dem Plan gehabt. Da das Modul nicht zeit-, sondern ereignissgesteuert funktioniert, war mir  der Programmieraufwand für die Änderungen zu hoch gewesen, insb. weil man sehr elegant nicht nachgeschaltet, sondern vorgeschaltet einen on/off-Trigger (Sonne da oder nicht da) über einen watchdog verzögern kann, den man dann als zweiten Sensor mit OR oder AND verknüpft (siehe meinen Vorschlag zur Beschattungssteuerung in diesem Thread)

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: justme1968 am 06 November 2013, 10:33:11
ja. bei der beschattung mit on/off ist es einfach. wenn es aber ein sensor ist der einen helligkeits wert liefert funktioniert ein einfacher watchdog nicht mehr.

vorhin ist noch ein anwendungsfall aufgetaucht: eine master/slave verbindung von einer steckdose mit energiemessung eins einer einfachen die nur schslten kann. sobald der verbrauch eine gewisse zeit unter dem schwellwert ist soll die zweite dose ausgeschaltet werden. auch das geht mit dem watchdog nur über umwege wie z.b. ein user reading das aus dem verbrauch einen binären ja/nein wert macht.

an anwendungsfällen mangelt es also nicht:)

gruss
  andre
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 06 November 2013, 10:45:21
Zitat von: justme1968 am 06 November 2013, 10:33:11
ja. bei der beschattung mit on/off ist es einfach. wenn es aber ein sensor ist der einen helligkeits wert liefert funktioniert ein einfacher watchdog nicht mehr.

vorhin ist noch ein anwendungsfall aufgetaucht: eine master/slave verbindung von einer steckdose mit energiemessung eins einer einfachen die nur schslten kann. sobald der verbrauch eine gewisse zeit unter dem schwellwert ist soll die zweite dose ausgeschaltet werden. auch das geht mit dem watchdog nur über umwege wie z.b. ein user reading das aus dem verbrauch einen binären ja/nein wert macht.

an anwendungsfällen mangelt es also nicht:)

gruss
  andre

Geht genauso gut nur umgekehrt. Du definierst dir ein THRESHOLD-Modul auf die Helligkeit nur für Zustandsanzeige, also ohne irgendetwas zu schalten z. B.

define TH_Helligkeit THRESHOLD helligkeitssensor

und den TH_Helligkeit packst du in einen watchdog, der dann das Schalten verzögert auslöst.

Gruß

Damian




Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: justme1968 am 06 November 2013, 10:53:48
sag ich doch. nachgeschaltet :)

aber halt eben immer zwei devices.

gruss
  andre
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: krk_0812 am 06 November 2013, 12:49:22
Hallo Demian,

danke für die kurze obige Erklärung - mich beschäftigt aber noch ein Problem.
Im Zusammenhang mit einer Thermostatfunktion stellt man in der Regel das Thermostat einmalig ein und dieser Zustand geht nicht verloren.
Bei "Threshold" finde ich zwar: "Für die Funktionalität, muss nach der Definition eines Thermostats oder Hygrostats vom Typ THRESHOLD, die Solltemperatur oder -feuchtigkeit über set <name> desired <value> gesetzt werden."
Dieser Befehl wird aber nicht in der fhem.cfg gespeichert, deshalb ist beim "shutdown restart" das Thermostat funktionslos.

Liege ich richtig, oder Denkfehler?

Danke!
Gruß Manfred
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 06 November 2013, 13:38:07
Zitat von: krk_0812 am 06 November 2013, 12:49:22
Hallo Demian,

danke für die kurze obige Erklärung - mich beschäftigt aber noch ein Problem.
Im Zusammenhang mit einer Thermostatfunktion stellt man in der Regel das Thermostat einmalig ein und dieser Zustand geht nicht verloren.
Bei "Threshold" finde ich zwar: "Für die Funktionalität, muss nach der Definition eines Thermostats oder Hygrostats vom Typ THRESHOLD, die Solltemperatur oder -feuchtigkeit über set <name> desired <value> gesetzt werden."
Dieser Befehl wird aber nicht in der fhem.cfg gespeichert, deshalb ist beim "shutdown restart" das Thermostat funktionslos.

Liege ich richtig, oder Denkfehler?

Danke!
Gruß Manfred

Es ist ein Denkfehler. ;)

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: krk_0812 am 06 November 2013, 16:29:05
Das hilft mir jetzt nicht wirklich weiter.
Ich ändere falls möglich direkt in cfg-Dateien, geht schneller. Besonders dann, wenn alles spielt und es sollen nur irgendwelche Eckpunkte (Temeraturen, Zeiten etc.) geändert werden. Der set-Befehl mit der Temeraturangabe wird doch irgendwo eingetragen - irgendwo, nur nicht in der cfg.
Könntest Du mir bitte mitteilen, um welchen File es sich handelt.
Würde ich z. B. auch gerne einzeln sichern.

Danke!
Und einen schönen Abend
Gruß Manfred
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 06 November 2013, 16:59:55
desired_value wird in den Readings des Moduls abgelegt und die werden mit save config gesichert.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: cwagner am 14 November 2013, 10:44:08
Guten Tag, Damian,
im Bestreben in der Zahl der nutzbringend eingesetzten THRESHOLDs an Dich ranzukommen, habe ich nun einen Vorwarner für den Sicherheitsthermostaten gebaut, der in unserer Ölheizung jetzt aufgrund Fehlern meinerseits ein paarmal rausgeflogen ist - dann wird der Brenner nämlich ersteinmal grundsätzlich abgeschaltet. Ist 'ne Sicherheitsvorschrift, die ich bei einer solchen Steuerung, wie wir sie hier gemeinsam optimieren, auch nur gut und richtig:-)

Meine Definition sagt:
T_Heizung:temperature:0:90 SW_02_WW_Pumpe|set @ on;set SW_01_Brenner off;{FB_mail("MyEMail@myProvider.de",'Achtung -Heizung Notaus droht','Überschwingschutz aktiv'.ReadingsVal("T_Heizung", "temperature","19"))}||2
(da ich eine Fritzbox benutze, setzte ich an anderen Stellen auch das Funktion FB_Mail ein.

Das Ergebnis ist schon wunschgemäß, nur die Email kommt nicht an, weil: Das @ wird als Platzhalter missinterpretiert. (bei Maskierung, wie ich es in notifys machen muss (@@), wird die Ersetzung halt zweimal durchgeführt:
2013.11.14 10:37:28 2: CUL_HM set SW_02_WW_Pumpe on
2013.11.14 10:37:28 3: CUL_HM set SW_01_Brenner off
2013.11.14 10:37:29 3: Mail sent to MyEMailSW_02_WW_PumpeProvider.de

Hast Du eine Idee?

Herzliche Grüße
Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: krk_0812 am 14 November 2013, 12:12:28
Hallo Damian,

jetzt bin ich noch einmal da, angeblich soll es ja ganz einfach sein, aber nach einer Stunde gebe ich auf . . .

Ich möchte nur die beiden vorgegebenen Zeilen umsetzen und schaffe das nicht:

define TH_living_room THRESHOLD T_living_room heating
define HC_living_room Heating_Control TH_living_room 06:00|22 22:00|18 set @ desired %

Hintergrund ist einfach, das ich ein HMS100TF_3467 eine Ecklampe2 als Test konfigurieren will. Die Ecklampe soll später die Heizungsumwälzpumpe werden.
Ich laufe nur in Fehlermeldungen - so einfach beschrieben, dass ich nur mein HMS und meinen Aktor eintragen kann, ist es anscheinend doch nicht.
Hintergrund ist eine Wochenschaltung der Heizungspumpe, die jeweils zwischen Tag- und Nachbetrieb unterscheiden soll.
Ich habe keine Ahnung, wie ich die Bezeichnungen meiner beiden Geräte in diese 2 Zeilen bekomme, bzw. ob diesen 2 Zeilen noch etwas fehlt, was zwischen den 2 Zeilen steht. Für sich allein funktionieren diese beiden Teile seit Wochen ohne Problem.

Folgende Zeilen laufen ohne Problem und da würde ich gerne eine Zeitkomponente hineinbringen . . .
define Heizung_Ein THRESHOLD HMS100TF_3467:temperature:2.0 Ecklampe1
attr Heizung_Ein state_cmd1_gt off
attr Heizung_Ein state_cmd2_lt on
attr Heizung_Ein state_format _m _dv _sc

Viele Grüße
Manfred
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 November 2013, 13:12:15
Zitat von: cwagner am 14 November 2013, 10:44:08
Meine Definition sagt:

T_Heizung:temperature:0:90 SW_02_WW_Pumpe|set @ on;set SW_01_Brenner off;{FB_mail("MyEMail@myProvider.de",'Achtung -Heizung Notaus droht','Überschwingschutz aktiv'.ReadingsVal("T_Heizung", "temperature","19"))}||2

Hast Du eine Idee?

ja!

T_Heizung:temperature:0:90 |set SW_02_WW_Pumpe on;set SW_01_Brenner off;{FB_mail("MyEMail@myProvider.de",'Achtung -Heizung Notaus droht','Überschwingschutz aktiv'.ReadingsVal("T_Heizung", "temperature","19"))}||2


Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: cwagner am 14 November 2013, 13:28:51
Mal wieder heißen Dank! Lerne also: Wenn ich "vorne" den Platzhalter verwende, darf ich in den Befehlen keine @ oder % mehr benutzen.

Für alle, die mein Beispiel als Steinbruch benutzen: Besser ist, anstelle der Tüddelchen ("), die die E-Mail-Adresse in meinem Beispiel einrahmen, Hochkommas (') zu benutzen. Dann funktioniert es zumindest auf meiner Fritzbox...

Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 November 2013, 15:54:31
Zitat von: cwagner am 14 November 2013, 13:28:51
Wenn ich "vorne" den Platzhalter verwende, darf ich in den Befehlen keine @ oder % mehr benutzen.

Viel mehr muss es heißen: Wenn kein Aktor vor dem ersten | angegeben, dann wird @ nicht ersetzt.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 November 2013, 16:02:39
Zitat von: krk_0812 am 14 November 2013, 12:12:28
Folgende Zeilen laufen ohne Problem und da würde ich gerne eine Zeitkomponente hineinbringen . . .
define Heizung_Ein THRESHOLD HMS100TF_3467:temperature:2.0 Ecklampe1

define HC_living_room Heating_Control Heizung_Ein 06:00|22 22:00|18 set @ desired %

Wenn es nicht klappt, dann bitte konkrete Fehlermeldung posten.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: krk_0812 am 15 November 2013, 00:12:54
Hat prima funktioniert - bis exakt 00:00, danach hat in der Übersicht unter "Everything" das Modul "Heating Control" gefehlt.
Erst das Neueinlesen Deiner obigen Zeile hat es wieder reingebracht.
Warum war es um 00:00 gelöscht?

16.11.13
Kann es sein, dass das passiert ist, weil ich kein "save" eingegeben hatte?
Jetzt läuft es nämlich problemlos!
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 22 November 2013, 17:04:41
Zitat von: krk_0812 am 15 November 2013, 00:12:54
Kann es sein, dass das passiert ist, weil ich kein "save" eingegeben hatte?
Jetzt läuft es nämlich problemlos!

Ja! Alles was du definierst inkl. aktueller Readings immer mit save speichern, spätestens bevor du shutdown machst.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: michi86 am 24 November 2013, 11:26:10
Hallo zusammen,

ich verende das threshold Modul zur Regelung meiner Gastherme - funktioniert auch sehr gut! Nun möchte ich aber gerne den Sollwert (desired) über die Weboberfläche mittels Wertefeld + set Button vorgeben (Bespiel ist im angehängt Bild). Geht sowas?

Grüße,
Michael
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 November 2013, 17:04:37
Zitat von: michi86 am 24 November 2013, 11:26:10
Hallo zusammen,

ich verende das threshold Modul zur Regelung meiner Gastherme - funktioniert auch sehr gut! Nun möchte ich aber gerne den Sollwert (desired) über die Weboberfläche mittels Wertefeld + set Button vorgeben (Bespiel ist im angehängt Bild). Geht sowas?

Grüße,
Michael

Hier hat det. so etwas ähnliches über einen Dummy mit einem Slider  und einem notify zum Setzen des Sollwertes realisiert:

http://forum.fhem.de/index.php/topic,10580.msg70552.html#msg70552

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Charly am 25 November 2013, 17:32:05
Hallo zusammen,

vielleicht kann mir jemand weiter helfen. Bin noch nicht so fit in FHEM   :)  aber jeder fängt mal an.

Laut meinen Einstellungen sollte eigentlich der OWSwitch auf "ON" gehen, wenn Temp von Janine unter 20 Grad fällt (Desired = 21 Grad).  Aktuell ist es 19,88 Grad im Zimmer. Somit sollte eigentlich das Relay anziehen. Leider tun es das nicht . Im Anhang habe ich mal die Ausgabe von List gemacht. Ebenso die Einstellungen des Heatings tun Threshold.

Was habe ich hier nicht berücksichtigt ?

Charly


Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 November 2013, 17:50:11
Poste hier mal die Ausgabe von list TH_Janine, dann kann ich dir weiterhelfen.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Charly am 25 November 2013, 18:41:46
Hallo Daminan,

da mein kleine Tochter klagte es ist kalt ;-) habe ich Wert per "set TH_Janine desired 22" um 1 Grad erhöht. Danach ging gleich das Relay auf.

Hier die Info

Internals:
   CFGFN      /opt/fhem/FHEM/HZ-Steuerung.cfg
   CHANGED   
   DEF        Janine Rel1|set @ output B OFF|set @ output A ON|2
   NAME       TH_Janine
   NR         71
   NTFY_ORDER 50-TH_Janine
   STATE      active 22
   TYPE       THRESHOLD
   cmd1_gt    set Rel1 output B OFF
   cmd2_lt    set Rel1 output A ON
   cmd_default 2
   hysteresis 1
   offset     0
   sensor     Janine
   sensor_reading temperature
   Readings:
     2013-11-25 17:46:16   cmd             cmd2_lt
     2013-11-25 17:45:44   desired_value   22
     2013-11-25 17:45:44   mode            active
     2013-11-25 18:31:16   sensor_value    19.75
     2013-11-25 17:45:44   state           active 22
     2013-11-25 17:45:44   threshold_max   22
     2013-11-25 17:45:44   threshold_min   21
Attributes:
   room       OWX
   state_format _m _dv

mfg

Charly
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 November 2013, 18:51:00
In dem anderen Fall hätte es auch funktionieren müssen. Du musst dich nach dem Setzen der Solltemperatur solange gedulden, bis der Sensor den nächsten Wert liefert, bis dahin steht im Modul unter cmd: wait for next cmd.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Charly am 25 November 2013, 20:19:07
Hi Damian,

vielen Dank für die Info. Werde mal auf morgen warten. Jetzt ist die Heizung auf 18 Grad und da geht nix mehr. ;-)

Ach ja, ich würde gerne per Grafik mitloggen wann und wie das Heating Modul und dein Modul gearbeitet haben. Ist das möglich ?
Wenn ja wie ? Leider habe ich dazu nichts gefunden.

Einen Tempplot habe ich hinbekommen.

Gruß

Charly
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 November 2013, 20:53:28
Zitat von: Charly am 25 November 2013, 20:19:07
Hi Damian,

vielen Dank für die Info. Werde mal auf morgen warten. Jetzt ist die Heizung auf 18 Grad und da geht nix mehr. ;-)

Ach ja, ich würde gerne per Grafik mitloggen wann und wie das Heating Modul und dein Modul gearbeitet haben. Ist das möglich ?
Wenn ja wie ? Leider habe ich dazu nichts gefunden.

Einen Tempplot habe ich hinbekommen.

Gruß

Charly

siehe Anhang

H_.... sind meine Schaltaktoren, haben also nur den Zustand on/off. Die Funktion im Plot heißt: $fld[2]=~"on"?1:0 bis $fld[2]=~"on"?7:0




Titel: Typo in modul THRESHOLD
Beitrag von: oliv06 am 22 Dezember 2013, 23:36:36
Would it be possible to correct a typo in the THRESHOLD code :
grep deactiveted *
98_THRESHOLD.pm: readingsBulkUpdate   ($hash, "mode", "deactiveted");


deactiveted should be replaced by deactivated.
Titel: Antw:Typo in modul THRESHOLD
Beitrag von: Damian am 23 Dezember 2013, 10:37:55
Zitat von: oliv06 am 22 Dezember 2013, 23:36:36
Would it be possible to correct a typo in the THRESHOLD code :
grep deactiveted *
98_THRESHOLD.pm: readingsBulkUpdate   ($hash, "mode", "deactiveted");


deactiveted should be replaced by deactivated.

It has been fixed.

Gruß

Damian
Titel: Antw:Typo in modul THRESHOLD
Beitrag von: oliv06 am 23 Dezember 2013, 14:16:20
Zitat von: Damian am 23 Dezember 2013, 10:37:55
It has been fixed.

Gruß

Damian
Thanks a lot Damian
Olivier
Titel: Module THRESHOLD : problem in command reference ?
Beitrag von: oliv06 am 24 Dezember 2013, 13:06:09
I found something strange in command refrence for THRESHOLD:
Original
ZitatExample for heating with window contact:

define thermostat THRESHOLD temp_sens OR win_sens heating


Example for heating with multiple window contacts:

define W_ALL structure W1 W2 W3 ...
attr W_ALL clientstate_behavior relative
attr W_ALL clientstate_priority closed open


What works for me :
Zitatdefine W_ALL structure w_all W1 W2 W3 ...
attr W_ALL clientstate_behavior relative
attr W_ALL clientstate_priority open closed

Could you check if I am wrong ?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Dezember 2013, 13:25:42
define W_ALL structure W1 W2 W3 ...

The documentation is incomplete.

There is no Type. It must be, for example:

define W_ALL structure W_TYP W1 W2 W3 ...

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: oliv06 am 24 Dezember 2013, 22:02:54
Zitat von: Damian am 24 Dezember 2013, 13:25:42
define W_ALL structure W1 W2 W3 ...

The documentation is incomplete.

There is no Type. It must be, for example:

define W_ALL structure W_TYP W1 W2 W3 ...
Ok. What about the order in attr W_ALL clientstate_priority closed open : isn't it "open closed" rather than "closed open" ?

What is the process to have the documentation changed ?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 Dezember 2013, 12:16:10
Hello Oliver,

the order: closed open

means:

if one switch is closed, then structure is closed,
if all switches are open, then structure is open.

I see that the documentation is wrong here too.

The order must be: open closed

means:

if one switch is open, then structure is open,
if all switches are closed, then structure is closed.


The default value of state2 in THRESHOLD is open, that means with:

define thermostat THRESHOLD S1 OR W_ALL heating


cmd1_gt (e.g. off at heating) is executed if value of S1 > threshold_max or structure is open (one of the windows is open)


The documentation is in the source of THRESHOLD modul.

I will correct it.

Damian
Titel: [GELÖST] Antw:Neues Modul - THRESHOLD - Fehlermeldung beim Start
Beitrag von: cwagner am 04 Januar 2014, 14:11:25
Guten Tag, Damian,

inzwischen setzte ich THRESHOLD zehnmal ein - auch als Warner bei besonders Systemereignissen. Und das lässt sich bestimmt noch ausbauen. Das Modul ist und bleibt dem PID20, mit dem ich mich aktuell sehr beschäftige, mein Lieblingsmodul für die Heizungs- und Klimasteuerung.

Nach den jüngsten updates fällt mir nun auf der Console beim Neustart eine Fehlermeldung auf:
Zitat
# Argument "" isn't numeric in numeric gt (>) at ./FHEM/98_THRESHOLD.pm line 476

Hast Du eine Idee, was da schief geht? Ich habe natürlich THRESHOLDS, bei denen eine Bedingung "leer" ist, das war bisher auch kein Problem ("Warner", wenn zum Beispiel die Windstärke eine bestimmte Schwelle überschritten hat). In diesen Fällen liess ich den entsprechenden Teil der Definition bisher leer, also kein einziges Zeichen zwischen den Trennern (|).

Alle Definitionen bin ich durchgegangen - mir fällt nichts auf, zumal ich bis auf eine sie nicht verändert habe seit Wochen.

Herzliche Grüße

Christian
Titel: Antw:Neues Modul - THRESHOLD - Fehlermeldung beim Start
Beitrag von: Damian am 04 Januar 2014, 14:40:54
Zitat von: cwagner am 04 Januar 2014, 14:11:25
Alle Definitionen bin ich durchgegangen - mir fällt nichts auf, zumal ich bis auf eine sie nicht verändert habe seit Wochen.

Hallo Christian,

ich vermute, dass da noch etwas anders steht im Reading des Sensors als Zahl. Ich habe zwar filtern nach Zahlen eingebaut - womöglich funktioniert es aber nicht immer richtig.

Mache bitte:

list <das betroffene THRESHOLD-Modul>

und poste hier den Output.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: cwagner am 05 Januar 2014, 12:02:21
Moin, Damian,

Deine Rückfrage hat mich auf die Spur gebracht: Da ich die Fehlermeldung ja nur beim Start bekam, wusste ich zunächst nicht, welcher der 10 THRESHOLDs den Auslöser darstellte. Ein Reload des Moduls im laufenden Betrieb führte aber auch nicht zur Fehlermeldung.
Das brachte mich dann auf die Idee: Kürzlich habe ich nämlich mit 1-Wire begonnen zu experimentieren, weil mir bei den Regelprozessen des Brenners und eines Fußbodenheizkreises die 3 Minuten Abstand zwischen den Sensormeldungen der bis dahin verwandten Homematic-Sensoren zu langsam waren (Burst beim verwendeten Sensortyp nichts brachte).

Und mein Brenner-THRESHOLD ist der erste, der nun alle 30 Sekunden einen Messwert bekommt (und somit im Zweifel 150 Sekunden früher das Erreichen des Schwellwertes erkennt, was durchaus die Auslösung des Sicherheitsthermostaten verhindern kann).

Bei diesem THRESHOLD fragte ich nach dem state  und bei meinem 1-Wire-Sensoren lautet das state-Reading, obwohl ich den STATUS so formatiert habe, dass er allen anderen Sensoren gleich ist:
Zitat
2014-01-04_16:49:32 T_Heizung T: 55.13 &deg;C ▾

Nachdem ich den THRESHOLD umgestellt habe von :
T_Heizung:state:10 SW_01_Brenner|set @ off|set @ on|0|aus:an
auf
T_Heizung:temperature:10 SW_01_Brenner|set @ off|set @ on|0|aus:an

ist der Spuk vorbei.

(An anderer Stelle werde ich mal fragen, warum OWTHERM überhaupt so expressiv formatiert).

Danke für den Anstoß - Problem gelöst.

Herzliche Grüße

Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: jeanette0404 am 05 Januar 2014, 18:00:45
Hallo,

kann mir jemand bitte helfen?

Ich wollte eine Temp-Diff. mit THRESHOLD auswerten. Das heißt bei eine Temp.-Diff. von 5 Grad soll ein Wechselschalter (Actor fs20WS1) schalten.
Derzeit habe ich folgen Code verwendet:
define Solar1_WTauscher1 THRESHOLD WDS30_T1_T2:temperature:5 3Wege_WS_Solar|set @ on|set @ off|1

Die Temp.-Diff. wird auch angezeigt, aber es schaltet nichts.

Ich bräuchte mal eine Erklärung des Syntax.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 05 Januar 2014, 18:08:51
Zitat von: jeanette0404 am 05 Januar 2014, 18:00:45
Hallo,

kann mir jemand bitte helfen?

Ich wollte eine Temp-Diff. mit THRESHOLD auswerten. Das heißt bei eine Temp.-Diff. von 5 Grad soll ein Wechselschalter (Actor fs20WS1) schalten.
Derzeit habe ich folgen Code verwendet:
define Solar1_WTauscher1 THRESHOLD WDS30_T1_T2:temperature:5 3Wege_WS_Solar|set @ on|set @ off|1

Die Temp.-Diff. wird auch angezeigt, aber es schaltet nichts.

Ich bräuchte mal eine Erklärung des Syntax.

Wenn 5 Watt die Schwelle sein soll, dann muss es so aussehen:

define Solar1_WTauscher1 THRESHOLD WDS30_T1_T2:temperature:0:5 3Wege_WS_Solar|set @ on|set @ off|1

Du hast die Hysterese von 5 definiert und keinen Vorgabewert, der kommt erst an zweiter Stelle.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: jeanette0404 am 05 Januar 2014, 19:07:38
Ja ab 5 Grad soll eingeschlten werden.
Ich habe das so jetzt kopiert und es funktioniert noch nicht.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: jeanette0404 am 05 Januar 2014, 19:10:31
Neee, entschuldigung, scheint zu funktionieren.
Super Danke.
Für was steht der erste Wert "0"?

Schönen Abend noch.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 05 Januar 2014, 20:40:37
Zitat von: jeanette0404 am 05 Januar 2014, 19:10:31
Neee, entschuldigung, scheint zu funktionieren.
Super Danke.
Für was steht der erste Wert "0"?

Schönen Abend noch.

Der Wert 0 ist die Hysterese, also die Schwankungsbreite zwischen dem  maximalen bzw. minimalen Schwellenwert.

Gruß

Damian
Titel: Dokumentation
Beitrag von: Damian am 09 Januar 2014, 09:56:04
Dokumentation wurde um viele praktische Beispiele zu:
erweitert.

Siehe: http://fhem.de/commandref_DE.html#THRESHOLD

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: PowderK am 19 Januar 2014, 11:31:44
Hy

Ich steige gerade in das Thema Heizungssteuerung ein

Ich habe eine Fußbodenheizung. Die Ventile Steuere ich über meinen Raspberry Pi und einer Relaiskarte. Die Temperatur wird über einen 1-Wire Sensor im Raum ausgelesen.
Das alles funktioniert soweit alles einwandfrei über folgenden Code :-)

define Bad_EG THRESHOLD Temp_Bad_EG |{system('sudo /opt/fhem/0off.sh&');;}|{system('sudo /opt/fhem/0on.sh&');;}|1
attr Bad_EG room Heizung
attr Bad_EG state_format _m _dv


Jetzt würde ich gerne über ein Dropdown menu oder Slider die Temperatur einstellen.
Ein Beispiel habe ich hier im Thread auch schon gefunden, komme aber leider damit nicht zurecht.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Puschel74 am 19 Januar 2014, 11:36:45
Hallo,

ZitatEin Beispiel habe ich hier im Thread auch schon gefunden, komme aber leider damit nicht zurecht.
Das ist schön nur hilft das nicht wirklich viel.

Welches Beispiel?
Womit kommst du nicht zurecht?
Was sagt das Logfile - nur die zugehörige Fehlermeldung?

Grüße
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: PowderK am 19 Januar 2014, 13:32:53
Ich meinte dieses Beispiel

http://forum.fhem.de/index.php/topic,10580.msg70552.html#msg70552 (http://forum.fhem.de/index.php/topic,10580.msg70552.html#msg70552)

Da ich jedoch nicht mit dem OWswitch arbeite verstehe ich die Struktur nicht.
Den Slider selber hab ich hinbekommen

define Bad_desired_temp dummy
attr Buero_desired_temp alias Raum-Soll-Temperatur
attr Buero_desired_temp setList state:slider,16,1,25
attr Buero_desired_temp stateFormat state  °C
attr Buero_desired_temp webCmd state


Nur weiß ich nicht wie ich den eingestellten Wert jetzt an threshold übergebe
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: kermi am 20 Januar 2014, 16:49:52
erst einmal vielen Dank für das Modul, Klasse Arbeit !

Ich nutze es momentan noch nicht ausgiebeg, will aber irgendwann mal die Steuerung der Therme darüber realisieren.

Momentan will ich es für Abschatlung des Gartenbrunnen bei starkem Wind nutze, funktioniert auch super (zum testen wird nur LED-Display geschaltet)

define brunnen_windabschaltung THRESHOLD Wettersensor:wind:0.5 DisplayLed_04|set @ led off|set @ led green|2
set brunnen_windabschaltung desired 8


Ich würde gerne den Brunnen von 01:00 - 08:00 komplett abschalten, muss ich das zusätzlich mit dem Modul "Heating_Control" machen?

Gruß
Stephan
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 20 Januar 2014, 17:03:58
Zitat von: kermi am 20 Januar 2014, 16:49:52

Ich würde gerne den Brunnen von 01:00 - 08:00 komplett abschalten, muss ich das zusätzlich mit dem Modul "Heating_Control" machen?

Am besten die Schwelle so niedrig setzen, dass die Pumpe auf jeden Fall ausgeht:

define HC_Brunnen Heating_Control  brunnen_windabschaltung 01:00|0 08:00|8 set @ desired %

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: det. am 20 Januar 2014, 17:06:28
Zitat von: PowderK am 19 Januar 2014, 13:32:53
Ich meinte dieses Beispiel

http://forum.fhem.de/index.php/topic,10580.msg70552.html#msg70552 (http://forum.fhem.de/index.php/topic,10580.msg70552.html#msg70552)

Da ich jedoch nicht mit dem OWswitch arbeite verstehe ich die Struktur nicht.
Den Slider selber hab ich hinbekommen

define Bad_desired_temp dummy
attr Buero_desired_temp alias Raum-Soll-Temperatur
attr Buero_desired_temp setList state:slider,16,1,25
attr Buero_desired_temp stateFormat state  °C
attr Buero_desired_temp webCmd state


Nur weiß ich nicht wie ich den eingestellten Wert jetzt an threshold übergebe
Das Beispiel ist von mir und untern kräftiger Hilfe von Damian entstanden.
Wie Du den eingestellten Wert übergibst - übernimm einfach das notify am Ende des Codes - das stellt den Wert desired auf den Wert des Sliders ein - genau jedes Mal, wenn Du den Sliders verschoben hast.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: PowderK am 20 Januar 2014, 21:18:34
Ahh jetzt ist der Groschen gefallen!  ;)

Funktioniert!  ;D

Ich habe jetzt allerdings noch eine weitere Frage.
Nach dem Ich mich hier im Forum dies letzten Stunden schlau gelesen habe, würde ich nun gerne noch eine zeit gesteuerte Nachtabsenkung umsetzten, heißt also das ab ca. 22:00 bis 6:00 Uhr die Temperatur um 1° herabgesenkt werden soll.
Bei meiner Suche bin ich auf das Module Heating_Control gestoßen welches man mit Threshold verbinden kann.

Bleibt nur die Frage wie?

Über ein wenig Hilfe währe ich sehr Dankbar.

Hier noch mal mein Aktueller Code der auch dank eurer Hilfe einwandfrei funktioniert  :)

###########
# Heizung #
###########


# Bad #

define Bad_EG THRESHOLD Temp_Bad_EG |{system('sudo /opt/fhem/0off.sh&');;}|{system('sudo /opt/fhem/0on.sh&');;}|1
attr Bad_EG room Heizung
attr Bad_EG state_format _m _dv

define Bad_EG_desired_temp dummy
attr Bad_EG_desired_temp alias Raum-Soll-Temperatur
attr Bad_EG_desired_temp setList state:slider,16,1,25
attr Bad_EG_desired_temp stateFormat state  °C
attr Bad_EG_desired_temp webCmd state
   
define Dummy_notify notify Bad_EG_desired_temp:.* {\
my $a=ReadingsVal ("Bad_EG_desired_temp", "state","6");;\
{fhem "set Bad_EG desired $a";;}\
}
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 21 Januar 2014, 21:48:13
define HC_Temp_Bad Heating_Control Temp_Bad_EG 06:00|0 22:00|-1 set @ offset %

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: PowderK am 22 Januar 2014, 09:52:56
Danke Damian

Funktioniert einwandfrei. Ich musste es nur noch mal ein wenig abändern da Temp_Bad_EG der 1-Wire Temperatur Sensor ist.

Das ganze sieht jetzt so aus


#Temp Bad EG #

define Temp_Bad_EG OWDevice 28.E2F05A040000 120
attr Temp_Bad_EG model DS18B20
attr Temp_Bad_EG room Temperatur
define Temp_Bad_EG_log FileLog ./log/Temp_Bad_EG-%Y-%m.log Temp_Bad_EG
attr Temp_Bad_EG_log logtype text
attr Temp_Bad_EG_log room Log

# Heizung Bad EG#

define Bad_EG THRESHOLD Temp_Bad_EG |{system('sudo /opt/fhem/0off.sh&');;}|{system('sudo /opt/fhem/0on.sh&');;}|1
attr Bad_EG room Heizung
attr Bad_EG state_format _m _dv

define Bad_EG_desired_temp dummy
attr Bad_EG_desired_temp alias Raum-Soll-Temperatur
attr Bad_EG_desired_temp setList state:slider,16,1,25
attr Bad_EG_desired_temp stateFormat state  °C
attr Bad_EG_desired_temp webCmd state
   
define Dummy_notify notify Bad_EG_desired_temp:.* {\
my $a=ReadingsVal ("Bad_EG_desired_temp", "state","6");;\
{fhem "set Bad_EG desired $a";;}\
}

define HC_Temp_Bad Heating_Control Bad_EG 06:00|0 22:00|-1 set @ offset %


Vielen Dank für die Hilfe

Wenn ihr nichts dagegen habe würde ich anhand dieses Beispiels einen Wiki Beitrag schreiben um andere daran Teil haben zu lassen!

Gruß PowderK
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 22 Januar 2014, 17:58:36
Zitat von: PowderK am 22 Januar 2014, 09:52:56
define Bad_EG THRESHOLD Temp_Bad_EG |{system('sudo /opt/fhem/0off.sh&');;}|{system('sudo /opt/fhem/0on.sh&');;}|2

Ich würde 2 als Default-Kommando beim Heizen empfehlen. Das ist auch der Default-Wert, wenn man nicht zusätzliche Befehle, wie in deinem Fall, angibt.
Das bedeutet, dass die Heizung nach dem Setzen der Wunschtemperatur angeht (2. Befehl), wenn sich die Ist-Temperatur zwischen der Schwelluntergrenze (Min-Threshold) und Schwellobergrenze (Max-Threshold) befindet. Bei der 1 musst du nach dem Setzen der Wunschtemperatur auf das Heizen warten, bis die Schwelluntergrenze unterschritten wird.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: PowderK am 23 Januar 2014, 10:00:58
Alles klar!

Vielen Dank.
Ich werde das ganze jetzt mal ein paar Tage durchlaufen lassen und mich dann an den Wiki Beitrag setzten.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: cwagner am 25 Januar 2014, 08:11:09
Hallo Damian,
bei meinem neuesten Threshld-Projekt bin ich auf einen Wunsch gestossen: Auch hier realisiere ich eine Tag-/Nachabsenkung über die Manipulation des desired-Wertes über Heating_Control, wie Du es ja auch vorschlägst.
Bei diesem Threshold habe ich nun einen extrem trägen Verlauf des Sensorwertes. Wie üblich, ist der Sensorwert über on-change-update so eingestellt, dass wirklich nur bei einer Änderung der Wert ins Log geschrieben wird uns als event rausgepustet wird. Manchmal ändert sich der Sensorwert erst nach einer Stunde mit dem Ergebnis, dass der neue Desired-Wert auch wirklich erst nach einer Stunde zu einem CMD vom Threshold führt - bis dahin "waiting".
Was hälst Du davon, bei einer Änderung des desired-wertes, das ist für Dein Programm ja ein event, den Vergleich sensorwert?desired sofort auszuführen. Dann würde beim Zutreffen der Bedingung Threshold auch zeitnah schalten.

Herzliche Grüße

Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 Januar 2014, 09:42:23
Hallo Christian,

die Problematik ist bei mir noch nicht aufgefallen, da ich bisher on-change-update noch nicht genutzt hatte und davon ausging, dass die Ist-Werte regelmäßig kommen.
Dein Vorschlag macht Sinn. Ich muss noch schauen, wie ich es im Einzelnen sinnvoll realisieren kann.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: cwagner am 25 Januar 2014, 09:52:09
Moin, Damian,

freut mich, dass Du Dich so positiv mit meinem Einwand beschäftigst.

event-on-change-reading oder event-on-update-reading setzte ich eigentlich durchgängig ein, um Logs schlanker zu halten und die Zahl der einprasselnden Events (210 Entitäten) überschaubar zu halten auf vergleichsweise langsamer Hardware.

Herzliche Grüße

Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 Januar 2014, 11:55:59
Liebe Gemeinde,

wer aufmerksam diesen Thread verfolgt hat, dürfte feststellen, dass heute der Jahrestag dieses Threads ist. Genau vor einem Jahr habe ich das erste Modul hier zum Download angeboten - damals war es noch kein Bestandteil von FHEM. Mit über 20.000 Klicks scheint es, neben Heating_Control-Thread, eines der meist gelesenen Threads hier im Forum zu sein.

Nun gibt es zum Geburtstag meistens Geschenke. Ich habe auf Wunsch von Christian die Reaktionszeit des Moduls beim Setzen von desired, offset, active, hysteresis beschleunigt, sodass jetzt sofort reagiert wird. Die ersten Tests sind bei mir bereits positiv verlaufen. Wenn sich keine negativen Randerscheinungen mehr ergeben, gibt es morgen ein Update des Moduls.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: cwagner am 25 Januar 2014, 12:22:23
Juchuuuu!

Und: Gratulation!  THRESHOLD => http://youtu.be/JZC7Hng4AWc


Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Holgi0815 am 28 Januar 2014, 19:37:33
Hallo Damian,
ich nutze Dein Modul gern und vorallem stabil/erfolgreich!
Nun habe ich aber ein "drolliges" Verhalten festgestellt, wobei ich nicht sicher bin, ob dies am Modul oder an FHRM generell liegt.
ich möchte das Ergebnis (hier on/off) in 1/0 umsetzen, um gleich ein entsprechendes Logfile zu füllen, das dann wieder ein schickes Plot ergibt.

vereinfacht zum nachstellen:
   - define test_THRESHOLD THRESHOLD dy_Innen_Durchschnitt DUMMY  <-dy_Innen_Durchschnitt ist der Sensor/DUMMY zum spielen
   - attr test_THRESHOLD eventMap on:1 off:0
   - set test_THRESHOLD desired 20.2
alles funktioniert bestens - Logfile ist GUT! DUMMY hat 0 oder 1
aber
   - set test_THRESHOLD desired 20.0
ergibt "test_THRESHOLD: set desired value:20.off, desired value needs a numeric parameter"
bei "desired" wäre mir das glatt wurscht, da "20" ja geht, aber bei "hysteresis" z.B. würde ich gern auf 0.7 gehen (oder so) hier ist der gleiche Effekt durch das eventMap.
ich hab gerade nochmal geschaut: $Id: 98_THRESHOLD.pm 4740 2014-01-25 18:48:59Z damian-s $
das Verhalten ist aber schon länger(immer) so und

BTW auch von mir: Alles gute zum Geburtstag sozusagen :)
Viele Grüße
Holger
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 29 Januar 2014, 17:14:25
Zitat von: Holgi0815 am 28 Januar 2014, 19:37:33
ich möchte das Ergebnis (hier on/off) in 1/0 umsetzen, um gleich ein entsprechendes Logfile zu füllen, das dann wieder ein schickes Plot ergibt.
Hallo Holger,

ich befürchte, ich habe da wenig Einfluss auf das Mapping, denn ich erhalte von außen im Modul THRESHOLD bereits den ersetzten String mit on bzw. off.

Schöne Plots mit on/off habe ich bei mir auch ohne Mapping. Du brauchst nur im Plotmenü in der Spalte: Function: $fld[2]=~"on"?1:0 einzugeben, dann kannst du auch on/off visualisieren. Wenn du mehrere Devices mit on/off in einem Plot darstellen willst, dann kannst du unterschiedliche Zahlen für unterschiedliche Höhen nehmen (siehe Screenshot unten).

Gruß

Damian



Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: cwagner am 29 Januar 2014, 18:32:13
Hallo Damian,

das geänderte Schaltverhalten von Threshold bei Änderungen von desired und anderen Parametern hat sich bei mir nun seit dem update sehr bewährt. Danke für dieses Geburtstagsgeschenk für Dein Kleinkind. Aus dem Nuckelalter ist THRESHOLD ja nun schon längst raus:-)
Herzliche Grüße

Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Holgi0815 am 29 Januar 2014, 18:53:00
Hallo Damian,
ich hatte bis gerade angenommen, daß das Attr eventMap nur den "Ausgang" also das Event beinflusst. So ist mir jetzt klar, daß Module und somit auch Deins, solche globalen Dinge nicht beachten (sollten?!!).
Aber vor allem auf die naheligende Idee, die "Aufbereitung" nur da zu machen, wo sie auch gebraucht wird, nämlich im Plotmenue bin ich garnicht gekommen!
Danke für Deinen Anschupser, und ich mach mich mal ans Umbauen...
Grüße Holger
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 24 Februar 2014, 22:35:19
Hallo,

ich habe mit dem Modul THRESHOLD probleme. Das Modul, was ich nutzen möchte ist ein Homematic Heizkörperthremostat. Bei einer Ventilöffnung von unter 5% soll die Pumpe abschalten.

define Thermostat_1_Clima CUL_HM 21F2E504
attr Thermostat_1_Clima alias Heizung Bad Ventil
attr Thermostat_1_Clima autoReadReg 4_reqStatus
attr Thermostat_1_Clima event-on-change-reading .*
attr Thermostat_1_Clima expert 1
attr Thermostat_1_Clima group Heizung Bad
attr Thermostat_1_Clima icon sani_heating
attr Thermostat_1_Clima model HM-CC-RT-DN
attr Thermostat_1_Clima peerIDs
attr Thermostat_1_Clima room Bad
attr Thermostat_1_Clima stateFormat Soll: desired-temp C°, Ist: measured-temp C°<br>Ventil:ValvePosition
attr Thermostat_1_Clima userReadings 1

define TEST THRESHOLD Thermostat_1_Clima:ValvePosition:1:5 Pumpe|set @ on|set @ off|1

erzeugt die Fehlermeldung "Unkonwn sensor device Thermostat_1_Clima specified"

Kann ich diesen Wert überhaupt mit THRESHOLD arbeiten oder was ist daran falsch?

Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Februar 2014, 22:39:03
siehe http://forum.fhem.de/index.php/topic,20348.0.html

Gruß

Damian
Titel: Heizen nach Heizkennlinie
Beitrag von: Damian am 20 März 2014, 17:23:10
Hallo zusammen,

falls jemand nach einer einfachen Möglichkeit sucht, seine Heizung selbst nach Heizkennlinie zu steuern, ohne dafür ein Modul zu programmieren oder Perl zu bemühen, der kann das einfach mit dem THRESHOLD-Modul realisieren.

Beispiel zum Heizen der Fußbodenheizung mit der 0,8 Heizkennlinie:

setreading T_Vorlauf Vorgabe 0
define TH_Heizung THRESHOLD T_Vorlauf:temperature:5:T_Vorlauf:Vorgabe Heizung
define n_Vorlauftemp notify Aussensensor.T.* IF ($hms gt "06:00" and $hms lt "22:00") (setreading T_Vorlauf Vorgabe {[Aussensensor:temperature]*(-0.578)+33.56})
define a_Vorlauftemp at *22:01 setreading T_Vorlauf Vorgabe 0


Hier wird das THRESHOLD-Modul mit einem Pseudo-Vorgabe-Sensor als Reading gesteuert. Dieser Vorgabe-Reading der Vorlauftemperatur wird im notify zwichen 06:00 und 22:00 Uhr anhand der Außentemperatur berechnet. Dazu habe ich den IF-Befehl aus dem Nachbar-Thread  http://forum.fhem.de/index.php/topic,17895.msg118503.html#msg118503 benutzt (kann man natürlich auch mit Perl ohne IF umsetzen). Um 22:01 soll die Heizung durch Vorgabe 0 ausgehen. Als Hysterese habe ich hier 5 Grad genommen.

Die Berechnung der Heizkennlinie kann natürlich nach Belieben angepasst werden.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: strauch am 20 März 2014, 17:46:24
Bei dir kann ich immer was über logische Verbindungen/Verknüpfungen lernen ;-). Danke für das Beispiel. Ich frage mich aber wie ihr alle eure Heizungen (z.B. Gastherme) ansteuern könnt?!
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 20 März 2014, 17:53:44
Zitat von: strauch am 20 März 2014, 17:46:24
Bei dir kann ich immer was über logische Verbindungen/Verknüpfungen lernen ;-). Danke für das Beispiel. Ich frage mich aber wie ihr alle eure Heizungen (z.B. Gastherme) ansteuern könnt?!

Das ist natürlich nur ein Beispiel und entstand, weil jemand mich nach einer Steuerung für seine Auflade-Heizung fragte. Meine Heizung wird zwar über FHEM an und ausgeschaltet, allerdings regelt sie natürlich selbst die Vorlauftemperatur.

Ich wollte allerdings den Vierzeiler ohne Perl der FHEM-Gemeinde nicht vorenthalten.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 20 März 2014, 20:29:11
Danke für das tolle Tool. Bin ja noch blutiger Anfänger, steuere allerdings seit heute mit nem simplen DS18B20 und nem FS20ST meine Fussbodenheizung im KinoKeller.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 20 März 2014, 20:50:23
Zitat von: Bartimaus am 20 März 2014, 20:29:11
Danke für das tolle Tool. Bin ja noch blutiger Anfänger, steuere allerdings seit heute mit nem simplen DS18B20 und nem FS20ST meine Fussbodenheizung im KinoKeller.

Wenn du die ersten Posts des Threads liest, dann wirst du feststellen, dass ich genau für diesen Zweck dieses Modul entwickelt haben. Mittlerweile hat es sich zu einem Universal-Tool entwickelt.  :)

Edit: Ich sehe gerade: Die Sache hat bereits hier angefangen: http://forum.fhem.de/index.php/topic,10409.msg58833.html#msg58833

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 02 Mai 2014, 21:34:11
Ich habe zwei neue Attribute im THRESHOLD-Modul eingebaut: target_func und number_format

target_func

Hier kann ein Perlausdruck angegeben werden, um insb. aus dem Vorgabewert eines externen Sensors (target_value) einen Sollwert zu berechnen. Der Sensorwert wird mit "_tv" im Ausdruck angegeben.

Beispiel:

Berechnung der Solltemperatur für die Vorlauftemperatur für Fußbodenheizung mit Hilfe der 0,8-Heizkennlinie anhand der Außentemperatur :

define TH_Heizung THRESHOLD Vorlauf:temperature:3:Aussen:temperature Heizung
attr TH_Heizung target_func -0.578*_tv+33.56


Nachtabsenkung lässt sich dann zeitgesteuert durch das Setzen von "offset" realisieren:

Von 22:00 bis 5:00 Uhr soll die Vorlauftemperatur um 10 Grad herabgesetzt werden:

define W_Heizung weekdaytimer TH_Heizung 05:00|0 22:00|-10 set @ offset %

number_format

Das angegebene Format wird im Status für die Formatierung von desired_value (_dv) und sensor_value (_s1v) über die sprintf-Funktion benutzt. Voreingestellt ist "%.1f" für eine Nachkommastelle. Weiter Formatierungsmöglichkeiten - siehe Formatierung  der sprintf-Funktion in der Perldokumentation. Wenn das Attribut gelöscht wird, werden Zahlen im Status nicht formatiert.

Die neue Version kommt in den nächsten Tagen per Update.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 19 Mai 2014, 20:26:24
Hallo,

ich habe Steuerungen (von Lüftern) bei denen ich regelmäßig zwischen activ und deactivated umschalte. Ist es möglich, bei schalten von activ (THRESHOLD hat einen Actor geschaltet, weil der Grenzwert überschritten war) auf deactivated auch den geschalteten Actor mit abzuschalten?

Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Mai 2014, 20:28:08
Zitat von: Bennemannc am 19 Mai 2014, 20:26:24
Hallo,

ich habe Steuerungen (von Lüftern) bei denen ich regelmäßig zwischen activ und deactivated umschalte. Ist es möglich, bei schalten von activ (THRESHOLD hat einen Actor geschaltet, weil der Grenzwert überschritten war) auf deactivated auch den geschalteten Actor mit abzuschalten?

Gruß Christoph

Du wirst es nicht  glauben, aber ich habe es vor paar Minuten eingebaut:)
Ab morgen per Update verfügbar.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 19 Mai 2014, 20:47:27
Hallo Damian,

Super Danke. 8)

Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Mai 2014, 20:49:40
Auszug aus der Doku:

set <name> deactivated <command>
Modul wird deaktiviert.
<command> ist optional. Es kann "cmd1_gt" oder "cmd2_lt" übergeben werden, um vor dem Deaktivieren des Moduls einen definierten Zustand zu erreichen.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 20 Mai 2014, 20:03:13
Hallo Damian,

ich schalte per devStateIcon
disabled:rc_RED:active active:rc_GREEN:deactivated
kann man das da auch irgendwie durchreichen ?

Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 20 Mai 2014, 21:58:05
Zitat von: Bennemannc am 20 Mai 2014, 20:03:13
Hallo Damian,

ich schalte per devStateIcon
disabled:rc_RED:active active:rc_GREEN:deactivated
kann man das da auch irgendwie durchreichen ?

Gruß Christoph

Die Frage ist, ob Leerzeichen bei cmd erlaubt sind.

wenn

disabled:rc_RED:active active:rc_GREEN:deactivated cmd2_lt

nicht funktioniert, dann muss man sich was anders überlegen.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 20 Mai 2014, 22:16:41
Hallo Damian,

das mit dem Anhängen funktioniert nicht. Das Leerzeichen ist ja normaler Weise die Trennung zwischen den einzelne States. Wie kann man das denn sonst machen - klar mit einem notify - noch andere Ideen?

Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 20 Mai 2014, 22:46:35
Zitat von: Bennemannc am 20 Mai 2014, 22:16:41
Hallo Damian,

das mit dem Anhängen funktioniert nicht. Das Leerzeichen ist ja normaler Weise die Trennung zwischen den einzelne States. Wie kann man das denn sonst machen - klar mit einem notify - noch andere Ideen?

Gruß Christoph

In anderen Modulen z. B. WeekdayTimer kann man Leerzeichen durch Doppelpunkt angeben (was sich der Programmierer so einfallen lässt), hier wird das wohl nicht funktionieren. Da fällt mir in diesem Fall nur noch die Lösung über Dummy und notify ein.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 21 Mai 2014, 06:58:50
Hallo Damian,

... oder der Programmierer ist so freundlich und ändert den Code, so das der default Wert schon in der Definition als zusätzlicher Parameter mit angegeben werden kann (am Ende des define, Leerzeichen getrennt). Wird nichts angegeben - verhalten wie bisher - cmd1_gt oder cmd2_lt wird beim disablen dieser Schaltzustand gesetzt.

Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 21 Mai 2014, 12:45:24
Zitat von: Bennemannc am 21 Mai 2014, 06:58:50
Hallo Damian,

... oder der Programmierer ist so freundlich und ändert den Code, so das der default Wert schon in der Definition als zusätzlicher Parameter mit angegeben werden kann (am Ende des define, Leerzeichen getrennt). Wird nichts angegeben - verhalten wie bisher - cmd1_gt oder cmd2_lt wird beim disablen dieser Schaltzustand gesetzt.

Gruß Christoph

Hallo Christoph,

das könnte man machen, allerdings sind jetzt schon die Define-Optionen so umfangreich geworden, dass man langsam den Überblick verlieren könnte.

Ich denke es ist besser, ich definiere ein neues Attribut z. b. setOnDeactivated, das man mit cmd1_gt oder cmd2_lt belegen kann.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 21 Mai 2014, 13:36:16
Hallo Damian,

das hatte ich auch schon überlegt. Da ich aber nicht genau weiß wie der Quellcode ist, hatte ich gemeint, dass das mit dem define einfacher einzupflegen wäre - von wegen Wert prüfen, in Variabele speichern und an der Stelle einsetzten, an der der Wert jetzt auch schon übergeben wird.
Aber als attribut wäre das auch ok. Es geht ja nur darum, einen definierten Zustand beim deaktivieren zu haben.

Gruß Christoph

PS: wenn Du Tester benötigst - her mit dem Code  ;)
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Holgi0815 am 21 Mai 2014, 21:29:26
Hallo Damian,

nicht, dass es gerade wichtig ist, (Draussen noch 25° :)), aber da Du z.Zt. augenscheinlich aktiv bist ....

Mir war im Winter mal aufgefallem, daß, wenn ich set hysteresis auf z.B. "0.7" setzte + SAVE ;), nach einem restart vom fhem immer der default von "1" gesetzt ist, wohingegen ein "1.2" erhalten bleibt?!

Viele Grüße
Holger

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 21 Mai 2014, 21:47:05
Zitat von: Holgi0815 am 21 Mai 2014, 21:29:26
Hallo Damian,

nicht, dass es gerade wichtig ist, (Draussen noch 25° :)), aber da Du z.Zt. augenscheinlich aktiv bist ....

Mir war im Winter mal aufgefallem, daß, wenn ich set hysteresis auf z.B. "0.7" setzte + SAVE ;), nach einem restart vom fhem immer der default von "1" gesetzt ist, wohingegen ein "1.2" erhalten bleibt?!

Viele Grüße
Holger

Das hängt wohl weniger mit den Zahlenwerten zusammen, als mit der Definition deines Moduls.

z. B.

define TH_TEST THRESHOLD Sensor switch

bekommt defaultmäßig Hysterese von 1

define TH_TEST THRESHOLD Sensor:temperature:0.7 switch

wird nach dem Neustart 0.7 erhalten oder was du an dieser Stelle sonst angibst.

"set TH_TEST hysteresis Wert" überlebt dagegen nicht den Neustart, weil es als Internal durch einen der obigen Werte überschrieben wird.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 22 Mai 2014, 18:34:52
Zitat von: Damian am 21 Mai 2014, 12:45:24

Ich denke es ist besser, ich definiere ein neues Attribut z. b. setOnDeactivated, das man mit cmd1_gt oder cmd2_lt belegen kann.


eingecheckt, morgen per Update verfügbar.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: eldrik am 06 Juni 2014, 11:28:48
Hi,

kann ich mit THRESOLD auch folgendes Szenario abbilden?

Ist Luftfeuchtigkeit im Raum >70% = Fenster 100% öffnen, fällt Luftfeuchtigkeit auf <=55% für min. 15 Minuten dann Fenster schließen, fängt es an zu regnen oder regnet es bereits dann Fenster nur 30% öffnen.
Ist die Alarmanlage eingeschaltet oder wird aktiviert das Fenster schließen + bei übertreten der Luftfeuchtigkeit während aktiver Alarmanlage soll das Fenster nicht geöffnet werden.

Ist das generell möglich? Wahrscheinlich müssen noch ein paar Dummys oder Watchdogs eingebunden werden oder?

Greetz
Eldrik
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: strauch am 06 Juni 2014, 11:32:37
Ja das ist möglich und ich denke auch garnicht so kompliziert, du brauchst dafür eine If Schleife und ein Watchdog für die 15 min. Die Alarmanlage einfach als zweiten Sensor in den Threshold einbinden und wenn die auf on steht soll nichts passieren. Einen Dummy brauchst du nicht.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 24 Juni 2014, 16:19:03
Hallo Damian,

ich habe ein THRESHOLD mit folgender DefinitionDEF
Temp_1:temperature:3:26 AND 4_CH_PLATINE_02:battery:ok 4_CH_PLATINE_02_Sw_01|set @ on|set @ off|2

Es soll temperaturabhängig ein Lüfter eingeschaltet werden. Da dieser an eine Bleiakku hängt, soll der natürlich keine Tiefentladung erzeugen - also Batterieüberwachung. Der Akku wird über zwei Solarzellen geladen.
Jetzt habe ich folgendes Problem:
Die Temperatur ist überschritten aber die Batterie leer => Lüfter schaltet nicht ein, wird die Batterie geladen und der Status wechselt auf ok springen die Lüfter nicht an. Ich habe keine Erklärung dafür.
Könntest Du mal nachsehen, ob da etwas im Code nicht richtig läuft ? Wenn ich das richtig verstanden habe, wird in regelmäßigen Abständen geprüft, ob etwas gemacht werden muss. Wird der "State" der und Verknüpfung jedes mal mit aktualisiert ?

Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Juni 2014, 19:16:19
Zitat von: Bennemannc am 24 Juni 2014, 16:19:03
Hallo Damian,

ich habe ein THRESHOLD mit folgender DefinitionDEF
Temp_1:temperature:3:26 AND 4_CH_PLATINE_02:battery:ok 4_CH_PLATINE_02_Sw_01|set @ on|set @ off|2

Es soll temperaturabhängig ein Lüfter eingeschaltet werden. Da dieser an eine Bleiakku hängt, soll der natürlich keine Tiefentladung erzeugen - also Batterieüberwachung. Der Akku wird über zwei Solarzellen geladen.
Jetzt habe ich folgendes Problem:
Die Temperatur ist überschritten aber die Batterie leer => Lüfter schaltet nicht ein, wird die Batterie geladen und der Status wechselt auf ok springen die Lüfter nicht an. Ich habe keine Erklärung dafür.
Könntest Du mal nachsehen, ob da etwas im Code nicht richtig läuft ? Wenn ich das richtig verstanden habe, wird in regelmäßigen Abständen geprüft, ob etwas gemacht werden muss. Wird der "State" der und Verknüpfung jedes mal mit aktualisiert ?

Gruß Christoph

Poste bitte das Ergebnis von list <dein_threshold_modul>


Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 24 Juni 2014, 20:00:53
Hallo Damian,

kommt:
Internals:
   DEF        Temp_1:temperature:3:26 AND 4_CH_PLATINE_02:battery:ok 4_CH_PLATINE_02_Sw_01|set @ on|set @ off|2
   NAME       Zuluft_Wiga
   NR         258
   NTFY_ORDER 50-Zuluft_Wiga
   STATE      active
   TYPE       THRESHOLD
   cmd1_gt    set 4_CH_PLATINE_02_Sw_01 on
   cmd2_lt    set 4_CH_PLATINE_02_Sw_01 off
   cmd_default 2
   hysteresis 3
   init_desired_value 26
   offset     0
   operator   AND
   sensor     Temp_1
   sensor2    4_CH_PLATINE_02
   sensor2_reading battery
   sensor2_state ok
   sensor_reading temperature
   Readings:
     2014-06-24 13:00:52   cmd             cmd1_gt
     2014-06-23 17:08:59   desired_value   26
     2014-06-24 05:30:00   mode            active
     2014-06-24 13:00:52   sensor2_state   ok
     2014-06-24 19:54:32   sensor_value    27.4
     2014-06-24 05:30:00   state           active
     2014-06-23 17:08:59   threshold_max   26
     2014-06-23 17:08:59   threshold_min   23
Attributes:
   alias      Automatik Lüfter 1 Wintergarten
   devStateIcon disabled:control_x@red:active active:vent_ventilation_level_automatic@green:deactivated
   group      Lüftung
   icon       vent_ventilation_level_0
   number_format %.1f
   room       Steuerung,Wintergarten
   setOnDeactivated cmd2_lt
   sortby     04
   state_format _m


Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Juni 2014, 20:15:04
Zitat von: Bennemannc am 24 Juni 2014, 20:00:53
Hallo Damian,

kommt:
Internals:
   DEF        Temp_1:temperature:3:26 AND 4_CH_PLATINE_02:battery:ok 4_CH_PLATINE_02_Sw_01|set @ on|set @ off|2
   NAME       Zuluft_Wiga
   NR         258
   NTFY_ORDER 50-Zuluft_Wiga
   STATE      active
   TYPE       THRESHOLD
   cmd1_gt    set 4_CH_PLATINE_02_Sw_01 on
   cmd2_lt    set 4_CH_PLATINE_02_Sw_01 off
   cmd_default 2
   hysteresis 3
   init_desired_value 26
   offset     0
   operator   AND
   sensor     Temp_1
   sensor2    4_CH_PLATINE_02
   sensor2_reading battery
   sensor2_state ok
   sensor_reading temperature
   Readings:
     2014-06-24 13:00:52   cmd             cmd1_gt
     2014-06-23 17:08:59   desired_value   26
     2014-06-24 05:30:00   mode            active
     2014-06-24 13:00:52   sensor2_state   ok
     2014-06-24 19:54:32   sensor_value    27.4
     2014-06-24 05:30:00   state           active
     2014-06-23 17:08:59   threshold_max   26
     2014-06-23 17:08:59   threshold_min   23
Attributes:
   alias      Automatik Lüfter 1 Wintergarten
   devStateIcon disabled:control_x@red:active active:vent_ventilation_level_automatic@green:deactivated
   group      Lüftung
   icon       vent_ventilation_level_0
   number_format %.1f
   room       Steuerung,Wintergarten
   setOnDeactivated cmd2_lt
   sortby     04
   state_format _m


Gruß Christoph

Hallo Christoph,

dieser Zustand ist so wie er definiert wurde, denn:

27.4>26 und sensor2=ok => cmd1_gt (set 4_CH_PLATINE_02_Sw_01 on)

der Lüfter sollte jetzt laufen.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bennemannc am 24 Juni 2014, 22:38:03
Hallo Damian,

jetzt ja ... aber der Akku (mittlerweile ausgetauscht) war defekt und hat deswegen Battery "low" ausgelöst. Eigentlich sollte die Solaranlage (20 W), bzw. der Laderegler (max. 50 W) die Lüfter (zus. ca. 6 W) und die Schaltung speisen können. Zwischendurch war die Battery auch wieder "ok", die Temperatur war oberhalb des Einschaltpunktes (30 Grad). Trotzdem haben die Lüfter nicht angefangen zu laufen. Nach einem "deactivated" und anschließendem "active" liefen die sofort an und blieben auch an.
Daher meine Bitte zu prüfen, ob wenn der Level überschritten ist und die zweite "Einschaltbedingung" nicht gegeben ist, ob eingeschaltet wird, wenn die zweite "Einschaltbedingung" sich ändert. Speziell ob die zweite Bedingung auch regelmäßig aktualisiert bzw. kontrolliert wird.

Gruß Christoph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Juni 2014, 23:12:05
Zitat von: Bennemannc am 24 Juni 2014, 22:38:03
Hallo Damian,

Daher meine Bitte zu prüfen, ob wenn der Level überschritten ist und die zweite "Einschaltbedingung" nicht gegeben ist, ob eingeschaltet wird, wenn die zweite "Einschaltbedingung" sich ändert. Speziell ob die zweite Bedingung auch regelmäßig aktualisiert bzw. kontrolliert wird.

Gruß Christoph

Hallo Christoph,

das brauche ich nicht zu überprüfen, so etwas habe ich bei mir in mehrfacher Ausführung  seit einem Jahr täglich im Einsatz.

THRESHOLD schaltet nur nach Zustandswechsel, d. h. der Lüfter geht nur dann wieder an, wenn die Bedingung zwischendurch "false" war, bei dir also: Temperatur < 23 oder battery nicht ok.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: AndyOne am 25 Juni 2014, 12:16:28
Hallo Damien,

ich komme mit dem Modul noch nicht zu recht, kannst Du mir bitte helfen.

Ich möchte mehrere Rollladen zum Sonnenschutz steuern und zwar einfach über die Aussen Temperatur und die Uhrzeit. Wenn in der Zeit von 12:00 bis 17:00 Uhr die Temperatur über 25° steigt sollen die Rollläden nach unten gehen. Bei einer Temperatur von unter 25° sollen sie wieder hoch. Das ganze soll eigentlich nicht ständig geprüft werden, alle 30 Minuten würde reichen.

VG Andy
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 Juni 2014, 16:49:31
Zitat von: AndyOne am 25 Juni 2014, 12:16:28
Hallo Damien,

ich komme mit dem Modul noch nicht zu recht, kannst Du mir bitte helfen.

Ich möchte mehrere Rollladen zum Sonnenschutz steuern und zwar einfach über die Aussen Temperatur und die Uhrzeit. Wenn in der Zeit von 12:00 bis 17:00 Uhr die Temperatur über 25° steigt sollen die Rollläden nach unten gehen. Bei einer Temperatur von unter 25° sollen sie wieder hoch. Das ganze soll eigentlich nicht ständig geprüft werden, alle 30 Minuten würde reichen.

VG Andy

Das Beispiel Beschattungssteuerung hast du schon gelesen? Siehe: zu http://fhem.de/commandref_DE.html#THRESHOLD

Wenn dir die Syntax zu kompliziert ist, kannst du auch das neue Modul DOIF aus dem Nachbar-Thread ausprobieren. Im Gegensatz zum obigen Bespiel brauchst du nur ein Modul und nicht zwei.

z. B.

define DI_Rolladen DOIF ([Sensor:temperature]> 25 and $hms gt "12:00" and $hms lt "17:00") (set Rollo runter) DOELSE (set Rollo hoch)


Damit deine Rolladen bei kleinen Temperaturschwankungen nicht ständig rauf und runter fahren, würde ich noch eine Verzögerung einbauen:

attr DI_Rolladen wait 600:600

Übrigens: THRESHOLD und DOIF arbeiten rein ereignisgesteuert (Ausführung erfolgt sofort) und pollen (ständiges Abfragen) selbst nicht.


Gruß

Damian


Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: AndyOne am 26 Juni 2014, 08:28:41
Hallo Damien,

danke für den Tip und das Beispiel mit dem DOIF, das gefällt mir sogar noch besser, weil einfacher.
Ich werde das baldmöglichst ausprobieren und berichten.

VG Andy
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: AndyOne am 27 Juni 2014, 08:10:11
Ich konnte das gestern Abend nach dem Fußballspiel noch testen. Funktioniert prima und ist einfach und klasse.
Danke!  :)
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 27 Juni 2014, 08:21:35
Zitat von: AndyOne am 27 Juni 2014, 08:10:11
Ich konnte das gestern Abend nach dem Fußballspiel noch testen. Funktioniert prima und ist einfach und klasse.
Danke!  :)

Schön, wenn es funktionniert.

Ich habe inzwischen das Beispiel mit einer Sonnenuntergangsfunktion in der Doku von DOIF aufgenommen. Falls dein Sensor starke Schwankungen hat, so kannst du auch eine Art "Hysterese" z. B. von einem Grad einbauen.

Beispiel

define DI_Rolladen DOIF ([Sensor:temperature]> 26 and $hms gt "12:00" and $hms lt "17:00") (set Rollo runter) DOELSEIF (([Sensor:temperature]< 25 and $hms gt "12:00" and $hms lt "17:00") or ($hms lt "12:00" or $hms gt "17:00") (set Rollo hoch)

Hier wird der Rolladen nur dann wieder hoch gefahren, wenn die Temperatur unter 25 Grad fällt oder vor 12:00 bzw. nach 17:00 Uhr. Das Attribut wait kannst du dann weglassen.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: michael-sp am 31 August 2014, 14:45:40
Hallo zusammen,
ich benutze das THRESHOLD-Modul um eine Wärmelampe im einem Terrarium zu schalten.
Lampe schaltet bei 20°C ein und bei 25°C wieder aus.
das funktioniert soweit.
Nun möchte ich das nur zwischen 07:00 Uhr und 17:00Uhr die Lampe über Temperatur geschaltet wird.

Temp_AU_SK:temperature:5:25.0 Licht_SK on

Nehm ich den Weekdaytimer, Heatcontrol oder schreibe ich was beim Threshold? Was muss ich eintragen?

Vielen Dank
Michael
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 31 August 2014, 19:56:31
Zitat von: michael-sp am 31 August 2014, 14:45:40
Hallo zusammen,
ich benutze das THRESHOLD-Modul um eine Wärmelampe im einem Terrarium zu schalten.
Lampe schaltet bei 20°C ein und bei 25°C wieder aus.
das funktioniert soweit.
Nun möchte ich das nur zwischen 07:00 Uhr und 17:00Uhr die Lampe über Temperatur geschaltet wird.

Temp_AU_SK:temperature:5:25.0 Licht_SK on

Nehm ich den Weekdaytimer, Heatcontrol oder schreibe ich was beim Threshold? Was muss ich eintragen?

Du kannst es über Weekdaytimer (Heating_Control) in Verbindung mit THRESHOLD realisieren. Siehe Beispiel zum zeitgesteuerten Heizen hier: http://fhem.de/commandref_DE.html#THRESHOLD

Oder gleich mit einem einzigen Modul erledigen:

define di_temp_au DOIF ([SK:temperature] > 25) (set Licht_SK off) DOELSEIF ([SK:temperature] < 20 and [07:00-17:00]) (set Licht_SK on)

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: michael-sp am 01 September 2014, 19:19:24
Super, danke, hab es mit DOIF gemacht, funktioniert.

Gruss
Michael
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: grogra am 01 November 2014, 08:49:28
Zunächst ein Super Tool! Das mir nach einigen Umwegen das IT Leben leichter gemacht hat..

ich habe schon einiges Ausprobiert und Irgendwie gefallen mir die Lösungen nicht oder Sie gehen nicht..

Wie würdest Du / Ihr folgende Aufgabe lösen:

Ich habe pro Zimmer ein TempSensor / THRESHOLD und min. ein Ventil. Im Keller eine Heizungspumpe

Wenn ein THRESHOLD das Zimmer erwärmen möchte soll die Pumpe im Keller für entsprechend Warmwasser sorgen.
Sozusagen eine OR Verknüpfung aus allen THRESHOLD

Danke schon mal für die Idee

grogra
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 01 November 2014, 09:41:31
Zitat von: grogra am 01 November 2014, 08:49:28
Zunächst ein Super Tool! Das mir nach einigen Umwegen das IT Leben leichter gemacht hat..

ich habe schon einiges Ausprobiert und Irgendwie gefallen mir die Lösungen nicht oder Sie gehen nicht..

Wie würdest Du / Ihr folgende Aufgabe lösen:

Ich habe pro Zimmer ein TempSensor / THRESHOLD und min. ein Ventil. Im Keller eine Heizungspumpe

Wenn ein THRESHOLD das Zimmer erwärmen möchte soll die Pumpe im Keller für entsprechend Warmwasser sorgen.
Sozusagen eine OR Verknüpfung aus allen THRESHOLD

Danke schon mal für die Idee

grogra

Es wird draußen kälter - die Hochsaison für THRESHOLD beginnt. Dann können wir den Thread hier wieder aufwärmen ;)

Du kannst zum Schalten deiner Aktoren mehrere Befehle absetzen z. B (siehe Beispiele in der Commandref):

define thermostat THRESHOLD sensor |set Ventil off;;set Pumpe off|set Ventil on;;set Pumpe on|1

Das würde für einen Raum funktionieren.

Wenn du für alle Räume es realisieren wolltest, dann kannst du deine Ventile in eine Structure packen. Die Structure soll offen sein, sobald ein Ventil offen ist. Dann kannst du z. B. mit DOIF auf die Structure triggern und deine Pumpe Schalten z. B:

define di_pumpe DOIF ([Ventile] eq "offen") (set Pumpe on) DOELSE (set Pumpe off)

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: grogra am 01 November 2014, 10:11:59
Danke,

das mit der Structur war auch mein erster Ansatz. Bei mir Funk das aber nicht



define HZ_ventileAll structure Heizung \
EG.C.DR.Out01 EG.C.DR.Out02 EG.C.DR.Out03 EG.C.DR.Out04 EG.C.DR.Out05 EG.C.DR.Out06 EG.C.DR.Out07 \
OG.C.DR.Out01 OG.C.DR.Out02 OG.C.DR.Out03 OG.C.DR.Out04 OG.C.DR.Out05 OG.C.DR.Out06 OG.C.DR.Out07




Die structur EGEGHZGruppe wird von einen THRES gesteuert. Diese ist wie Du siehst an.
Aber das kommt nicht bei der HZ_ventileAll an
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 01 November 2014, 10:20:13
Zitat von: grogra am 01 November 2014, 10:11:59
Danke,

das mit der Structur war auch mein erster Ansatz. Bei mir Funk das aber nicht



define HZ_ventileAll structure Heizung \
EG.C.DR.Out01 EG.C.DR.Out02 EG.C.DR.Out03 EG.C.DR.Out04 EG.C.DR.Out05 EG.C.DR.Out06 EG.C.DR.Out07 \
OG.C.DR.Out01 OG.C.DR.Out02 OG.C.DR.Out03 OG.C.DR.Out04 OG.C.DR.Out05 OG.C.DR.Out06 OG.C.DR.Out07




Die structur EGEGHZGruppe wird von einen THRES gesteuert. Diese ist wie Du siehst an.
Aber das kommt nicht bei der HZ_ventileAll an

Dann hast du deine structure noch nicht richtig definiert. Du musst noch Attribute clientstate_behavior und ggf. clientstate_priority definieren, siehe dazu Commandref von structure.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: grogra am 01 November 2014, 10:45:11
vielen Dank für den Hinweis.

habe gerate bisschen mehr verstanden wie das Funk.. Muss mich erst mal mehr in die Funktion Structure einarbeiten..

Danke

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: DJ-Mix am 14 November 2014, 11:36:37
hallo Damian,

habe Problem mit THRESHOLD . . .
Internals:
   CFGFN      /opt/fhem/FHEM/zzzzzzz.cfg
   DEF        CUL_HM_HM_TC_IT_WM_W_EU_261CBF_Climate:desired-temp OR Temp_aussen:state:off |set heatingDG1 off;set heatingDG2 off|set heatingDG1 on;set heatingDG2 on|2
   NAME       fussbodenDG
   NR         989
   NTFY_ORDER 50-fussbodenDG
   STATE      initialized
   TYPE       THRESHOLD
   cmd1_gt    set heatingDG1 off;set heatingDG2 off
   cmd2_lt    set heatingDG1 on;set heatingDG2 on
   cmd_default 2
   hysteresis 0
   offset     0
   operator   OR
   sensor     CUL_HM_HM_TC_IT_WM_W_EU_261CBF_Climate
   sensor2    Temp_aussen
   sensor2_reading state
   sensor2_state off
   sensor_reading desired-temp
Attributes:
   number_format %.1f
   state_cmd1_gt of
   state_cmd2_lt on
   state_format _m _dv


Irgendwie mag die Heizung nicht anspringen . . .
AussenTemp habe ich bei unterschreitung von 16°C und die Temp vom Thermometer habe ich auf mind. 21°C stehen
Jetzt war der Raum jedoch auf 18°C abgekühlt und die AussenTemp liegt ja momentan weit unter 16°C :-(
Jedoch schaltet die Heizung nicht! Wenn ich jedoch am Thermometer die Temp auf 17°C einstelle, geht die Heizung an!?

Für mich habe ich jedoch verstanden, dass die Solltemp (21°C) sobald unterschritten die Heizung auf On stellt und bei überschreiten auf off - sofern die Aussentemp unter 16°C ist!
Oder habe ich da einen Denkfehler
Danke schon aml für deine Hilfe

gruß
Markus
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 November 2014, 14:20:38
Zitat von: DJ-Mix am 14 November 2014, 11:36:37
hallo Damian,

habe Problem mit THRESHOLD . . .
Internals:
   CFGFN      /opt/fhem/FHEM/zzzzzzz.cfg
   DEF        CUL_HM_HM_TC_IT_WM_W_EU_261CBF_Climate:desired-temp OR Temp_aussen:state:off |set heatingDG1 off;set heatingDG2 off|set heatingDG1 on;set heatingDG2 on|2
   NAME       fussbodenDG
   NR         989
   NTFY_ORDER 50-fussbodenDG
   STATE      initialized
   TYPE       THRESHOLD
   cmd1_gt    set heatingDG1 off;set heatingDG2 off
   cmd2_lt    set heatingDG1 on;set heatingDG2 on
   cmd_default 2
   hysteresis 0
   offset     0
   operator   OR
   sensor     CUL_HM_HM_TC_IT_WM_W_EU_261CBF_Climate
   sensor2    Temp_aussen
   sensor2_reading state
   sensor2_state off
   sensor_reading desired-temp
Attributes:
   number_format %.1f
   state_cmd1_gt of
   state_cmd2_lt on
   state_format _m _dv


Irgendwie mag die Heizung nicht anspringen . . .
AussenTemp habe ich bei unterschreitung von 16°C und die Temp vom Thermometer habe ich auf mind. 21°C stehen
Jetzt war der Raum jedoch auf 18°C abgekühlt und die AussenTemp liegt ja momentan weit unter 16°C :-(
Jedoch schaltet die Heizung nicht! Wenn ich jedoch am Thermometer die Temp auf 17°C einstelle, geht die Heizung an!?

Für mich habe ich jedoch verstanden, dass die Solltemp (21°C) sobald unterschritten die Heizung auf On stellt und bei überschreiten auf off - sofern die Aussentemp unter 16°C ist!
Oder habe ich da einen Denkfehler
Danke schon aml für deine Hilfe

gruß
Markus

Die logische Verknüpfung mit AND bzw. OR gilt immer für den cmd_gt-Fall, beim Heizen also off.
Das bedeutet: bei dir wird die Heizung ausgeschaltet, wenn die desired-Temp überschritten wird oder Temp_aussen auf off steht. Die logische Negation davon, also die Bedingung für das Einschalten der Heizung, heißt dann: desired-Temp wird unterschritten und Temp_aussen auf on.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: DJ-Mix am 14 November 2014, 15:59:30
habe es nun so umgesetzt . . .
für die Aussen_Temp
DEF
Temperatur_aussen:temperature:1:16|on

für das Thermometer
DEF
CUL_HM_HM_TC_IT_WM_W_EU_261CBF_Climate:desired-temp OR Temp_aussen:state:off |set heatingDG1 on;set heatingDG2 on|set heatingDG1 off;set heatingDG2 off|2


habe ich das so richtig verstanden?
Gruß
Markus
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 November 2014, 18:04:46
Zitat von: DJ-Mix am 14 November 2014, 15:59:30
habe es nun so umgesetzt . . .
für die Aussen_Temp
DEF
Temperatur_aussen:temperature:1:16|on

für das Thermometer
DEF
CUL_HM_HM_TC_IT_WM_W_EU_261CBF_Climate:desired-temp OR Temp_aussen:state:off |set heatingDG1 on;set heatingDG2 on|set heatingDG1 off;set heatingDG2 off|2


habe ich das so richtig verstanden?
Gruß
Markus
nein.

Es sollte entsprechend dem Beispiel in der commandref funktionieren:

define Temp_aussen THRESHOLD Temperatur_aussen:temperature:0:16

Damit sollte Temp_aussen on sein, wenn die Temperatur unter 16 Grad ist, sonst off.

Dann:

CUL_HM_HM_TC_IT_WM_W_EU_261CBF_Climate:desired-temp OR Temp_aussen:state:off |set heatingDG1 off;set heatingDG2 off|set heatingDG1 on;set heatingDG2 on|2


Damit wird geheizt, wenn Zimmertemperatur unter der desired-Vorgabe und Aussen unter 16 Grad (Temp_aussen = on).
Es wird nicht geheizt, wenn Zimmertemperatur über der desired-Vorgabe oder Aussen über 16 Grad (Temp_aussen = off).

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: DJ-Mix am 16 November 2014, 13:29:58
Hallo Damian,

so wie Du es vorschlägst, hatte ich es - damit funktioniert es leider nicht!?
wenn ich jedoch die Einstellung so wie von mir geschrieben vornehme, geht es.
Das heisst: Sobald ich das Thermometer einstelle geht die Heizung entsprechend an oder aus.

Wo kann den hier mein Fehler noch leigen?

Gruß
Markus
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 16 November 2014, 14:11:39
Zitat von: DJ-Mix am 16 November 2014, 13:29:58
Hallo Damian,

so wie Du es vorschlägst, hatte ich es - damit funktioniert es leider nicht!?
wenn ich jedoch die Einstellung so wie von mir geschrieben vornehme, geht es.
Das heisst: Sobald ich das Thermometer einstelle geht die Heizung entsprechend an oder aus.

Wo kann den hier mein Fehler noch leigen?

Gruß
Markus

In deinem letzten list <dein THRESHOLD-Modul> stand sensor2_state off, obwohl die Außen-Temperatur unter der definierten war. Da kann schon etwas nicht stimmen.

Als erstes muss das THRESHOLD zu Temperatur_aussen so funktionieren, wie ich es schon geschrieben habe.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: tekki am 21 November 2014, 18:53:07
Hallo Damian,

ich habe vor kurzem meine Heizungssteuerung auf Threshold und HeatinControl umgestellt. Damit bin ich bisher sehr zufrieden, nur schalten meine MAX! Fensterkontakte die zugeordneten Thermostate nicht mehr aus, sobald ein Fenster offen ist. Die MAX! Komponenten sind via einem LAN-Cube an FHEM angebunden. Die Thermostate sind im Modus manuell, da ich keine Abarbeitung via Wochenprogramm haben möchte.

Meine Frage:
kann ich bei diesem Beispiel:

define TH_WZ THRESHOLD TF_Wohnz OR TH_aussen:state:off HZ_W_Fe_li|set @ desiredTemperature off|set @ desiredTemperature on

mit einem weiteren OR noch einen Fensterkontakt abfragen?

Grüße
Ralph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 21 November 2014, 19:19:27
Zitat von: tekki am 21 November 2014, 18:53:07
Hallo Damian,

ich habe vor kurzem meine Heizungssteuerung auf Threshold und HeatinControl umgestellt. Damit bin ich bisher sehr zufrieden, nur schalten meine MAX! Fensterkontakte die zugeordneten Thermostate nicht mehr aus, sobald ein Fenster offen ist. Die MAX! Komponenten sind via einem LAN-Cube an FHEM angebunden. Die Thermostate sind im Modus manuell, da ich keine Abarbeitung via Wochenprogramm haben möchte.

Meine Frage:
kann ich bei diesem Beispiel:

define TH_WZ THRESHOLD TF_Wohnz OR TH_aussen:state:off HZ_W_Fe_li|set @ desiredTemperature off|set @ desiredTemperature on

mit einem weiteren OR noch einen Fensterkontakt abfragen?

Grüße
Ralph

Es gibt nur ein OR, du musst deine Fensterkontakte zu einer Structure zusammenfassen, siehe dazu Beispiel in der commandref von THRESHOLD.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: tekki am 21 November 2014, 19:47:07
Zitat von: Damian am 21 November 2014, 19:19:27
Es gibt nur ein OR, du musst deine Fensterkontakte zu einer Structure zusammenfassen, siehe dazu Beispiel in der commandref von THRESHOLD.

Gruß

Damian
Sorry mein Fehler mein Code sieht so aus, habe zwei Zeilen beim kopieren vergessen :-(
Ich kombiniere laut der commandref zwei Threshold-Module miteinander um dann mit HeatingControl einen Raum zu bestimmten Zeiten zu heizen.

define TH_aussen THRESHOLD KS300:temperature:0:15
define TH_WZ THRESHOLD TF_Wohnz OR TH_aussen:state:off HZ_W_Fe_li|set @ desiredTemperature off|set @ desiredTemperature on
define HC_WZ Heating_Control TH_WZ 12345|10:00|20 12345|16:30|21.5 12345|18:35|5 06|12:00|21.5 06|18:00|5 set @ desired %

Nun habe ich aber wie vorher beschrieben das Problem, dass meine Fensterkontakte die via LAN-Cube an die Thermostate gebunden sind beim öffnen eines Fenster nicht mehr die Thermostate schließen. Jetzt wäre mein Versuch über ein weiteres OR zur Aussentemperatur noch den Fensterkontakt abzufragen. Da Du mir ja schon gesagt hast, dass es nur ein OR im Threshold gibt, muss ich mir eine andere Lösung überlegen. Evtl. bekomme ich es mit DOIF in den Griff.

Danke Dir dennoch
Ralph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 22 November 2014, 08:37:53
Zitat von: tekki am 21 November 2014, 19:47:07
Sorry mein Fehler mein Code sieht so aus, habe zwei Zeilen beim kopieren vergessen :-(
Ich kombiniere laut der commandref zwei Threshold-Module miteinander um dann mit HeatingControl einen Raum zu bestimmten Zeiten zu heizen.

define TH_aussen THRESHOLD KS300:temperature:0:15
define TH_WZ THRESHOLD TF_Wohnz OR TH_aussen:state:off HZ_W_Fe_li|set @ desiredTemperature off|set @ desiredTemperature on
define HC_WZ Heating_Control TH_WZ 12345|10:00|20 12345|16:30|21.5 12345|18:35|5 06|12:00|21.5 06|18:00|5 set @ desired %

Nun habe ich aber wie vorher beschrieben das Problem, dass meine Fensterkontakte die via LAN-Cube an die Thermostate gebunden sind beim öffnen eines Fenster nicht mehr die Thermostate schließen. Jetzt wäre mein Versuch über ein weiteres OR zur Aussentemperatur noch den Fensterkontakt abzufragen. Da Du mir ja schon gesagt hast, dass es nur ein OR im Threshold gibt, muss ich mir eine andere Lösung überlegen. Evtl. bekomme ich es mit DOIF in den Griff.

Danke Dir dennoch
Ralph

Das geht dennoch mit nur einem OR. Dazu müsstest du TH_Aussen zusammen mit deinen Fenstern in eine Structure packen und so definieren, dass die Structure off ist wenn TH_Aussen off ist oder ein Fenster geöffnet.
Wenn dir die Definition der Structure zu kompliziert ist, dann kannst du alternativ das relativ einfach mit einem DOIF erledigen:

define di_heizung_aus DOIF ([KS300:temperature]>15 or [Fenster1] eq "open" or [Fenster2] eq "open"...)
attr di_heizung cmdstate off|on

define TH_WZ THRESHOLD TF_Wohnz OR di_heizung_aus:state:off HZ_W_Fe_li|set @ desiredTemperature off|set @ desiredTemperature on


Soviel ich weiß, gibt es keine Null für einen Wochentag bei Heating_Control. Du kannst die Zeitsteuerung, wie es in der aktuellen commandref zu THRESHOLD dargestellt ist, auch mit DOIF machen. Das unterstützt auch Arbeitstage und Wochenenden inkl. Feiertage, z. B.:

define di_wz DOIF ([10:00|8])
  (set TH_WZ desired 20)
DOELSEIF ([16:30|8] or [12:00|7])
  (set TH_WZ desired 21.5)
DOELSEIF ([18:35|8] or [18:00|7])
   (set TH_WZ desired 5)


Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: tekki am 22 November 2014, 12:58:08
Hallo Damian,

da ich es mit der Structure nicht hinbekommen habe, hab ich es jetzt mit Deiner Variante des DOIF umgesetzt. Ich teste es gerade noch, aber es sieht schon mal gut aus. Werde dann meine Steuerung umstellen.

Zum Wochentag 0 im Modul Heating_Control meine ich das es schon geht, da ich einige Angaben damit umgesetzt habe. Eine davon ist im Bad. Die schaltet am Sonntag aber wie gewollt.

Danke Dir für Deine Hilfe
Grüße
Ralph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: SpenZerX am 29 November 2014, 16:45:09
Hallo,

ich habe meine Fußbodenheizung auf FHEM umgestellt.

Zur Zeit nutze ich Threshold und Heating Control.
Es ergeben sich aktuell 2  Probleme.

Über Heating Control habe ich zeitabhängig den Offset verändert.
Fehler: Bei -Offset hat das funktioniert, bei 0 Offset oder positiven Offset jedoch nicht.
Frage: Gibt es eine Möglichkeit bei Heating Control und Offsetveränderung zu bleiben oder am besten DOIF Befehle?

Außerdem habe ich das Problem das alle Slider die ich für den Sollwert verwende nach einem Neustart des FHEM Systems mindestens einmal bewegt werden müssen. Gibt es ein Slider Konstrukt das in Verbindung mit Threshold und einem Neustart sofort mit einem definierbaren Sollwert startet? Bis manuell der Slider geändert wird.

Mein Code:



# Dummy zur Einstellung der Solltemperatur für Heizkreis EG.Badezimmer
define EG.Badezimmer.Desired.Temp dummy
attr EG.Badezimmer.Desired.Temp room EG.Badezimmer
attr EG.Badezimmer.Desired.Temp setList state:slider,12,1,25
attr EG.Badezimmer.Desired.Temp stateFormat state  °C
attr EG.Badezimmer.Desired.Temp webCmd state
define EG.Badezimmer.Desired.Temp.Changed notify EG.Badezimmer.Desired.Temp:.* {my $a=ReadingsVal ("EG.Badezimmer.Desired.Temp", "state","6");;{fhem "set EG.Badezimmer.Thermostat desired $a";;}}

# Threshold Regelung für Heizkreis EG.Badezimmer
define EG.Badezimmer.Thermostat THRESHOLD EG.Badezimmer.Raumsensor:Temperature:1:EG.Badezimmer.Desired.Temp|set Heizkreisverteiler EG.Badezimmer.Aus|set Heizkreisverteiler EG.Badezimmer.An
attr EG.Badezimmer.Thermostat room EG.Badezimmer
attr EG.Badezimmer.Thermostat state_format IST:_s1v SOLL:_dv _m _sc

# Nachtabsenkung durch Heating Control für Heizkreis EG.Badezimmer
define EG.Badezimmer.Heating.Control Heating_Control EG.Badezimmer.Thermostat 09:00|+1 10:00|0 11:00|-1 12:00|0 13:00|+1 22:00|-4 set @ offset %
attr EG.Badezimmer.Heating.Control room EG.Badezimmer


MFG
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 29 November 2014, 17:55:14
Zitat von: SpenZerX am 29 November 2014, 16:45:09
Hallo,

ich habe meine Fußbodenheizung auf FHEM umgestellt.

Zur Zeit nutze ich Threshold und Heating Control.
Es ergeben sich aktuell 2  Probleme.

Über Heating Control habe ich zeitabhängig den Offset verändert.
Fehler: Bei -Offset hat das funktioniert, bei 0 Offset oder positiven Offset jedoch nicht.
Frage: Gibt es eine Möglichkeit bei Heating Control und Offsetveränderung zu bleiben oder am besten DOIF Befehle?

Außerdem habe ich das Problem das alle Slider die ich für den Sollwert verwende nach einem Neustart des FHEM Systems mindestens einmal bewegt werden müssen. Gibt es ein Slider Konstrukt das in Verbindung mit Threshold und einem Neustart sofort mit einem definierbaren Sollwert startet? Bis manuell der Slider geändert wird.

Mein Code:



# Dummy zur Einstellung der Solltemperatur für Heizkreis EG.Badezimmer
define EG.Badezimmer.Desired.Temp dummy
attr EG.Badezimmer.Desired.Temp room EG.Badezimmer
attr EG.Badezimmer.Desired.Temp setList state:slider,12,1,25
attr EG.Badezimmer.Desired.Temp stateFormat state  °C
attr EG.Badezimmer.Desired.Temp webCmd state
define EG.Badezimmer.Desired.Temp.Changed notify EG.Badezimmer.Desired.Temp:.* {my $a=ReadingsVal ("EG.Badezimmer.Desired.Temp", "state","6");;{fhem "set EG.Badezimmer.Thermostat desired $a";;}}

# Threshold Regelung für Heizkreis EG.Badezimmer
define EG.Badezimmer.Thermostat THRESHOLD EG.Badezimmer.Raumsensor:Temperature:1:EG.Badezimmer.Desired.Temp|set Heizkreisverteiler EG.Badezimmer.Aus|set Heizkreisverteiler EG.Badezimmer.An
attr EG.Badezimmer.Thermostat room EG.Badezimmer
attr EG.Badezimmer.Thermostat state_format IST:_s1v SOLL:_dv _m _sc

# Nachtabsenkung durch Heating Control für Heizkreis EG.Badezimmer
define EG.Badezimmer.Heating.Control Heating_Control EG.Badezimmer.Thermostat 09:00|+1 10:00|0 11:00|-1 12:00|0 13:00|+1 22:00|-4 set @ offset %
attr EG.Badezimmer.Heating.Control room EG.Badezimmer


MFG

Nimm einfach DOIF, nebenbei kannst du einfach Arbeitstage und Wochenenden inkl. Feiertage angeben. Ich habe inzwischen alle Beispiele mit Zeitsteuerung in der commanderf zu THRESHOLD auf DOIF umgestellt.

Slider benutze ich nicht, daher keine Ahnung.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: juppzupp am 06 Dezember 2014, 16:00:40
Hallo Damian,

danke für Threshold. Ist seit ein paar Tagen im Einsatz. Du hattest irgendwo geschrieben, das du die Entwicklung ursprünglich für eine Fußbodenheizung vorgenommen hattest.
Mich würde mal Interessieren, wie Du hysteresis und offset bei Dir eingestellt hast ?
Neben der eigentlichen Trägheit der Fußbodenheizung hab thermoelektrische Stellantriebe, die auch eine gewisse Trägheit mit sich bringen.
Sieht bei mir so aus, das ich mit offset und hysteresis auf 0 trotzdem einen Nachlauf von 0,5-1,2° habe, ein Beispiel dazu im Anhang.
Ich frage mich gerade, ob man das nicht noch anders lösen könnte, z.b. während der Heizphase mit einem negativen offset, bei Abkühlung aber mit Punktladung.
Als Beispiel : 22 Grad eingestellt, während der Heizphase aber bei 21,5 stoppen, während bei sinkender Temperatur und nicht betätigtem Stelltrieb aber bei 21,9 zu schalten.

Danke und Gruß !
jupp

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 06 Dezember 2014, 16:27:16
Zitat von: juppzupp am 06 Dezember 2014, 16:00:40
Hallo Damian,

danke für Threshold. Ist seit ein paar Tagen im Einsatz. Du hattest irgendwo geschrieben, das du die Entwicklung ursprünglich für eine Fußbodenheizung vorgenommen hattest.
Mich würde mal Interessieren, wie Du hysteresis und offset bei Dir eingestellt hast ?
Neben der eigentlichen Trägheit der Fußbodenheizung hab thermoelektrische Stellantriebe, die auch eine gewisse Trägheit mit sich bringen.
Sieht bei mir so aus, das ich mit offset und hysteresis auf 0 trotzdem einen Nachlauf von 0,5-1,2° habe, ein Beispiel dazu im Anhang.
Ich frage mich gerade, ob man das nicht noch anders lösen könnte, z.b. während der Heizphase mit einem negativen offset, bei Abkühlung aber mit Punktladung.
Als Beispiel : 22 Grad eingestellt, während der Heizphase aber bei 21,5 stoppen, während bei sinkender Temperatur und nicht betätigtem Stelltrieb aber bei 21,9 zu schalten.

Danke und Gruß !
jupp
Das Verhalten hängt von vielen Faktoren ab: Vorlauftemperatur, Schlaufendichte, Isolation, Estrichdicke, Aussentemperatur usw. Ich habe bei mir 1 Grad Hysterese. Ich kann bei mir keinen nennenswerten Nachlauf erkennen. Bei mir läuft die Heizung auch nur morgens und abends. Dazu synchron wird die Solltemperatur eingestellt, damit die Stellantriebe nicht unnötig offen sind, wenn die Heizung gar nicht heizt. Wenn bei uns eine Schwankung von über einem Grad irgendwo in einem Zimmer entsteht, dann nicht durch Heizung, sondern weil jemand Fenster geöffnet hat, durch Sonneneinstrahlung oder wenn man ein paar Leute zu Besuch hat ;)

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: juppzupp am 06 Dezember 2014, 16:38:56
Zitat von: Damian am 06 Dezember 2014, 16:27:16
Das Verhalten hängt von vielen Faktoren ab: Vorlauftemperatur, Schlaufendichte, Isolation, Estrichdicke, Aussentemperatur usw....

Alles Faktoren, die ich nicht beeinflussen kann *g*

Ich werde mal die Thermostate tiefer anbringen, im Moment sind die auf cirka 180cm. mal schauen wie sich das verhält.

Merci!
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: juppzupp am 17 Dezember 2014, 16:36:41
Hi,

noch eine frage....wenn ich mit fenstersensoren arbeite.....gibt es die möglichkeit ein delay einzuarbeiten?
also im sinne von wenn fenster zu dann noch 900 sekunden warten bis threshold wieder anfängt zu regeln ?
umweg über nen dummy würde ich gerne vermeiden.


danke
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Dezember 2014, 19:55:53
Zitat von: juppzupp am 17 Dezember 2014, 16:36:41
Hi,

noch eine frage....wenn ich mit fenstersensoren arbeite.....gibt es die möglichkeit ein delay einzuarbeiten?
also im sinne von wenn fenster zu dann noch 900 sekunden warten bis threshold wieder anfängt zu regeln ?
umweg über nen dummy würde ich gerne vermeiden.


danke

... die Möglichkeit gibt es bestimmt, aber leider erst mal keine Zeit.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: HoTi am 08 Januar 2015, 10:31:20
Hallo zusammen,

ich stehe gerade voll auf dem Schlauch, kann mich mal jemand da runterschubsen?

Also ich habe da zu Test ein Dummy angelegt (so sind auch meien Rollos angelegt)

define fenster_dummy dummy
attr fenster_dummy alias Rollo Testfenster
attr fenster_dummy eventMap zu:shutter_closed auf:shutter_open
attr fenster_dummy group Rollos
attr fenster_dummy room Fenster/Türen
attr fenster_dummy webCmd zu:auf


Ich habe ausserdem ein Bewegunsgmelder der mir die Helligkeit mitteilt HM-Sen-MDIR-O heißt BM_Garage und der Wert steht bei brightness.

So nun soll der Dummy bei Werten von kleiner 120 runter fahren. Das ganze aber nur Abends, da ich morgens das Rollo bei einer betimmten Zeit hochfahren lasse. Da kann die Helligkeit aber noch unter 120 liegen.

Wie mache ich das nun? Ich habe es nun mal so angelegt
Zitatdefine Threshold_test THRESHOLD BM_Garage:brightness:120

Aber wie mach ich jetzt den Befehl dahinter am besten mit einer Zeitangabe (nur ausführen von 15 - 23Uhr)
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 08 Januar 2015, 18:42:52
Zitat von: RettungsTim am 08 Januar 2015, 10:31:20
Hallo zusammen,

ich stehe gerade voll auf dem Schlauch, kann mich mal jemand da runterschubsen?

Also ich habe da zu Test ein Dummy angelegt (so sind auch meien Rollos angelegt)

define fenster_dummy dummy
attr fenster_dummy alias Rollo Testfenster
attr fenster_dummy eventMap zu:shutter_closed auf:shutter_open
attr fenster_dummy group Rollos
attr fenster_dummy room Fenster/Türen
attr fenster_dummy webCmd zu:auf


Ich habe ausserdem ein Bewegunsgmelder der mir die Helligkeit mitteilt HM-Sen-MDIR-O heißt BM_Garage und der Wert steht bei brightness.

So nun soll der Dummy bei Werten von kleiner 120 runter fahren. Das ganze aber nur Abends, da ich morgens das Rollo bei einer betimmten Zeit hochfahren lasse. Da kann die Helligkeit aber noch unter 120 liegen.

Wie mache ich das nun? Ich habe es nun mal so angelegt
Aber wie mach ich jetzt den Befehl dahinter am besten mit einer Zeitangabe (nur ausführen von 15 - 23Uhr)
Hier:  http://fhem.de/commandref_DE.html#THRESHOLD

unter

Zeitgesteuertes Heizen mit Hilfe des DOIF-Moduls

ist ein Beispiel zum zeitgesteuerten Vorgeben des Schwellenwertes.

Oder besser gleich die Sache mit DOIF-Modul als Einzeiler erledigen. Dazu gibt es genügend Beispiele wie man zeit- und ereignisgesteuert etwas definiert. Siehe:

http://fhem.de/commandref_DE.html#DOIF

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Januar 2015, 21:58:07
Änderung im Modul.

set ... desired <value> aktiviert nicht mehr automatisch ein deaktiviertes THRESHOLD-Modul. Möchte man das bisherige Verhalten beibehalten, so muss man ein neues Attribut desiredActivate auf 1 setzen.

Neue Version ab morgen per Update.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Motivierte linke Hände am 19 Januar 2015, 00:57:26
Ich versuche, eine Meldung bei Überschreiten einer gewissen Raumtemperatur abzusetzen. Dabei habe ich 2 Probleme:

1. Der auszuführende Befehl enthält "|":

Funktioniert nicht:

define RaumZuWarm THRESHOLD Heizung_UG_Buero:measured-temp:1:23 |{fhem('set Pushbullet message Achtung, das Buero ist zu warm | Temperaturwarnung Büro | iPhone6')}

Fehlermeldung:

output of ThermostatZuWarm Thermostatwarnung @")}: Unknown command Thermostatwarnung, try help.

Funktioniert:

define RaumZuWarm THRESHOLD Heizung_UG_Buero:measured-temp:1:23 |{fhem('set Pushbullet message Temperaturwarnung Buero')}

D.h. das auszuführende Kommando wird - trotz Einschluss in ' (oder ") bei | abgeschnitten. Kann ich das Zeichen irgendwie... escapen?

2. Ich würde das gerne auf alle Räume/Thermostate ausweiten, aber das scheint auch nicht zu gehen:

define RaumZuWarm THRESHOLD .*:measured-temp:1:23 |{fhem('set Pushbullet message Temperaturwarnung @')}

Wo liegt mein Denkfehler?

Danke, Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Januar 2015, 08:20:21
Zitat von: Motivierte linke Hände am 19 Januar 2015, 00:57:26
Ich versuche, eine Meldung bei Überschreiten einer gewissen Raumtemperatur abzusetzen. Dabei habe ich 2 Probleme:

1. Der auszuführende Befehl enthält "|":

Funktioniert nicht:

define RaumZuWarm THRESHOLD Heizung_UG_Buero:measured-temp:1:23 |{fhem('set Pushbullet message Achtung, das Buero ist zu warm | Temperaturwarnung Büro | iPhone6')}

Fehlermeldung:

output of ThermostatZuWarm Thermostatwarnung @")}: Unknown command Thermostatwarnung, try help.

Funktioniert:

define RaumZuWarm THRESHOLD Heizung_UG_Buero:measured-temp:1:23 |{fhem('set Pushbullet message Temperaturwarnung Buero')}

D.h. das auszuführende Kommando wird - trotz Einschluss in ' (oder ") bei | abgeschnitten. Kann ich das Zeichen irgendwie... escapen?

2. Ich würde das gerne auf alle Räume/Thermostate ausweiten, aber das scheint auch nicht zu gehen:

define RaumZuWarm THRESHOLD .*:measured-temp:1:23 |{fhem('set Pushbullet message Temperaturwarnung @')}

Wo liegt mein Denkfehler?

Danke, Christian

Zu 1. Geht nur wenn, man die Befehle in eigene Funktion auslagert, Pipe lässt sich bei THRESHOLD nicht maskieren.

Zu 2. THRESHOLD Lässt sich mit * nicht generalisieren.

Gruß

Damian
Titel: HM-TC-IT-WM-W-EU mit THRESHOLD Aktor schalten
Beitrag von: Stefan Scholz am 22 Januar 2015, 10:31:38
Hallo,

nun will ich euch auch mal wieder um Hilfe bitten.

Mein HM-TC-IT-WM-W-EU ist mit zwei HM-CC-RT-DN gepeert. Nun möchte ich aber gleichzeitig mit dem Wandthermostat einen Aktor (Verdichter Wärmepumpe) schalten.
Da die Heizungsregelung bereits Tages- und Uhrzeitabhängig läuft, soll gleichzeitig zu dieser Regelung auch der Verdichter geschaltet werden (also soll ist-Regelung).

Dafür versuche ich das THRESHOLD Modul zu nutzen, was mir aber irgendwie nicht gelingt.

Definiert in der fhem.cfg ist es so
define EG_Wohn_WGT_Heiz THRESHOLD Wandthermostat_EG_Wohnzimmer_Weather:\
measured-temp:1:Wandthermostat_EG_Wohnzimmer_Climate:desired-temp WGT_heiz
attr EG_Wohn_WGT_Heiz number_format %.1f
attr EG_Wohn_WGT_Heiz room Heizungen
attr EG_Wohn_WGT_Heiz state_cmd1_gt off
attr EG_Wohn_WGT_Heiz state_cmd2_lt on
attr EG_Wohn_WGT_Heiz state_format _m _dv _sc


so erscheint THRESHOLD in der Weboberfläche
DEF
Wandthermostat_EG_Wohnzimmer_Weather:
measured-temp:1:Wandthermostat_EG_Wohnzimmer_Climate:desired-temp WGT_heiz
NAME
EG_Wohn_WGT_Heiz
NR
623
NTFY_ORDER
50-EG_Wohn_WGT_Heiz
STATE
initialized
TYPE
THRESHOLD
cmd1_gt
set WGT_heiz off
cmd2_lt
set WGT_heiz on
cmd_default
2
hysteresis
1
offset
0
sensor
Wandthermostat_EG_Wohnzimmer_Weather
sensor_reading
measured-temp
target_reading
desired-temp
target_sensor
Wandthermostat_EG_Wohnzimmer_Climate
Readings
cmd
wait for next cmd
2015-01-22 07:54:02
mode
external
2015-01-22 07:54:02


nun erhalte ich im Log folgende Meldung, und das alle par Minuten
2015.01.22 10:24:05 2: EG_Wohn_WGT_Heiz: no reading yet for Wandthermostat_EG_Wohnzimmer_Weather
measured-temp
2015.01.22 10:24:15 2: EG_Wohn_WGT_Heiz: no reading yet for Wandthermostat_EG_Wohnzimmer_Weather
measured-temp
2015.01.22 10:27:06 2: EG_Wohn_WGT_Heiz: no reading yet for Wandthermostat_EG_Wohnzimmer_Weather
measured-temp


Ich glaube, dass ich sicher einen totalen Denkfehler hier habe. Daher würde ich euch bitten mir da mal "Licht ins Dunkel" zu bringen.

Danke vorab.

Gruß Stefan

Edit: Erklärung vergessen.  WGT_heiz ist der zu schaltende Kanal eines HM-LC-SW4-BA-PCB
Titel: Antw:HM-TC-IT-WM-W-EU mit THRESHOLD Aktor schalten
Beitrag von: Damian am 22 Januar 2015, 16:59:51
Zitat von: Stefan 69 am 22 Januar 2015, 10:31:38

2015-01-22 07:54:02[/code]

nun erhalte ich im Log folgende Meldung, und das alle par Minuten
2015.01.22 10:24:05 2: EG_Wohn_WGT_Heiz: no reading yet for Wandthermostat_EG_Wohnzimmer_Weather
measured-temp
2015.01.22 10:24:15 2: EG_Wohn_WGT_Heiz: no reading yet for Wandthermostat_EG_Wohnzimmer_Weather
measured-temp
2015.01.22 10:27:06 2: EG_Wohn_WGT_Heiz: no reading yet for Wandthermostat_EG_Wohnzimmer_Weather
measured-temp



Die Meldung ist eindeutig und besagt, dass es kein Reading namens "measured-temp" vom Device "Wandthermostat_EG_Wohnzimmer_Weather" gibt.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Stefan Scholz am 22 Januar 2015, 18:32:26
Zitat
Die Meldung ist eindeutig und besagt, dass es kein Reading namens "measured-temp" vom Device "Wandthermostat_EG_Wohnzimmer_Weather" gibt.

Danke für den Hinweis. Leider hab ich momentan nicht den Plan wie ich es ändern könnte, daher auch mein Hilfegesuch hier im Forum.
Habe leider keine Beispiele für meine Konstellation gefunden. Muss ich jetzt noch zusätzlich den Channel mit angeben?

Gruß
Stefan


Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 22 Januar 2015, 20:00:13
Zitat von: Stefan 69 am 22 Januar 2015, 18:32:26
Danke für den Hinweis. Leider hab ich momentan nicht den Plan wie ich es ändern könnte, daher auch mein Hilfegesuch hier im Forum.
Habe leider keine Beispiele für meine Konstellation gefunden. Muss ich jetzt noch zusätzlich den Channel mit angeben?

Gruß
Stefan
Dann poste hier die Ausgabe von list <dein_Wandthermostat>

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Stefan Scholz am 22 Januar 2015, 20:23:40
Hallo Damian,

jetzt weis ich auch endlich wie Ihr immer zu diesem List kommt. Es ist einfach alles immer zu viel für "normale" Anwender. ;)

Internals:
   DEF        270FF1
   HMLAN1_MSGCNT 4
   HMLAN1_RAWMSG E270FF1,0000,028678FB,FF,FFC2,838410270FF10000000BB8E40E60
   HMLAN1_RSSI -62
   HMLAN1_TIME 2015-01-22 20:16:31
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     4
   NAME       Wandthermostat_EG_Wohnzimmer
   NR         523
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 Wandthermostat_EG_Wohnzimmer_Weather
   channel_02 Wandthermostat_EG_Wohnzimmer_Climate
   channel_03 Wandthermostat_EG_Wohnzimmer_WindowRec
   channel_06 Wandthermostat_EG_Wohnzimmer_remote
   channel_07 Wandthermostat_EG_Wohnzimmer_SwitchTr
   lastMsg    No:F5 - t:70 s:270FF1 d:000000 00E432
   protLastRcv 2015-01-22 20:18:55
   rssi_at_HMLAN1 avg:-59.28 min:-63 max:-56 lst:-61 cnt:25
   Readings:
     2015-01-22 19:52:26   Activity        alive
     2015-01-20 21:00:58   CommandAccepted yes
     2015-01-07 18:16:31   D-firmware      1.0
     2015-01-07 18:16:31   D-serialNr      LEQ0080401
     2014-11-16 18:13:05   PairedTo        0xCC682C
     2014-11-16 18:13:05   R-btnLock       off
     2014-11-16 18:13:05   R-burstRx       on
     2014-11-16 18:13:05   R-cyclicInfoMsg on
     2014-11-16 18:13:05   R-cyclicInfoMsgDis 0
     2014-11-16 18:13:05   R-globalBtnLock off
     2014-11-16 18:13:05   R-localResDis   off
     2014-11-16 15:41:45   R-lowBatLimitRT 2.2 V
     2014-11-16 18:13:05   R-modusBtnLock  off
     2014-11-16 18:13:05   R-pairCentral   0xCC682C
     2014-11-16 18:13:05   RegL_00:        01:01 02:01 09:01 0A:CC 0B:68 0C:2C 0F:00 11:00  12:16 16:00 18:00 19:00 1A:00 00:00
     2014-11-17 07:26:26   RegL_07:        0
     2015-01-22 20:16:31   batteryLevel    2.9
     2015-01-22 20:16:31   desired-temp    23.0
     2015-01-22 20:16:31   measured-temp   22.8
     2015-01-22 18:50:00   state           CMDs_done
     2015-01-22 00:36:58   time-request    -
   Helper:
     mId        00AD
     rxType     6
     Io:
       newChn     +270FF1,00,01,00
       nextSend   1421954335.84706
       prefIO
       rxt        0
       vccu
       p:
         270FF1
         00
         01
         00
     Mrssi:
       mNo        F5
       Io:
         HMLAN1     -59
     Prt:
       bErr       0
       sProc      0
     Q:
       qReqConf
       qReqStat
     Role:
       dev        1
     Rssi:
       At_hmlan1:
         avg        -59.28
         cnt        25
         lst        -61
         max        -56
         min        -63
     Shregw:
       07         02
Attributes:
   IODev      HMLAN1
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   1.0
   model      HM-TC-IT-WM-W-EU
   msgRepeat  1
   room       Heizungen
   serialNr   LEQ0080401
   subType    thermostat
   webCmd     getConfig


Gruß
Stefan
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 22 Januar 2015, 20:32:30
Zitat von: Stefan 69 am 22 Januar 2015, 20:23:40
Hallo Damian,

jetzt weis ich auch endlich wie Ihr immer zu diesem List kommt. Es ist einfach alles immer zu viel für "normale" Anwender. ;)

Internals:
   DEF        270FF1
   HMLAN1_MSGCNT 4
   HMLAN1_RAWMSG E270FF1,0000,028678FB,FF,FFC2,838410270FF10000000BB8E40E60
   HMLAN1_RSSI -62
   HMLAN1_TIME 2015-01-22 20:16:31
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     4
   NAME       Wandthermostat_EG_Wohnzimmer
   NR         523
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 Wandthermostat_EG_Wohnzimmer_Weather
   channel_02 Wandthermostat_EG_Wohnzimmer_Climate
   channel_03 Wandthermostat_EG_Wohnzimmer_WindowRec
   channel_06 Wandthermostat_EG_Wohnzimmer_remote
   channel_07 Wandthermostat_EG_Wohnzimmer_SwitchTr
   lastMsg    No:F5 - t:70 s:270FF1 d:000000 00E432
   protLastRcv 2015-01-22 20:18:55
   rssi_at_HMLAN1 avg:-59.28 min:-63 max:-56 lst:-61 cnt:25
   Readings:
     2015-01-22 19:52:26   Activity        alive
     2015-01-20 21:00:58   CommandAccepted yes
     2015-01-07 18:16:31   D-firmware      1.0
     2015-01-07 18:16:31   D-serialNr      LEQ0080401
     2014-11-16 18:13:05   PairedTo        0xCC682C
     2014-11-16 18:13:05   R-btnLock       off
     2014-11-16 18:13:05   R-burstRx       on
     2014-11-16 18:13:05   R-cyclicInfoMsg on
     2014-11-16 18:13:05   R-cyclicInfoMsgDis 0
     2014-11-16 18:13:05   R-globalBtnLock off
     2014-11-16 18:13:05   R-localResDis   off
     2014-11-16 15:41:45   R-lowBatLimitRT 2.2 V
     2014-11-16 18:13:05   R-modusBtnLock  off
     2014-11-16 18:13:05   R-pairCentral   0xCC682C
     2014-11-16 18:13:05   RegL_00:        01:01 02:01 09:01 0A:CC 0B:68 0C:2C 0F:00 11:00  12:16 16:00 18:00 19:00 1A:00 00:00
     2014-11-17 07:26:26   RegL_07:        0
     2015-01-22 20:16:31   batteryLevel    2.9
     2015-01-22 20:16:31   desired-temp    23.0
     2015-01-22 20:16:31   measured-temp   22.8
     2015-01-22 18:50:00   state           CMDs_done
     2015-01-22 00:36:58   time-request    -
   Helper:
     mId        00AD
     rxType     6
     Io:
       newChn     +270FF1,00,01,00
       nextSend   1421954335.84706
       prefIO
       rxt        0
       vccu
       p:
         270FF1
         00
         01
         00
     Mrssi:
       mNo        F5
       Io:
         HMLAN1     -59
     Prt:
       bErr       0
       sProc      0
     Q:
       qReqConf
       qReqStat
     Role:
       dev        1
     Rssi:
       At_hmlan1:
         avg        -59.28
         cnt        25
         lst        -61
         max        -56
         min        -63
     Shregw:
       07         02
Attributes:
   IODev      HMLAN1
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   1.0
   model      HM-TC-IT-WM-W-EU
   msgRepeat  1
   room       Heizungen
   serialNr   LEQ0080401
   subType    thermostat
   webCmd     getConfig


Gruß
Stefan

Dein Device heißt :

NAME       Wandthermostat_EG_Wohnzimmer

und dein Reading:

     2015-01-22 20:16:31   measured-temp   22.8

also einfach angeben:

define EG_Wohn_WGT_Heiz THRESHOLD Wandthermostat_EG_Wohnzimmer:measured-temp:1:Wandthermostat_EG_Wohnzimmer:desired-temp WGT_heiz


Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Stefan Scholz am 22 Januar 2015, 21:04:48
Hallo Damian,

so hatte ich es auch erst, aber es ging nicht.

Habe jetzt deinen Code kopiert und schwupps geht es.  Scheinbar hatte ich doch irgendwo eine Kleinigkeit übersehen.

Jedenfalls VIELEN DANK!

Werde mich morgen mal noch an einer Erweiterung versuchen, da nur geschaltet werden darf, wenn die Wärmepumpe  überhaupt an ist. Anderenfalls würde das Relais ständig unnütz schalten.

Wenn ich nicht klar komme, würde ich nochmal nerven.

Gruß
Stefan
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 22 Januar 2015, 21:30:37
Zitat von: Stefan 69 am 22 Januar 2015, 21:04:48
Hallo Damian,

so hatte ich es auch erst, aber es ging nicht.


Das wird dir immer passieren nach dem Neustart, wenn du in der cfg-Datei THRESHOLD vor deinem Wandthermostat definiert hast.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Stefan Scholz am 23 Januar 2015, 18:56:09
Zitat von: Damian am 22 Januar 2015, 21:30:37
Das wird dir immer passieren nach dem Neustart, wenn du in der cfg-Datei THRESHOLD vor deinem Wandthermostat definiert hast.

Gruß

Damian

Hallo Damian,

sowas hatte ich hier ja auch schon gelesen, war mir aber nicht richtig klar geworden. Nun kann ich damit auch was anfangen ;)

Hab aber doch noch eine frage:
Habe heute mehrmals den Hysterese Wert geändert (die 1 Grad sind mir zu viel). Trotz Save config wird der Wert nach einem shutdown restart nicht gespeichert, dann steht er wieder auf 1.
Solange kein Neustart gemacht wird, bleibt der Wert jedoch erhalten. hatte 0.2 Grad eingestellt.

Gruß
Stefan
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 23 Januar 2015, 19:30:36
Zitat von: Stefan 69 am 23 Januar 2015, 18:56:09
Hallo Damian,

sowas hatte ich hier ja auch schon gelesen, war mir aber nicht richtig klar geworden. Nun kann ich damit auch was anfangen ;)

Hab aber doch noch eine frage:
Habe heute mehrmals den Hysterese Wert geändert (die 1 Grad sind mir zu viel). Trotz Save config wird der Wert nach einem shutdown restart nicht gespeichert, dann steht er wieder auf 1.
Solange kein Neustart gemacht wird, bleibt der Wert jedoch erhalten. hatte 0.2 Grad eingestellt.

Gruß
Stefan

Wenn du THRESHOLD per Weboberfläche definierst und nicht in der cfg-Datei manuell einträgst, dann kannst du nicht viel falsch machen, da dann das Modul hinten angehängt wird.

Hysterese gibst du doch in der Definition an, hier für 0,5 Grad:

define EG_Wohn_WGT_Heiz THRESHOLD Wandthermostat_EG_Wohnzimmer:measured-temp:0.5:Wandthermostat_EG_Wohnzimmer:desired-temp WGT_heiz

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Stefan Scholz am 23 Januar 2015, 19:39:48
Hallo Damian,

das ist es was ich meine. Irgendwie übersehe ich immer irgend was.
Nun ist mir auch klar, wofür die 1 in dem Code steht. Sorry wegen dieser blöden Frage.

Es ist halt manchmal alles zu viel, aber dafür gibt es ja zum Glück meist netten Support  :D

DANKE Gruß Stefan
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Stefan Scholz am 25 Januar 2015, 13:01:23
Ich schon wieder, Hallo!

Also bis her hat das ja super funktioniert. Wie aber schon mal angekündigt, möchte ich jedoch nur schalten, wenn diese Wärmepumpe überhaupt an ist.
Die gefundenen Beispiele sind soweit mit der OR Verknüpfung, das steht doch vor "oder"? Da ich jedoch UND brauche, also AND, hab ich den Code mal wie folgt abgeändert:

Dieses WGT_Luft ist die eigentliche Wärmepumpe. Also nur wenn WGT_Luft on ist soll THERSHOLD dieses WGT_heiz überhaupt regeln.
define EG_Wohn_WGT_Heiz THRESHOLD Wandthermostat_EG_Wohnzimmer:measured-temp:0.2:Wandthermostat_EG_Wohnzimmer:desired-temp AND WGT_Luft:state:on WGT_heiz


Irgendwie scheint THRESHOLD ja auch den State zu erkennen, aber schalten will er nicht mehr.

DEF 
Wandthermostat_EG_Wohnzimmer:measured-temp:0.2:Wandthermostat_EG_Wohnzimmer:desired-temp AND WGT_Luft:state:on WGT_heiz

NAME                    EG_Wohn_WGT_Heiz

NR                        619

NTFY_ORDER         50-EG_Wohn_WGT_Heiz


STATE                   external 22.0 on


TYPE                     THRESHOLD

cmd1_gt               set WGT_heiz off

cmd2_lt                set WGT_heiz on

cmd_default          2

hysteresis             0.2

offset                   0

Operator              AND

sensor                 Wandthermostat_EG_Wohnzimmer

sensor2               WGT_Luft

sensor2_reading  state

sensor2_state      on

sensor_reading    measured-temp

target_reading     desired-temp

target_sensor      Wandthermostat_EG_Wohnzimmer



Hatte es auch mal mit einer if-Bedingung versucht, aber das ging total schief.

Würde mich da bitte nochmal jemand mit dem Zaunpfahl auf den richtigen Weg bringen?

Gruß Stefan
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 Januar 2015, 13:30:57
Zitat von: Stefan 69 am 25 Januar 2015, 13:01:23
Ich schon wieder, Hallo!

Also bis her hat das ja super funktioniert. Wie aber schon mal angekündigt, möchte ich jedoch nur schalten, wenn diese Wärmepumpe überhaupt an ist.
Die gefundenen Beispiele sind soweit mit der OR Verknüpfung, das steht doch vor "oder"? Da ich jedoch UND brauche, also AND, hab ich den Code mal wie folgt abgeändert:

Dieses WGT_Luft ist die eigentliche Wärmepumpe. Also nur wenn WGT_Luft on ist soll THERSHOLD dieses WGT_heiz überhaupt regeln.
define EG_Wohn_WGT_Heiz THRESHOLD Wandthermostat_EG_Wohnzimmer:measured-temp:0.2:Wandthermostat_EG_Wohnzimmer:desired-temp AND WGT_Luft:state:on WGT_heiz


Irgendwie scheint THRESHOLD ja auch den State zu erkennen, aber schalten will er nicht mehr.

Hatte es auch mal mit einer if-Bedingung versucht, aber das ging total schief.

Die Möglichkeiten Bedingungen bei THRESHOLD anzugeben sind recht beschränkt. Gemeint ist dabei immer, dass wenn die verknüpfte Bedingung wahr ist, das Kommando cmd_gt ausgelöst wird.

Konkret bei dir bedeutet das: wenn measured-temp>desired-temp und wgt_luft:state=on dann cmd1_gt also Heizung off.

Umgekehrt bedeutet das für das Einschalten der Heizung:

measured-temp<(desired-temp - hysterese) or wgt_luft:state!=on dann cmd2_lt also Heizung on

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Stefan Scholz am 25 Januar 2015, 18:56:39
Hallo Damian,

danke für den Support.

habe den Code jetzt so geändert:
Wandthermostat_EG_Wohnzimmer:measured-temp:0.1:Wandthermostat_EG_Wohnzimmer:desired-temp OR WGT_Luft:state!=on WGT_heiz

Es schaltet jedoch nix. weder mit diesem WGT_Luft noch ohne. Das Ausrufezeichen negiert doch den Wert, muss das evtl. weg?

gruß
Stefan
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 25 Januar 2015, 20:57:38
Zitat von: Stefan 69 am 25 Januar 2015, 18:56:39
Hallo Damian,

danke für den Support.

habe den Code jetzt so geändert:
Wandthermostat_EG_Wohnzimmer:measured-temp:0.1:Wandthermostat_EG_Wohnzimmer:desired-temp OR WGT_Luft:state!=on WGT_heiz

Es schaltet jedoch nix. weder mit diesem WGT_Luft noch ohne. Das Ausrufezeichen negiert doch den Wert, muss das evtl. weg?

gruß
Stefan

!= war nur als Ungleichheit symbolisch gemeint.

Bei THRESHOLD kannst du nur auf "gleich" abfragen, dann eher so:

Wandthermostat_EG_Wohnzimmer:measured-temp:0.1:Wandthermostat_EG_Wohnzimmer:desired-temp OR WGT_Luft:state:off WGT_heiz

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Stefan Scholz am 26 Januar 2015, 20:48:44
Hallo Damian,

also heute hat alles bis jetzt super funktioniert.

DANKE für die Hilfe! Ihr macht einen super Job!

Viele Grüße
Stefan
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Christian72D am 18 Februar 2015, 19:58:27
Ich habe jetzt nur die ersten und letzten drei Seiten gelesen, leider werde ich aus dem Modul nicht so recht schlau.

Bei mir kann ich den Heizkessel über einen HM-LC-SW1-FM (genannt "Heizung") komplett ausschalten.
Zudem habe ich im Garten einen HM-WDS10-TH-O (genannt "TempFeuchte") sitzen.

Wie bekomme ich es jetzt hin daß die Heizungsanlage bei 20° Außentemperatur komplett abgeschaltet und bei 19° wieder eingeschaltet wird?
Oder gibts da eine bessere Lösung für?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Februar 2015, 08:38:10
Zitat von: Christian72D am 18 Februar 2015, 19:58:27
Ich habe jetzt nur die ersten und letzten drei Seiten gelesen, leider werde ich aus dem Modul nicht so recht schlau.

Bei mir kann ich den Heizkessel über einen HM-LC-SW1-FM (genannt "Heizung") komplett ausschalten.
Zudem habe ich im Garten einen HM-WDS10-TH-O (genannt "TempFeuchte") sitzen.

Wie bekomme ich es jetzt hin daß die Heizungsanlage bei 20° Außentemperatur komplett abgeschaltet und bei 19° wieder eingeschaltet wird?
Oder gibts da eine bessere Lösung für?

Die Dokumentation zum Modul schon gelesen?

http://fhem.de/commandref_DE.html#THRESHOLD

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Christian72D am 19 Februar 2015, 08:58:12
Ja klar, ich denke diese Zeile kommt meiner Sache am nächsten:

define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1

Auf meinen Fall würde ich es jetzt schon mal SO übersetzen:

define thermostat THRESHOLD sensor |set Heizung on|set Heizung off|1

Aber was genau trage ich dort für "sensor" ein?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Februar 2015, 10:36:32
Zitat von: Christian72D am 19 Februar 2015, 08:58:12
Ja klar, ich denke diese Zeile kommt meiner Sache am nächsten:

define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1

Auf meinen Fall würde ich es jetzt schon mal SO übersetzen:

define thermostat THRESHOLD sensor |set Heizung on|set Heizung off|1

Aber was genau trage ich dort für "sensor" ein?

<sensor> ist ein Platzhalter für das Device, welches die Temperatur im Reading "temperature" liefert.

bei dir wäre es dann, wenn dein HM-Device im Reading "temperatur"die Temperatur liefert:

define thermostat THRESHOLD <dein HM-Device> <dein HM-Heizungsswitch>

und dann musst du die Vorgabetemperatur wählen:

set thermostat desired 20

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Christian72D am 19 Februar 2015, 13:07:56
DAS ist ja jetzt die Frage: liefert mir der HM-WDS10-TH-O direkt die Temperatur? Er hat ja auch die Feuchte.

Also brauche ich den Teil mit "set xxx" alles nicht?

Also sollte das mit:

define thermostat THRESHOLD TempFeuchte Heizung

schon funktionieren?

Und dann direkt dahinter die "1" für die Hysterese?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Februar 2015, 13:51:05
Zitat von: Christian72D am 19 Februar 2015, 13:07:56
DAS ist ja jetzt die Frage: liefert mir der HM-WDS10-TH-O direkt die Temperatur? Er hat ja auch die Feuchte.

Also brauche ich den Teil mit "set xxx" alles nicht?

Also sollte das mit:

define thermostat THRESHOLD TempFeuchte Heizung

schon funktionieren?

Und dann direkt dahinter die "1" für die Hysterese?

Ob der  HM-WDS10-TH-O das Reading temperature hat oder nicht musst du nachschauen - ich habe den nicht.

Wenn du keine Temperaturvorgabe mit set ... desired ... machst, kann das Ding auch nichts steuern. Die Hysterese ist auf 1 Grad per default voreingestellt.

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Christian72D am 19 Februar 2015, 14:41:26
Ja klar, die Temperatur muß ich noch vorgeben, das war jetzt verständlich.
Der Temperatur/Feuchte Sensor hat ein "temperature" reading, also sollte es wohl klappen.
Heute Abend dann mal ausprobieren, im Moment habe ich den Fernzugriff nicht.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Christian72D am 19 Februar 2015, 19:51:38
Klasse, scheint zu funktionieren!

Jetzt noch eine Frage, in der Doku ist folgende zeile zu finden:

define di_room DOIF ([05:30-23:00|8] or [07:00-23:00|7]) (set TH_room desired 20) DOELSE (set TH_room desired 18)

Das habe ich auch überlegt später mal zu nutzen.
Allerdings weiß ich nicht was das "|8" bzw. das "|7" bedeutet. Hat das was mit den Wochentagen zu tun?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Februar 2015, 20:04:36
Zitat von: Christian72D am 19 Februar 2015, 19:51:38
Klasse, scheint zu funktionieren!

Jetzt noch eine Frage, in der Doku ist folgende zeile zu finden:

define di_room DOIF ([05:30-23:00|8] or [07:00-23:00|7]) (set TH_room desired 20) DOELSE (set TH_room desired 18)

Das habe ich auch überlegt später mal zu nutzen.
Allerdings weiß ich nicht was das "|8" bzw. das "|7" bedeutet. Hat das was mit den Wochentagen zu tun?

All das kannst du immer in der Commandref des jeweiligen Moduls finden, hier: http://fhem.de/commandref_DE.html#DOIF

Dort steht, dass 8 Arbeitstage bedeutet und 7 Wochenende und Feiertage.

Gruß

Damian


Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bitex am 26 Februar 2015, 22:41:47
Hallo Damian, hallo forum,

mein TRESHOLD schaltet nicht und ich weiß nicht warum...

Ziel ist eine steuerung des Fußbodnheizung (12 Kreise - 230V Stellantriebe) alles in HM -Hardware.

jetzt par list's:

aus fhem.cfg

# THRESHOLD commands

define reg_Alina THRESHOLD t_H_Alina motor_Alina
attr reg_Alina number_format %.1f
attr reg_Alina room Alina
attr reg_Alina state_cmd1_gt off
attr reg_Alina state_cmd2_lt on
attr reg_Alina state_format _m _dv _sc


list t_H_Alina

Internals:
   DEF        20127601
   NAME       t_H_Alina
   NR         95
   STATE      T: 21.9 H: 50
   TYPE       CUL_HM
   chanNo     01
   device     birou_Alina
   Readings:
     2015-02-26 22:32:18   humidity        50
     2015-02-26 22:32:18   measured-temp   21.9
     2015-02-26 22:32:18   state           T: 21.9 H: 50
   Helper:
     getCfgListNo
     Role:
       chn        1
Attributes:
   model      HM-CC-TC
   peerIDs
   room       Alina

list motor_Alina

Internals:
   DEF        26727C02
   NAME       motor_Alina
   NR         142
   STATE      off
   TYPE       CUL_HM
   chanNo     02
   device     receptor_1_parter
   peerList   t_H_Alina,
   Readings:
     2015-02-26 21:10:46   CommandAccepted yes
     2015-02-23 00:06:13   R-sign          off
     2015-02-23 00:06:14   R-t_H_Alina-lgActionType jmpToTarget
     2015-02-23 00:06:14   R-t_H_Alina-lgCtDlyOff geLo
     2015-02-23 00:06:14   R-t_H_Alina-lgCtDlyOn geLo
     2015-02-23 00:06:14   R-t_H_Alina-lgCtOff geLo
     2015-02-23 00:06:14   R-t_H_Alina-lgCtOn geLo
     2015-02-23 00:06:14   R-t_H_Alina-lgCtValHi 100
     2015-02-23 00:06:14   R-t_H_Alina-lgCtValLo 50
     2015-02-23 00:06:14   R-t_H_Alina-lgMultiExec on
     2015-02-13 19:27:08   R-t_H_Alina-lgOffDly 0 s
     2015-02-13 19:27:08   R-t_H_Alina-lgOffTime unused
     2015-02-23 00:06:14   R-t_H_Alina-lgOffTimeMode absolut
     2015-02-13 19:27:08   R-t_H_Alina-lgOnDly 0 s
     2015-02-13 19:27:08   R-t_H_Alina-lgOnTime unused
     2015-02-23 00:06:14   R-t_H_Alina-lgOnTimeMode absolut
     2015-02-23 00:06:14   R-t_H_Alina-lgSwJtDlyOff on
     2015-02-23 00:06:14   R-t_H_Alina-lgSwJtDlyOn on
     2015-02-23 00:06:14   R-t_H_Alina-lgSwJtOff dlyOn
     2015-02-23 00:06:14   R-t_H_Alina-lgSwJtOn on
     2015-02-23 00:06:14   R-t_H_Alina-shActionType jmpToTarget
     2015-02-23 00:06:14   R-t_H_Alina-shCtDlyOff geLo
     2015-02-23 00:06:14   R-t_H_Alina-shCtDlyOn geLo
     2015-02-23 00:06:14   R-t_H_Alina-shCtOff geLo
     2015-02-23 00:06:14   R-t_H_Alina-shCtOn geLo
     2015-02-23 00:06:14   R-t_H_Alina-shCtValHi 100
     2015-02-23 00:06:14   R-t_H_Alina-shCtValLo 50
     2015-02-13 19:27:08   R-t_H_Alina-shOffDly 0 s
     2015-02-13 19:27:08   R-t_H_Alina-shOffTime unused
     2015-02-23 00:06:14   R-t_H_Alina-shOffTimeMode absolut
     2015-02-13 19:27:08   R-t_H_Alina-shOnDly 0 s
     2015-02-13 19:27:08   R-t_H_Alina-shOnTime unused
     2015-02-23 00:06:14   R-t_H_Alina-shOnTimeMode absolut
     2015-02-23 00:06:14   R-t_H_Alina-shSwJtDlyOff on
     2015-02-23 00:06:14   R-t_H_Alina-shSwJtDlyOn on
     2015-02-23 00:06:14   R-t_H_Alina-shSwJtOff dlyOn
     2015-02-23 00:06:14   R-t_H_Alina-shSwJtOn on
     2015-02-23 00:06:13   RegL_01:        08:00 00:00
     2015-02-23 00:06:14   RegL_03:t_H_Alina 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:13 0C:33 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:13 8C:33 00:00
     2015-02-26 21:10:46   deviceMsg       off (to HMLAN1)
     2015-02-26 21:10:46   level           0
     2015-02-26 21:10:46   pct             0
     2015-02-26 20:54:34   peerList        t_H_Alina,
     2015-02-26 21:10:46   recentStateType ack
     2015-02-26 21:10:46   state           off
     2015-02-26 21:10:46   timedOn         off
   Helper:
     dlvlCmd    ++A01125740F26727C0202000000
     Role:
       chn        1
       prs        1
Attributes:
   model      HM-LC-SW4-DR
   peerIDs    00000000,20127601,
   room       Alina
   webCmd     statusRequest:toggle:on:off

list reg_Alina
Internals:
   DEF        t_H_Alina motor_Alina
   NAME       reg_Alina
   NR         232
   NTFY_ORDER 50-reg_Alina
   STATE      initialized
   TYPE       THRESHOLD
   cmd1_gt    set motor_Alina off
   cmd2_lt    set motor_Alina on
   cmd_default 2
   hysteresis 1
   offset     0
   sensor     t_H_Alina
   sensor_reading temperature
   Readings:
     2015-02-26 21:11:36   cmd             wait for next cmd
     2015-02-26 21:11:36   desired_value   25
     2015-02-26 21:11:36   mode            active
     2015-02-26 21:11:36   state           initialized
     2015-02-26 21:11:36   threshold_max   25
     2015-02-26 21:11:36   threshold_min   24
Attributes:
   number_format %.1f
   room       Alina
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv _sc

Grüß,
Gabriel
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 26 Februar 2015, 22:56:09
t_H_Alina hat keinen temperature Reading. temperature ist bei THRESHOLD der default-Reading des Sensors. Willst du einen anderen haben, musst du das bei der Definition angeben. t_H_Alina hat measured-temp.

also:

define reg_Alina THRESHOLD t_H_Alina:measured-temp motor_Alina


siehe Commandref zu THRESHOLD ;)

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bitex am 27 Februar 2015, 10:10:44
Danke,danke,danke!

Btw. Dein TRESHOLD is super.

Grüß,
Gabriel
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Cihan am 02 März 2015, 01:34:56
Hallo Damian funktioniert Threshold mit presence? So in etwa?

define Thermostat Threshold temp1 OR handy:state:present ausgang

edit: klappt vorzüglich. Jetzt funktioniert die Heizung nur wenn ich anwesend bin
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Cybers am 09 April 2015, 15:52:04
Hallo,

ich habe THRESHOLD wie folgt definiert:

##### Routine Solltemperatur/Raumtemperatur #####

define TH_Heizung THRESHOLD Durchschnittstemperatur_Haus:state:1:Solltemperatur:solltemperatur OR TH_outdoor:state:off Heizungsschalter
attr TH_Heizung room Heizung

##### Routine Ausschalttemperatur Außen #####

define TH_outdoor THRESHOLD Temperatur_Aktuell:state:0:15
attr TH_outdoor room Heizung
attr TH_outdoor state_cmd1_gt off
attr TH_outdoor state_cmd2_lt on
attr TH_outdoor state_format _sc


Dann bekomme ich aber diese Fehlermeldung:
TH_Heizung: Unknown sensor2 device TH_outdoor specified

Der Fehler tritt ohne OR TH_outdoor:state:off nicht auf.

Was kann das sein?

Gruß, Sascha
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 09 April 2015, 16:12:10
Zitat von: Cybers am 09 April 2015, 15:52:04
Hallo,

ich habe THRESHOLD wie folgt definiert:

##### Routine Solltemperatur/Raumtemperatur #####

define TH_Heizung THRESHOLD Durchschnittstemperatur_Haus:state:1:Solltemperatur:solltemperatur OR TH_outdoor:state:off Heizungsschalter
attr TH_Heizung room Heizung

##### Routine Ausschalttemperatur Außen #####

define TH_outdoor THRESHOLD Temperatur_Aktuell:state:0:15
attr TH_outdoor room Heizung
attr TH_outdoor state_cmd1_gt off
attr TH_outdoor state_cmd2_lt on
attr TH_outdoor state_format _sc


Dann bekomme ich aber diese Fehlermeldung:
TH_Heizung: Unknown sensor2 device TH_outdoor specified

Der Fehler tritt ohne OR TH_outdoor:state:off nicht auf.

Was kann das sein?

Gruß, Sascha

Du hast wahrscheinlich in der cfg editiert und da steht Definition des Threshold-Moduls vor der Definition von TH_outdoor. Entweder in der cfg die Reihenfolge tauschen oder über DEF-Editor die Definitionen Löschen und entsprechen neu definieren.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Cybers am 09 April 2015, 17:50:31
Danke, das war der Fehler. Habe es in der CFG getauscht.

Gruß, Sascha
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Phill am 19 Mai 2015, 09:50:49
Hallo, ich hätte da mal eine Frage. Ist zwar nicht 100% das richtige Thema aber ich habe das gefühl hier lesen die richtigen Leute mit!  ;)

Ich werde bald im Neubau eine Fussbodenheizung realisieren. Und habe mich in den letzten Tagen mit dem Thema Fussbodenheizung beschäftigt. Und jetzt bin ich als Automatisierungstechniker wahrhaft geschockt, das so eine Fussbodenheizung lediglich mit einem 2-Punktregler geregelt werden kann.

Mich würde sehr interessieren: Wie hoch sind denn bei euch die Überschwinger, also die Temperaturschwankungen in den Räumen. Ich weiß das hängt natürlich viel von den gegebenheiten des Hauses ab, aber ich würde gerne mal so einen Temeraturverlaufplot sehen.

Und wo habt ihr die Temperaturfühler plaziert? Es würde ja bei einer niedrigen Einbauhöhe schneller auf die Temperaturerhöhung reagieren! Ist aber wahrscheinlich auch eher vernachlässigbar.

Ich bin eigentlich bei meinen ersten Überlegungen davon ausgegangen das die Elektrothermischen Stellantriebe über eine Art Pulsweitenmodulation angesteuert werden. Ist aber anscheinend nicht notwendig?!

Gruß und entschuldigung für den Missbrauch dieses Threads.  ::)
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 19 Mai 2015, 11:18:03
Zitat von: Phill am 19 Mai 2015, 09:50:49
Hallo, ich hätte da mal eine Frage. Ist zwar nicht 100% das richtige Thema aber ich habe das gefühl hier lesen die richtigen Leute mit!  ;)

Ich werde bald im Neubau eine Fussbodenheizung realisieren. Und habe mich in den letzten Tagen mit dem Thema Fussbodenheizung beschäftigt. Und jetzt bin ich als Automatisierungstechniker wahrhaft geschockt, das so eine Fussbodenheizung lediglich mit einem 2-Punktregler geregelt werden kann.

Mich würde sehr interessieren: Wie hoch sind denn bei euch die Überschwinger, also die Temperaturschwankungen in den Räumen. Ich weiß das hängt natürlich viel von den gegebenheiten des Hauses ab, aber ich würde gerne mal so einen Temeraturverlaufplot sehen.

Und wo habt ihr die Temperaturfühler plaziert? Es würde ja bei einer niedrigen Einbauhöhe schneller auf die Temperaturerhöhung reagieren! Ist aber wahrscheinlich auch eher vernachlässigbar.

Ich bin eigentlich bei meinen ersten Überlegungen davon ausgegangen das die Elektrothermischen Stellantriebe über eine Art Pulsweitenmodulation angesteuert werden. Ist aber anscheinend nicht notwendig?!

Gruß und entschuldigung für den Missbrauch dieses Threads.  ::)

Du hast bestimmt schon gesehen, dass es hier im Forum beliebig viele Grundsatzdiskussionen zu diesem Thema gibt.

Meine Sicht:

Ein Zweipunkt-Regler ist bei Heizungsbauern bei FB immer noch Standard: mechanisches Thermostat an der Wand, 230V-Stellantrieb am Verteiler, ist einfach, billig und zuverlässig.

Du kannst die Sache auch beliebig technisch verfeinern, damit gleichzeitig auch komplexer machen und somit auch anfälliger.

Unsere FB mit Zweipunkt-Regler hat so geringe Schwankungen, dass ich gar nicht auf die Idee käme eine andere Art der Ventilsteuerung zu realisieren. Es zeigt auch die Erfahrung, dass man einen Ausfall einer FB meistens erst am nächsten Tag bemerkt.
Was ich allerdings realisiert hatte, ist die Zweipunkt-Stellantriebe über FHEM anzusteuern - das kann man in diesem Thread hier irgendwo nachlesen. So entstand auch das Modul THRESHOLD als ein Software-Zweipunktregler.

Wenn du natürlich als "Regelungsfan" mehr "Wissenschaft" aus der Geschichte machen willst, dann musst du nach PID bzw. PID20 suchen.

Ich werde für meinen Teil auch in diesem Jahr bei einem Neubau wieder auf Zweipunktregler setzen, denn viel wichtiger ist es z. B. sich Gedanken darüber zu machen, dass alle Räume ausreichend mit FB-Schlaufen versorgt werden.

Und je komplexer, desto anfälliger -  ist immer schlecht insb. für eine Wohnung, die man selbst nicht bewohnt. ;)

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: linus76 am 02 Juni 2015, 18:39:31
Hallo zusammen,

ich habe mir im Winter mit FHEM und der Threshold Funktion meine Heizungssteuerung programmiert. Funktioiert genial - vielen Dank euch allen - und ich konnte ca. 30% Heizkosten sparen :D ... Meine "Fußbodenheizung" ist auch in der Lage selbigen zu kühlen. Mein Problem ist allerdings, dass ich es nicht schaffe die Config automatisiert (abhängig von Zustand GPIO24: GPIO high ist Sommerbetrieb) derart zu ändern dass sie im Sommer nach unten regelt, also kühlt.

Meine Config zum Heizen ist:
define Wohnzimmer THRESHOLD Thermostat.Wohnzimmer:measured-temp:0.2:Thermostat.Wohnzimmer:desired-temp:-0.5 Act.07_WZ
attr Wohnzimmer number_format %.1f
attr Wohnzimmer state_cmd1_gt off
attr Wohnzimmer state_cmd2_lt on
attr Wohnzimmer state_format _m _s1v _dv _sc

ich wüsste auch wie ich sie statisch zur Kühlung ändern soll, aber hat von euch einer eine Idee wie ich das zur Laufzeit machen kann?

Vielen Dank schon vorab für eure Unterstützung,
Martin
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 03 Juni 2015, 19:52:06
Zitat von: linus76 am 02 Juni 2015, 18:39:31
Hallo zusammen,

ich habe mir im Winter mit FHEM und der Threshold Funktion meine Heizungssteuerung programmiert. Funktioiert genial - vielen Dank euch allen - und ich konnte ca. 30% Heizkosten sparen :D ... Meine "Fußbodenheizung" ist auch in der Lage selbigen zu kühlen. Mein Problem ist allerdings, dass ich es nicht schaffe die Config automatisiert (abhängig von Zustand GPIO24: GPIO high ist Sommerbetrieb) derart zu ändern dass sie im Sommer nach unten regelt, also kühlt.

Meine Config zum Heizen ist:
define Wohnzimmer THRESHOLD Thermostat.Wohnzimmer:measured-temp:0.2:Thermostat.Wohnzimmer:desired-temp:-0.5 Act.07_WZ
attr Wohnzimmer number_format %.1f
attr Wohnzimmer state_cmd1_gt off
attr Wohnzimmer state_cmd2_lt on
attr Wohnzimmer state_format _m _s1v _dv _sc

ich wüsste auch wie ich sie statisch zur Kühlung ändern soll, aber hat von euch einer eine Idee wie ich das zur Laufzeit machen kann?

Vielen Dank schon vorab für eure Unterstützung,
Martin

Ein Beispiel zur Kühlung (Aircondition) ist in der Commandref zu THRESHOLD angegeben:

Zitatdefine thermostat THRESHOLD temp_sens:temperature:1 aircon|set @ on|set @ off|1

Du kannst also zwei THRESHOLD Module definieren und dann je nach Jahreszeit das eine oder das andere aktivieren.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: linus76 am 03 Juni 2015, 20:59:02
Zitat von: Damian am 03 Juni 2015, 19:52:06
Ein Beispiel zur Kühlung (Aircondition) ist in der Commandref zu THRESHOLD angegeben:

Du kannst also zwei THRESHOLD Module definieren und dann je nach Jahreszeit das eine oder das andere aktivieren.

Gruß

Damian

Hallo Damian,

danke für deine Antwort, aber genau da liegt mein Problem - ich weiss nicht wie ich die Module abwechselnd vom GPIO "scharf schalten" kann. Hättest da einen Hinweis für mich ...

Danke,
Martin
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 03 Juni 2015, 21:48:30
Zitat von: linus76 am 03 Juni 2015, 20:59:02
Hallo Damian,

danke für deine Antwort, aber genau da liegt mein Problem - ich weiss nicht wie ich die Module abwechselnd vom GPIO "scharf schalten" kann. Hättest da einen Hinweis für mich ...

Danke,
Martin

define umschaltung DOIF ([GPIO] eq "Sommer")(set th_sommer active, set th_winter deactivated) DOELSE (set th_winter active, set th_sommer deactivated)

th_sommer wäre dann dein THRESHOLD-Modul für den Sommerbetrieb und th_winter für den Winterbetrieb.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: linus76 am 05 Juni 2015, 08:30:00
Zitat von: Damian am 03 Juni 2015, 21:48:30
define umschaltung DOIF ([GPIO] eq "Sommer")(set th_sommer active, set th_winter deactivated) DOELSE (set th_winter active, set th_sommer deactivated)

th_sommer wäre dann dein THRESHOLD-Modul für den Sommerbetrieb und th_winter für den Winterbetrieb.

Gruß

Damian

Hallo Damian,

ah, danke - das sieht gut aus ... Ich bekomme zwar immer die Fehlermeldung "DOIF: no state, reading or time in condition: {Value("Sommerbetrieb") eq "on"}", werde mir das aber nach meinem Urlaub nochmals ansehen - bin grad am Sprung - und dann natürlich meine Erkenntnisse hier posten.

Nochmals Danke und lG,
Martin
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: avrfuchs am 16 Juni 2015, 14:23:18
Ich verwende das Modul THRESHOLD seit längerem zur Steuerung einer Zirkulationspumpe. Es erfüllt seine Aufgabe zur vollsten Zufriedenheit. Allerdings erscheinen immer im Logfile beim Deaktivieren der Zirkulationspumpe diese Fehlermeldungen:
2015.06.16 14:01:26 1: readingsUpdate(ZirDiff,cmd,cmd1_gt) missed to call readingsBeginUpdate first.
2015.06.16 14:01:26 1: readingsUpdate(ZirDiff,state,deactivated 48.9 on) missed to call readingsBeginUpdate first.

list Zir_Diff:

Internals:
   DEF        WW_Zirkulation:temperature:1:WW_Vorlauf:temperature:-6 Zir_Pumpe
   NAME       ZirDiff
   NR         138
   NTFY_ORDER 50-ZirDiff
   STATE      disabled
   TYPE       THRESHOLD
   cmd1_gt    set Zir_Pumpe off
   cmd2_lt    set Zir_Pumpe on
   cmd_default 2
   hysteresis 1
   offset     -6
   sensor     WW_Zirkulation
   sensor_reading temperature
   target_reading temperature
   target_sensor WW_Vorlauf
   Readings:
     2015-06-16 13:58:45   cmd             cmd2_lt
     2015-06-16 14:01:19   desired_value   48.9375
     2015-06-16 14:01:26   mode            deactivated
     2015-06-16 14:01:26   sensor_value    43.1875
     2015-06-16 14:01:26   state           disabled
     2015-06-16 14:01:19   threshold_max   42.9375
     2015-06-16 14:01:19   threshold_min   41.9375
Attributes:
   disable    1
   number_format %.1f
   room       GPIO
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv _sc

list Zir_Pumpe

Internals:
   DEF        22
   NAME       Zir_Pumpe
   NR         123
   RPI_pin    22
   STATE      aus
   TYPE       RPI_GPIO
   Readings:
     2015-06-16 13:42:28   Pinlevel        low
     2015-06-16 14:01:26   state           off
   Fhem:
     interfaces switch
Attributes:
   devStateIcon ein:sani_pump@green aus:sani_pump@red
   direction  output
   eventMap   on:ein off:aus
   fp_heizung 335,547,0,state
   room       GPIO

Es funktioniert ja einwandfrei, allerdings müllen die Fehlermeldungen das Logfile zu.
Ich denke, es irgend ein Fehler bei mir, denn dieses Modul wird sicher häufig angewandt und man hört nichts über ähnliche Beschwerden.
Für eine hilfreiche Unterstützung bedanke ich mich schon jetzt.

Gruß
Franz
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 16 Juni 2015, 17:33:16
Zitat von: avrfuchs am 16 Juni 2015, 14:23:18
Ich verwende das Modul THRESHOLD seit längerem zur Steuerung einer Zirkulationspumpe. Es erfüllt seine Aufgabe zur vollsten Zufriedenheit. Allerdings erscheinen immer im Logfile beim Deaktivieren der Zirkulationspumpe diese Fehlermeldungen:
2015.06.16 14:01:26 1: readingsUpdate(ZirDiff,cmd,cmd1_gt) missed to call readingsBeginUpdate first.
2015.06.16 14:01:26 1: readingsUpdate(ZirDiff,state,deactivated 48.9 on) missed to call readingsBeginUpdate first.

list Zir_Diff:

Internals:
   DEF        WW_Zirkulation:temperature:1:WW_Vorlauf:temperature:-6 Zir_Pumpe
   NAME       ZirDiff
   NR         138
   NTFY_ORDER 50-ZirDiff
   STATE      disabled
   TYPE       THRESHOLD
   cmd1_gt    set Zir_Pumpe off
   cmd2_lt    set Zir_Pumpe on
   cmd_default 2
   hysteresis 1
   offset     -6
   sensor     WW_Zirkulation
   sensor_reading temperature
   target_reading temperature
   target_sensor WW_Vorlauf
   Readings:
     2015-06-16 13:58:45   cmd             cmd2_lt
     2015-06-16 14:01:19   desired_value   48.9375
     2015-06-16 14:01:26   mode            deactivated
     2015-06-16 14:01:26   sensor_value    43.1875
     2015-06-16 14:01:26   state           disabled
     2015-06-16 14:01:19   threshold_max   42.9375
     2015-06-16 14:01:19   threshold_min   41.9375
Attributes:
   disable    1
   number_format %.1f
   room       GPIO
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv _sc

list Zir_Pumpe

Internals:
   DEF        22
   NAME       Zir_Pumpe
   NR         123
   RPI_pin    22
   STATE      aus
   TYPE       RPI_GPIO
   Readings:
     2015-06-16 13:42:28   Pinlevel        low
     2015-06-16 14:01:26   state           off
   Fhem:
     interfaces switch
Attributes:
   devStateIcon ein:sani_pump@green aus:sani_pump@red
   direction  output
   eventMap   on:ein off:aus
   fp_heizung 335,547,0,state
   room       GPIO

Es funktioniert ja einwandfrei, allerdings müllen die Fehlermeldungen das Logfile zu.
Ich denke, es irgend ein Fehler bei mir, denn dieses Modul wird sicher häufig angewandt und man hört nichts über ähnliche Beschwerden.
Für eine hilfreiche Unterstützung bedanke ich mich schon jetzt.

Gruß
Franz

Ich kann mich erst in den Ferien drum kümmern.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: avrfuchs am 17 Juni 2015, 20:56:37
Damian schrieb:
Zitat von: Damian am 16 Juni 2015, 17:33:16
Ich kann mich erst in den Ferien drum kümmern.

Gruß

Damian

Zeit spielt keine Rolle, vielen Dank für Deine Bereitschaft zur Hilfe

Gruß
Franz
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Joker2002 am 24 Juni 2015, 15:03:56
Hallo Damian,

ich will das Modul THRESHOLD für eine einfache Beschattungssteuerung verwenden, bekomme es jedoch irgendwie nicht richtig hin.
Ich habe sowohl diesen Threat als auch das dazugehörige HowTo im Commandref durchgelesen, finde jedoch einfach nicht meinen Fehler.

Ich hätte es gerne so geregelt, dass bei einer Außentemperatur von 28 Grad die Rollos an meinem Haus entsprechend herunterfahren.
Ich nutze ein TCM Sender, der bereits in meiner Wetteranzeige im FHEM zum Einsatz kommt.

Für die Rolläden habe ich folgendes Structure angelegt:

define Rollläden_hinten structure Shutter_hinten rollo_OG_Z1 rollo_OG_Z3 rollo_wz_1 rollo_wz_3

danach habe ich das THRESHOLD Modul in FHEM angelegt, das folgendermaßen aufgebaut ist:

define TH_Beschattungssteuerung THRESHOLD TCM_Aussen Rollaeden_hinten

anschließend habe ich die Beschattungssteuerung erstellt:

define di_Beschattungssteuerung DOIF ([10:00-20:00]) (set TH_Beschattungssteuerung desired 28)

Hier habe ich jedoch das Problem, dass die Rollläden um 10.00 Uhr herunterfahren, egal welche Temperatur derzeit vorherrscht.

Ich finde den Fehler einfach nicht. Kannst Du mir vielleicht weiterhelfen?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 24 Juni 2015, 16:22:42
Zitat von: Joker2002 am 24 Juni 2015, 15:03:56
Hallo Damian,

ich will das Modul THRESHOLD für eine einfache Beschattungssteuerung verwenden, bekomme es jedoch irgendwie nicht richtig hin.
Ich habe sowohl diesen Threat als auch das dazugehörige HowTo im Commandref durchgelesen, finde jedoch einfach nicht meinen Fehler.

Ich hätte es gerne so geregelt, dass bei einer Außentemperatur von 28 Grad die Rollos an meinem Haus entsprechend herunterfahren.
Ich nutze ein TCM Sender, der bereits in meiner Wetteranzeige im FHEM zum Einsatz kommt.

Für die Rolläden habe ich folgendes Structure angelegt:

define Rollläden_hinten structure Shutter_hinten rollo_OG_Z1 rollo_OG_Z3 rollo_wz_1 rollo_wz_3

danach habe ich das THRESHOLD Modul in FHEM angelegt, das folgendermaßen aufgebaut ist:

define TH_Beschattungssteuerung THRESHOLD TCM_Aussen Rollaeden_hinten

anschließend habe ich die Beschattungssteuerung erstellt:

define di_Beschattungssteuerung DOIF ([10:00-20:00]) (set TH_Beschattungssteuerung desired 28)

Hier habe ich jedoch das Problem, dass die Rollläden um 10.00 Uhr herunterfahren, egal welche Temperatur derzeit vorherrscht.

Ich finde den Fehler einfach nicht. Kannst Du mir vielleicht weiterhelfen?

Wie ich schon mal geschrieben habe, ist die Beschattungssteuerung mit THRESHOLD ursprünglich aus der Zeit ohne DOIF.
Mache es doch einfach direkt mit DOIF ohne THRESHOLD:

define di_Beschattungssteuerung DOIF ([10:00-20:00] and [TCM_Aussen:temperature]>28)
  (set Rollläden_hinten runter)
DOELSE
  (set Rollläden_hinten hoch)

attr di_Beschattungssteuerung wait 300:3600


In dem obigen Beispiel ist eine Verzögerung eingebaut, die ein zu häufiges Bewegen des Rollos verhindert. So etwas geht mit THRESHOLD nicht.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Joker2002 am 25 Juni 2015, 10:22:54
Danke für die Antwort. Dann werde ich es mal testen.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: danieljo am 08 September 2015, 12:14:17
Ich habe mir ein clonedummy name = Aquarium_1_Temperatur erstellt der als readings "T" "state" und "temperature" enthält.  temperature enthält als Wert z.B. 24.567

Mittels THRESHOLD wollte ich diesen clonedummy als Sensor angeben also:

define Aquarium_Thermostat THRESHOLD Aquarium_1_Temperatur:temperature:0.25 Heater

Leider wird in sensor-readings nur "temperature" angezeigt nicht aber der Temperatur wert. Woran liegt das. Oder kann ein cloneDummy nicht als eingangssensor verwendet werden. Der cloneDummy bekommt alle 30sekunden einen neuen wert. Nach aktualisierung des wertes ist der zeitstempel rot hinterlegt.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: franky08 am 08 September 2015, 12:33:39
Bei mir funktioniert es mit einem dummy als Sensor device, ist aber kein clone dummy!

TH_TC_durchschn:temperature:0.1:Wandthermostat:desired-temp |set DAC setDAC 570; set HZ_on_off_dummy2 off|{HZ_Steuerung_Temp}; set HZ_on_off_dummy2 on

TH_TC_durchschn:temperature ist ein dummy device, welches seinen temperature Wert aus einer sub in der Utils erhält.

VG
Frank
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: danieljo am 08 September 2015, 17:09:02
Ich bin ja auch blöd wie 3Meter Feldweg. Man sollte nach der Definiton THRESHOLD auf active setzen. Funtkioniert jetzt jedenfalls Problemlos. Glaubt mir keiner das ich an dem Problem jetzt seid Gestern Mittag dran war.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: franky08 am 08 September 2015, 17:26:27
 :o 8) ;D
Toll!

VG
Frank
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 06 November 2015, 12:31:51
Hallo Allerseits,

ich bin Anfänger und verwende Threshold als Modul für ein Raumthermostat. Ich habe aber ein Syntax Vertändnisproblem.
Ich möchte die Histerese die standarmäßig 1 ist auf 1.5 dauerhaft ändern. Irgendwie blicke ich aber mit den ganzen Klammer und Doppelpunkten des Befehlsaufrufs noch nicht durch.
Ich habe zur Zeit folgenden Behfelsaufruf

define Temp THRESHOLD Sensor Aktor

kann mir bitte jemand sagen wo und wie ich den Wert der Histerese ändern kann

mfg
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 06 November 2015, 14:07:57
Zitat von: Maverick229 am 06 November 2015, 12:31:51
Hallo Allerseits,

ich bin Anfänger und verwende Threshold als Modul für ein Raumthermostat. Ich habe aber ein Syntax Vertändnisproblem.
Ich möchte die Histerese die standarmäßig 1 ist auf 1.5 dauerhaft ändern. Irgendwie blicke ich aber mit den ganzen Klammer und Doppelpunkten des Befehlsaufrufs noch nicht nicht durch.
Ich habe zur Zeit folgenden Behfelsaufruf

define Temp THRESHOLD Sensor Aktor

kann mir bitte jemand sagen wo und wie ich den Wert der Histerese ändern kann

mfg

define Temp THRESHOLD Sensor:<Reading>:1.5 Aktor

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 06 November 2015, 14:37:59
Vielen Dank das wars
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 07 November 2015, 22:38:39
Hallo

Leider war es das nicht ganz. Jetzt wird zwar die Histerese anscheinend korrekt übernommen, aber leider übernimmt er mit den Befehlsaufruf nicht mehr die Sensorwerte. Wodurch alles gar damit nicht mehr funktioniert.

mfg
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 08 November 2015, 10:52:26
Zitat von: Maverick229 am 07 November 2015, 22:38:39
Hallo

Leider war es das nicht ganz. Jetzt wird zwar die Histerese anscheinend korrekt übernommen, aber leider übernimmt er mit den Befehlsaufruf nicht mehr die Sensorwerte. Wodurch alles gar damit nicht mehr funktioniert.

mfg

Dann hast du vermutlichen den falschen Reading angegeben.

Poste hier list von deinem Sensor und von deinem Threshold.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 08 November 2015, 14:49:51
hoffentlich kann man damit etwas anfangen. Wie gesagt bin Anfänger, eine Heizperiode hat alles problemlos geklappt jetzt will ich nur die Histerese etwas ändern

Internals
CHANGED

DEF
GPIO4_DS18B20_000004c504be Therme
NAME

Temp
NR

45
NTFY_ORDER

50-Temp
STATE

active 20.5 set Therme on
TYPE

THRESHOLD
cmd1_gt

set Therme off
cmd2_lt

set Therme on
cmd_default

2
hysteresis

1
offset

0
sensor

GPIO4_DS18B20_000004c504be
sensor_reading

temperature




Internals
DEF
28-000004c504be
NAME

GPIO4_DS18B20_000004c504be
NR

25
STATE

T: 20.875
TYPE

GPIO4



mfg
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 08 November 2015, 15:20:44
Zitat von: Maverick229 am 08 November 2015, 14:49:51
hoffentlich kann man damit etwas anfangen. Wie gesagt bin Anfänger, eine Heizperiode hat alles problemlos geklappt jetzt will ich nur die Histerese etwas ändern

Internals
CHANGED

DEF
GPIO4_DS18B20_000004c504be Therme
NAME

Temp
NR

45
NTFY_ORDER

50-Temp
STATE

active 20.5 set Therme on
TYPE

THRESHOLD
cmd1_gt

set Therme off
cmd2_lt

set Therme on
cmd_default

2
hysteresis

1
offset

0
sensor

GPIO4_DS18B20_000004c504be
sensor_reading

temperature




Internals
DEF
28-000004c504be
NAME

GPIO4_DS18B20_000004c504be
NR

25
STATE

T: 20.875
TYPE

GPIO4



mfg

Ich sehe bei deinem Sensor keinen temperature Reading.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 08 November 2015, 15:32:08
meinst du das?

Readings
cmd

cmd1_gt

2015-11-08 14:00:00
desired_value

20.5

2015-11-08 14:00:00
mode

active

2015-11-08 14:00:00
sensor_value

20.437

2015-11-08 15:29:32
state

active 20.5 set Therme on

2015-11-08 14:00:00
threshold_max

20.5

2015-11-08 14:00:00
threshold_min

19.5

2015-11-08 14:00:00
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 08 November 2015, 15:59:11
Zitat von: Maverick229 am 08 November 2015, 15:32:08
meinst du das?

Readings
cmd

cmd1_gt

2015-11-08 14:00:00
desired_value

20.5

2015-11-08 14:00:00
mode

active

2015-11-08 14:00:00
sensor_value

20.437

2015-11-08 15:29:32
state

active 20.5 set Therme on

2015-11-08 14:00:00
threshold_max

20.5

2015-11-08 14:00:00
threshold_min

19.5

2015-11-08 14:00:00


Nein. Ich spreche von deinem Sensor bzw. von deinem zweiten list-Output.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 08 November 2015, 16:14:42
Sorry da mußt du mir bitte auf die Sprünge helfen, wie komme ich daran.

mfg
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 08 November 2015, 17:33:43
Zitat von: Maverick229 am 08 November 2015, 16:14:42
Sorry da mußt du mir bitte auf die Sprünge helfen, wie komme ich daran.

mfg
Ich denke:

Internals
DEF
28-000004c504be
NAME

GPIO4_DS18B20_000004c504be
NR

25
STATE

T: 20.875
TYPE

GPIO4


das ist der Output von list GPIO4_DS18B20_000004c504be

und da sehe ich keinen Reading namens temperature.

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 08 November 2015, 18:05:24
Ich hoffe das ist jetzt richtig, der Zeilenumbruch ist aber falsch


Readings
failures

0

2015-11-07 22:13:38
state

T: 20.5

2015-11-08 18:00:12
temperature

20.5

2015-11-08 18:00:12
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 08 November 2015, 18:11:34
Zitat von: Maverick229 am 08 November 2015, 18:05:24
Ich hoffe das ist jetzt richtig, der Zeilenumbruch ist aber falsch


Readings
failures

0

2015-11-07 22:13:38
state

T: 20.5

2015-11-08 18:00:12
temperature

20.5

2015-11-08 18:00:12


Dann ist alles bestens.

Im THRESHOLD sieht man auch, dass die aktuelle Temperatur gelesen wird. Es funktioniert also alles wie programmiert.

Gruß

Damian


Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 08 November 2015, 18:27:04
Ja aber das ist jetzt wieder der Standartaufruf ohne Histerese änderung also wie ich das von Anfang an hatte mit
der Änderung von dir erhalte ich folgendes.


Temp
Internals
DEF
GPIO4_DS18B20_000004c504be:<Reading>:1.5 Therme
NAME

Temp
NR

46
NTFY_ORDER

50-Temp
STATE

initialized
TYPE

THRESHOLD
cmd1_gt

set Therme off
cmd2_lt

set Therme on
cmd_default

2
hysteresis

1.5
offset

0
sensor

GPIO4_DS18B20_000004c504be
sensor_reading

<Reading>

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Maverick229 am 08 November 2015, 19:08:37
ich habe jetzt den Histerese Set Befehl gesetzt

set Temp hysteresis 1.5

damit funktioniert es anscheinend.
Werde ich aber erst sehen wenn es wieder so kalt ist das die Heizung wieder angeht.

mfg
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: tekki am 16 November 2015, 20:24:06
Hallo Damian,

ich habe eine Frage in Bezug auf die Umstellung zu Version 5.7.
Meine Def für den Threshold sieht folgendermaßen aus
HMS100TF_ca5d OR Bad_Heizung_aus:state:off HZ_Bad|set @ desiredTemperature off|set @ desiredTemperature on

Muss ich wegen dem @ als Platzhalter etwas anpassen?

Danke
Ralph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 16 November 2015, 20:40:22
Zitat von: tekki am 16 November 2015, 20:24:06
Hallo Damian,

ich habe eine Frage in Bezug auf die Umstellung zu Version 5.7.
Meine Def für den Threshold sieht folgendermaßen aus
HMS100TF_ca5d OR Bad_Heizung_aus:state:off HZ_Bad|set @ desiredTemperature off|set @ desiredTemperature on

Muss ich wegen dem @ als Platzhalter etwas anpassen?

Danke
Ralph

Ich hoffe nicht. Es ist, so viel ich weiß, im notify rausgefallen, in THRESHOLD habe ich es selbst nachprogrammiert, daher sollte es wohl weiter funktionieren.


Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: tekki am 16 November 2015, 20:44:46
Danke für die Info


Ralph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: tekki am 21 November 2015, 10:24:07
Hallo Damian,

ich habe gestern das Update auf 5.7 durchgeführt. Threshold funktioniert wie von Dir geschrieben weiter.
Dies nur für Dich zur Info.


Grüße
Ralph
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: spranz am 01 Februar 2016, 20:05:42
Hallo, ich habe ein HM Wandthermostat,und einen Lüfter im Wohnzimmer in der Zwischendecke.
Ich würde gern, dass der Lüfter bei überschreiten von 24° automatisch die Überschüssige Wärme abtransportiert.
Ich wollte das gern mit Threshold lösen. Leider bin ich noch nicht so fit in FHEM. Vieleicht kann mir ja jemand von euch helfen?

Mein Plan war es mit:
define lueftung THRESHOLD HM_375D71_Climate Ventilator
set lueftung desired 24

Und dann die CMD1 und CMD2 zu tauschen, damit er quasi Kühlt...(ich hoffe ihr versteht was ich meine...)
leider funktioniert mein Plan nicht...
Ich habe das Gefühl das die Werte vom Thermostat nicht verarbeitet werden...
Hat jemand nen Tipp für mich?


Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 01 Februar 2016, 20:22:07
Zitat von: spranz am 01 Februar 2016, 20:05:42
Hallo, ich habe ein HM Wandthermostat,und einen Lüfter im Wohnzimmer in der Zwischendecke.
Ich würde gern, dass der Lüfter bei überschreiten von 24° automatisch die Überschüssige Wärme abtransportiert.
Ich wollte das gern mit Threshold lösen. Leider bin ich noch nicht so fit in FHEM. Vieleicht kann mir ja jemand von euch helfen?

Mein Plan war es mit:
define lueftung THRESHOLD HM_375D71_Climate Ventilator
set lueftung desired 24

Und dann die CMD1 und CMD2 zu tauschen, damit er quasi Kühlt...(ich hoffe ihr versteht was ich meine...)
leider funktioniert mein Plan nicht...
Ich habe das Gefühl das die Werte vom Thermostat nicht verarbeitet werden...
Hat jemand nen Tipp für mich?

Auszug aus der Commandref des Moduls:

define thermostat THRESHOLD temp_sens:temperature:1 aircon|set @ on|set @ off|1

"aircon" ist bei dir  "Ventilator" und "temp_sens" ist "HM_375D71_Climate"

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: spranz am 01 Februar 2016, 20:54:14
Zitat von: Damian am 01 Februar 2016, 20:22:07
Auszug aus der Commandref des Moduls:

define thermostat THRESHOLD temp_sens:temperature:1 aircon|set @ on|set @ off|1

"aircon" ist bei dir  "Ventilator" und "temp_sens" ist "HM_375D71_Climate"

Gruß

Damian

Vielen Dank Damian, funktioniert bestens  ;D ;D ;D
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: wthiess am 27 April 2016, 13:27:27
Hallo Profis!
Bitte um Hilfe.
Wie sieht es bei mir aus? Ich steh voll an. Ich kann ein Releais schalten und den CO2 Wert ablesen mit Plot. Ich möchte das Releais schalten wenn der CO2 Wert über 2000 ppm hinausgeht. Wenn der Wert dann wieder unster 1000 sinkt das Releasi  wieder ausschalten. Habe alles möglich probiert. Bitte um eine Lösung. Ich kann leider die Werte von meinem Vorschreiber nicht so verändern das es für mich passt. Ich habe alles gelesen aber nicht verstanden.

lg und Danke im vorraus
Wolfgang

Hier meine Scripts:

#Releais
define Releais1_1 RPI_GPIO 21
attr Releais1_1 active_low yes
attr Releais1_1 direction output
attr Releais1_1 group Releais
attr Releais1_1 room Haus,Schlafzimmer

#Luftqualitätsensor Reha
define Abluft_co20 CO20
attr Abluft_co20 advanced 1
attr Abluft_co20 group Sensoren
attr Abluft_co20 interval 30
attr Abluft_co20 retries 5
attr Abluft_co20 room Haus
attr Abluft_co20 stateFormat voc ppm
attr Abluft_co20 timeout 2000
define FileLog_Abluft_co20 FileLog /opt/fhem/log/Abluft-CO20-%Y-%m.log Abluft_co20:voc.*
define Abluft_co20_Chart SVG FileLog_Abluft_co20:SVG_FileLog_Abluft_co20_1:CURRENT
attr Abluft_co20_Chart room Haus

Meine Idee wäre:
define Abluft_co20z THRESHOLD Abluft_co20:voc:2000 Releais1_1|set @  on|set @ off|1000
also bei 2000 einschalten. Wenn der Wert unter 1000 gesunken ist dann wieder ausschalten.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 27 April 2016, 20:49:46
ZitatMeine Idee wäre:
define Abluft_co20z THRESHOLD Abluft_co20:voc:2000 Releais1_1|set @  on|set @ off|1000
also bei 2000 einschalten. Wenn der Wert unter 1000 gesunken ist dann wieder ausschalten.


define Abluft_co20z THRESHOLD Abluft_co20:voc:1000:2000 Releais1_1|set @  on|set @ off

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: wthiess am 27 April 2016, 22:57:54
Danke Damian!

Wie würde es aussehen wenn ich als Abschaltbedingung noch einen Zeitfaktor einbauen möchte?
Das heisst es soll bei 1000 ausschalten aber frühestens nach 30 Minuten. Die Formel wäre dann für mich universell einsetzbar.

lg
Wolfgang




Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 28 April 2016, 21:47:35
Zitat von: wthiess am 27 April 2016, 22:57:54
Danke Damian!

Wie würde es aussehen wenn ich als Abschaltbedingung noch einen Zeitfaktor einbauen möchte?
Das heisst es soll bei 1000 ausschalten aber frühestens nach 30 Minuten. Die Formel wäre dann für mich universell einsetzbar.

lg
Wolfgang

Das THRESHOLD-Modul kann nicht mit Zeiten umgehen. In diesem Fall solltest du auf DOIF umsteigen, das kann so etwas und vieles mehr. Lösung deines Problems:

define di_Abluft_co20z DOIF ([Abluft_co20:voc] < 1000) (set Releais1_1 off) DOELSEIF ([Abluft_co20:voc] > 2000) (set Releais1_1 on)
attr di_Abluft_co20z wait 1800


Das kann man schon fast ohne Doku verstehen ;)

Alles andere und noch etwas mehr kannst du hier nachlesen: http://fhem.de/commandref_DE.html#DOIF

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: markukug am 22 Juni 2016, 11:33:25
Das Modul scheint genau das zu sein, was ich suche  :)!

Leider scheitere ich an der Umsetzung.

Ich habe eine Steckdose FBDECT_FritzboxFBAHA_16, die ich abhängig von einem Wert meiner PV-Anlage (LupusJSON) schalten möchte, d.h. kühlen bei Stromproduktion.

Folgendes habe ich versucht:

define KlimaanlageSchwellwert THRESHOLD LupusJSON FBDECT_FritzboxFBAHA_16
set KlimaanlageSchwellwert -1500


Mein Wunsch wäre, dass die Klimaanlage bei Unterschreitung eines gewissen Wertes (aktuell - 1500W) zu kühlen beginnt. Idealerweise schaltet die Steckdose erst wieder aus, wenn der Stromverbrauch über 0 steigt.

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: wthiess am 22 Juni 2016, 11:49:11
Ich habe es so gelöst ab einem Wert von 1000 wird der Taster 1 geschalten. unter 600 sprich -400  "400:1000" wird wieder auf off geschalten

define Abluft_co20 CO20
attr Abluft_co20 advanced 1
attr Abluft_co20 alias Luftqualität
attr Abluft_co20 group Lüftung
attr Abluft_co20 interval 30
attr Abluft_co20 retries 5
attr Abluft_co20 room Küche,Haus
attr Abluft_co20 stateFormat voc ppm
attr Abluft_co20 timeout 2000
define FileLog_Abluft_co20 FileLog /opt/fhem/log/Abluft-CO20-%Y-%m.log Abluft_co20:voc.*
define Abluft_co20_Chart SVG FileLog_Abluft_co20:SVG_FileLog_Abluft_co20_1:CURRENT
attr Abluft_co20_Chart room Haus,LOGs
define Abluft_co20z THRESHOLD Abluft_co20:voc:400:1000 Taster1|set @  on|set @ off
attr Abluft_co20z number_format %.1f
attr Abluft_co20z state_format _m _dv
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Fistandantilus am 22 Juni 2016, 15:06:42
Hallo, zuerst einmal funktioniert das Modul super. Eine Funktion vermisse ich allerdings noch und zwar würde ich gern einen Dummy Sommerbetrieb verwenden, der die Steuerung komplett deaktiviert.?Habt Ihr eine Idee dazu?

VG
F.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: wthiess am 22 Juni 2016, 15:40:43
Per Zeitschaltung mit einem Relais vom Strom nehmen.

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Fistandantilus am 22 Juni 2016, 18:22:55
Das ist der harte Weg, per Software und ohne zusätzliche Hardware wäre mir lieber.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 22 Juni 2016, 20:31:14
Zitat von: Fistandantilus am 22 Juni 2016, 15:06:42
Hallo, zuerst einmal funktioniert das Modul super. Eine Funktion vermisse ich allerdings noch und zwar würde ich gern einen Dummy Sommerbetrieb verwenden, der die Steuerung komplett deaktiviert.?Habt Ihr eine Idee dazu?

VG
F.

define di_deactivate DOIF ([Sommer] eq "on") (set mythreshold deactivated) DOELSE (set mythreshold active)


Beim Threshold-Modul würde ich noch das Attribut setOnDeactivated auf cmd1_gt setzen, damit beim Deaktivieren das Modul den Aktor ausschaltet.

Gruß

Damian

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Fistandantilus am 24 Juni 2016, 00:49:38
Perfekt - danke!
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: andi11 am 05 Januar 2017, 16:58:24
Vielen Dank für das Modul. Dank dem Modul mit der Definition:
Aussensensor:temperature:0.5:2 Lampensteuerung1.Kanal2
sind meine Bonsai jetzt vor der gemeldeten "Saukälte" geschützt (nachdem ich der geschützten Behausung noch eine Glühlampe als Heizung spendiert habe).
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: franky08 am 06 Januar 2017, 21:04:17
@Damian

Hallo Damian, ich setze das Threshold Modul u.a. zur Heizungssteuerung ein. Bei den niedrigen Außentemperaturen wie sie jetzt bei uns vorherrschen (-16°C) ist die Ansteuerung der sub über Threshold etwas zu träge. Meine Frage diesbezüglich wäre wo du im Modul den Timer für die Sensor Abfrage machst? Wenn der Zyklus kleiner wäre wäre das für meine Anwendung sehr von Vorteil. IMo sieht Threshold für die Heizungssteuerung folgendermaßen aus:
Internals:
   CHANGED
   DEF        TH_TC_durchschn:temperature:0.05:Wandthermostat:desired-temp |set DAC setDAC 570; set HZ_on_off_dummy2 off; set DAC_Wert 570|{HZ_Steuerung_Temp}
   NAME       HZ_WZ_gesteuert
   NR         1541
   NTFY_ORDER 50-HZ_WZ_gesteuert
   STATE      external 24.0
   TYPE       THRESHOLD
   cmd1_gt    set DAC setDAC 570; set HZ_on_off_dummy2 off; set DAC_Wert 570
   cmd2_lt    {HZ_Steuerung_Temp}
   cmd_default 0
   hysteresis 0.05
   offset     0
   sensor     TH_TC_durchschn
   sensor_reading temperature
   target_reading desired-temp
   target_sensor Wandthermostat
   Readings:
     2017-01-06 20:45:00   cmd             cmd1_gt
     2017-01-06 16:45:36   desired_value   24.0
     2017-01-06 20:40:00   mode            external
     2017-01-06 20:45:00   sensor_value    24.05
     2017-01-06 20:40:00   state           external 24.0
     2017-01-06 16:45:36   threshold_max   24
     2017-01-06 16:45:36   threshold_min   23.95
Attributes:
   number_format %.1f
   room       Heizung
   state_format _m _dv


Threshold ruft hier die sub auf, welche den Brenner steuert.

VG
Frank
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 07 Januar 2017, 09:46:10
Hallo Frank,

das Modul arbeitet nicht zeit-, sondern ereignisgesteuert. Die "Trägheit" des Moduls hängt also von der Häufigkeit des Sendens deines Sonsors ab. Bei 1-Wire z. B. kann man diese verändern.

Gruß

Damian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: franky08 am 07 Januar 2017, 10:36:42
Danke Damian, dass hatte ich schon vermutet. Habe mir gestern schon mal eine kleine sub zusammengestellt welche für meinen Fall Threshold nachbildet, mit dem Unterschied das der Trigger von einem at kommt und dabei ist mir schon aufgefallen das die HM Sensoren zu langsam sind.

VG
Frank
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 07 Januar 2017, 10:40:44
Zitat von: franky08 am 07 Januar 2017, 10:36:42
Danke Damian, dass hatte ich schon vermutet. Habe mir gestern schon mal eine kleine sub zusammengestellt welche für meinen Fall Threshold nachbildet, mit dem Unterschied das der Trigger von einem at kommt und dabei ist mir schon aufgefallen das die HM Sensoren zu langsam sind.

VG
Frank

Na ja, Zeitsteuerung an dieser Stelle macht die Sache nicht besser, denn solange kein neuer Temperaturwert vorliegt, braucht man auch nichts auszuwerten um etwas zu schalten.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: franky08 am 07 Januar 2017, 11:47:25
Aber man kann den Temperaturwert zwischenspeichern und mittels at alle 30 sec. an die sub schicken dann wird alle 30 sec. getriggert auch wenn der Temp. Wert sich nicht ändert, bin aber gerade dabei denn Sollwert von einem 1-Wire Sensor zu erfassen, dass dürfte das Schaltverhalten schon beschleunigen.

VG
Frank
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 07 Januar 2017, 12:25:48
Zitat von: franky08 am 07 Januar 2017, 11:47:25
Aber man kann den Temperaturwert zwischenspeichern und mittels at alle 30 sec. an die sub schicken dann wird alle 30 sec. getriggert auch wenn der Temp.  Wert sich nicht ändert.

Und was soll das bringen? Das THRESHOLD-Modul wird eh nichts machen, weil sich nichts ändert.

Übrigens wird beim Setzen einer neuen Temperatur mit desired sofort geschaltet und nicht auf einen neuen Wert gewartet.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: franky08 am 07 Januar 2017, 12:50:01
ZitatDas THRESHOLD-Modul wird eh nichts machen, weil sich nichts ändert.

Richtig! Deswegen das at und die sub, da die Auswertung in der sub passiert reagiert diese dann sofort, gilt aber nur wenn ich auf 1-Wire umstelle.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: tomster am 11 Januar 2017, 19:46:58
Mir ist gerade aufgefallen, dass sich meine beiden Threshold-Definitionen irgendwie anders verhalten, als noch bei der Einrichtung vor etwas über einem Jahr:
Wenn ich z.B. meine Feuchteregelung auf "active" setze, dann regelt das Modul zwar wunderbar bis zum Schwellenwert, setzt sich danach aber von alleine auf "disabled" und verharrt in diesem Status. Das ist natürlich für eine vernünftige Regelung etwas kontraproduktiv...
Wurde an diesem Verhalten irgendwann in den letzten 12 Monaten etwas geschraubt oder ein attr hinzugefügt, dass ich noch nicht gefunden habe?

Auch eine Neuanlage der Definition hat nicht viel gebracht:

define Hygrostat THRESHOLD WZ_Thermostat:humidity:3:50 WZ_Befeuchter|set @ off|set @ on


Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 11 Januar 2017, 20:08:56
Mit Version THRESHOLD kannst du deine Version des Moduls sehen. Die letzte Version ist vom 3.05.2015, also älter als ein Jahr. Das Modul deaktiviert sich nicht von selbst.

Vermutlich hast du da noch etwas definiert, was dein Modul von außen deaktiviert.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: mahowi am 18 Januar 2017, 18:25:04
Ich benutze THRESHOLD, um einen Luftbefeuchter abhängig von der Luftfeuchtigkeit im Raum zu schalten. Das funktioniert auch perfekt.

Jetzt schicke ich aber auch bei Abwesenheit per Notify ein "set th_wz_humidity deactivated", bzw. wenn wieder jemand zuhause ist ein "set th_wz_humidity active". Da hier aber wohl jedes Mal das Attribut "disable 1" gesetzt und wieder gelöscht wird, habe ich das rote Fragezeichen für ungespeicherte Änderungen in der config. Könnte man hier im Modul nicht automatisch ein "save" hinterher schicken?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: kumue am 18 Januar 2017, 18:29:09
das save könntest du doch auch mit dem notify mitsenden...
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: boggyboe am 09 Januar 2018, 08:24:23
Ich hätte auch eine Frage zum Modul THRESHOLD. Bin Neuling in FHEM und kenne mich noch nicht so aus. Gerne würde ich mit THRESHOLD auch einen Luftentfeuchter steuern, der an einer 433 MHZ Funksteckdose hängt und immer dann angeht, wenn die Luftfeuchtigkeit einen bestimmten Wert übersteigt, bzw. abgeschalten wird wenn die Luftfeuchtigkeit einen Wert unterschreitet.
Das Modul habe ich eingerichtet und es funktioniert alles wie gewünscht. Jetzt ist es mir jedoch schon passiert, dass das Funksignal zur Steckdose verloren gegangen ist. Wird die gewünschte Luftfeuchtigkeit unterschritten agiert FHEM korrekt, das THRESHOLD Modul sendet das Aus-Signal und steht in der Software auf "disabled" aber der Luftentfeuchter läuft immer noch und wird nicht ausgeschaltet. Besteht die Möglichkeit, dass das Modul beispielsweise alle 60 s den aktuellen Status an die Steckdose sendet, oder kommt man um den Kauf einer schaltbaren Steckdose mit Rückkanal nicht herum?

Vielen Dank schonmal.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: cwagner am 09 Januar 2018, 11:07:26
Hi, boggyboe,

bei _einer_ Funkschnittstelle mag das Vorgehen funktionieren, es ist aber nicht vernünftig wegen der 1%-Regel. Vereinfacht darf eine Funkgateway nur maximal 1% der Kapazität des Funkkanals pro Zeiteinheit verbrauchen. Man würde sich also mit dem ständigen Nachschicken des letzten Befehls "zur Sicherheit" einfach Kapazität wegnehmen. Da erscheint die bidirektionale Schnittstelle, auf deren Quittung (oder Nicht-Quittung) man dann gezielt reagieren kann, weitaus richtiger...
Fire & Forget ist - wie Du richtig erkennst - im Smarthome einer eher schlechte Taktik.
Herzliche Grüße

Christian
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 09 Januar 2018, 11:24:25
Zitat von: boggyboe am 09 Januar 2018, 08:24:23
Ich hätte auch eine Frage zum Modul THRESHOLD. Bin Neuling in FHEM und kenne mich noch nicht so aus. Gerne würde ich mit THRESHOLD auch einen Luftentfeuchter steuern, der an einer 433 MHZ Funksteckdose hängt und immer dann angeht, wenn die Luftfeuchtigkeit einen bestimmten Wert übersteigt, bzw. abgeschalten wird wenn die Luftfeuchtigkeit einen Wert unterschreitet.
Das Modul habe ich eingerichtet und es funktioniert alles wie gewünscht. Jetzt ist es mir jedoch schon passiert, dass das Funksignal zur Steckdose verloren gegangen ist. Wird die gewünschte Luftfeuchtigkeit unterschritten agiert FHEM korrekt, das THRESHOLD Modul sendet das Aus-Signal und steht in der Software auf "disabled" aber der Luftentfeuchter läuft immer noch und wird nicht ausgeschaltet. Besteht die Möglichkeit, dass das Modul beispielsweise alle 60 s den aktuellen Status an die Steckdose sendet, oder kommt man um den Kauf einer schaltbaren Steckdose mit Rückkanal nicht herum?

Vielen Dank schonmal.

THRESHOLD geht nicht von alleine in den Modus disabled.

Ich sende bei solchen Funkdosen zur Sicherheit zwei mal, z. B.

T_Zirkulation:temperature:4 Zirkulation|set @ off;sleep 1;set @ off|set @ on;sleep 1;set @ on

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: boggyboe am 09 Januar 2018, 15:51:58
Super, vielen Dank. Dann werde ich das erstmal mit dem doppelten Senden des Befehls ausprobieren und dann doch ggf. eine Funksteckdose mit Rückkanal kaufen.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 09 Januar 2018, 16:27:24
Zitat von: boggyboe am 09 Januar 2018, 15:51:58
Super, vielen Dank. Dann werde ich das erstmal mit dem doppelten Senden des Befehls ausprobieren und dann doch ggf. eine Funksteckdose mit Rückkanal kaufen.

Wenn die Ausfallquote bei einmaligen Senden z. B. 20 % ist, dann sollte sich die Ausfallquote beim doppelten Senden auf 4 % reduzieren, wenn die Ausfallwahrscheinlichkeit vom ersten und zweiten Senden unabhängig von einander ist.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: döner123 am 13 April 2018, 21:18:48
Hallo, kann mir eventuell jemand bei meiner automatischen Belüftungsteuerung behilflich sein?
Meine Lichtkuppeln sollen automatisch schließen, sobald die Temperatur draußen höher ist als die Innentemperatur. Die Temperaturwerte bekomme ich von Sensoren. Eine Lüftersteuerung mit festgelegten Temperaturwerten für meinen AV–Receiver konnte ich umsetzen aber beim Vergleich zweier sich ändernden Werte komme ich nicht weiter 🙃
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 April 2018, 09:04:31
Zitat von: döner123 am 13 April 2018, 21:18:48
Hallo, kann mir eventuell jemand bei meiner automatischen Belüftungsteuerung behilflich sein?
Meine Lichtkuppeln sollen automatisch schließen, sobald die Temperatur draußen höher ist als die Innentemperatur. Die Temperaturwerte bekomme ich von Sensoren. Eine Lüftersteuerung mit festgelegten Temperaturwerten für meinen AV–Receiver konnte ich umsetzen aber beim Vergleich zweier sich ändernden Werte komme ich nicht weiter 🙃

Zitat aus der Commandref zu THRESHOLD:

define TH_heating THRESHOLD flow:temperature:2:outdoor:temperature heating

Musst du nur für deine Bedürfnisse anpassen. Was hier die Innen- bzw. Außentemperatur ist, kannst du dir bestimmt schon denken ;)
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: döner123 am 14 April 2018, 11:15:36
Zitat von: Damian am 14 April 2018, 09:04:31
Zitat aus der Commandref zu THRESHOLD:

define TH_heating THRESHOLD flow:temperature:2:outdoor:temperature heating

Musst du nur für deine Bedürfnisse anpassen. Was hier die Innen- bzw. Außentemperatur ist, kannst du dir bestimmt schon denken ;)

Danke für den Schubs in die richtige Richtung. So ähnlich hatte ich es schon einmal aber es hat nicht geklappt.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: egmontr am 31 Oktober 2018, 18:41:33
Vielleicht kann mir jemand bei folgender Sache helfen.
Ich habe drei Themperatursensoren HM-CC-TC in verschiedenen Räumen positioniert.
Nun möchte ich die Heizung anhand von einem von mir vorgegeben Sensor (von den Dreien) steuern.

Folgendes habe ich ohne Erfolg versucht:
Dummy angelegt:
define ThermostatHeizungVar dummy
attr ThermostatHeizungVar group Heizung
attr ThermostatHeizungVar room Haus


Ich setze z.B. ThermostatHeizungVar auf ThermostatUnten.
Mit unterem Code bekomme ich dann den gemessenen Wert des Thermostats ausgelesen.

(ReadingsVal(Value("ThermostatHeizungVar"),"measured-temp",99))


In einem Threshold aber nicht.
define thHeizung THRESHOLD ReadingsVal(Value("ThermostatHeizungVar"),"measured-temp",99):1:SollTemperatur:state SchalterHeizung

Wie kann ich das bewerkstelligen?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 31 Oktober 2018, 19:06:22
Die Syntax lautet:

define <name> THRESHOLD <sensor>:<reading>:<hysteresis>:<target_value>:<offset>

Da steht nichts von Perl-Funktionen.

Du kannst ein Reading dynamisch erstellen (userReadings), welches du im Threshold angeben kannst.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: egmontr am 01 November 2018, 16:02:47
Zitat von: Damian am 31 Oktober 2018, 19:06:22
Du kannst ein Reading dynamisch erstellen (userReadings), welches du im Threshold angeben kannst.
Wo wird das userReading angegeben und wie wird es im Threshold angegeben.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 01 November 2018, 21:18:50
Zitat von: egmontr am 01 November 2018, 16:02:47
Wo wird das userReading angegeben und wie wird es im Threshold angegeben.

Wo du willst, und dann wie in der Doku beschrieben: define <name> THRESHOLD <device>:<reading> ...
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Superwutz am 15 November 2018, 11:16:43
Hallöchen

ich würde gerne meinen Heizstab in Abhängig von meine PV-Anlage steuern. Diese soll den Heizstab ab einem gewissen Wer einfach auf on oder off setzten.

Dazu habe ich folgenden code probiert:

define HeizstabControl THRESHOLD Wechselrichter:SPOT_PACTOT:2500 Heizstab|set @  on|set @ off

Leider passiert hier soweit ich das mitkriege gar nichts sobald der Wert überschritten wird.
Wo habe ich mich vertan? :(
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 12 Februar 2019, 09:59:04
Moin,

an anderer Stelle hatte ich es bereits gepostet. Aber besser nochmal hier...

Ich fände es gut, wenn es ein Attribut "wait" geben würde, ähnlich wie bei DOIF.
Damit könnte man Falschmeldungen von Sensoren abpuffern.

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 12 Februar 2019, 12:28:15
Zitat von: Bartimaus am 12 Februar 2019, 09:59:04
Moin,

an anderer Stelle hatte ich es bereits gepostet. Aber besser nochmal hier...

Ich fände es gut, wenn es ein Attribut "wait" geben würde, ähnlich wie bei DOIF.
Damit könnte man Falschmeldungen von Sensoren abpuffern.
Das stimmt, allerdings habe ich die Weiterentwicklung bei diesem Modul eingestellt und mache nur noch Korrekturen.

Ich habe bei mir auch schon viele THRESHOLDS durch DOIFs ersetzt.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 12 Februar 2019, 12:34:36
Zitat von: Damian am 12 Februar 2019, 12:28:15
Ich habe bei mir auch schon viele THRESHOLDS durch DOIFs ersetzt.

:o :o

Schade
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 12 Februar 2019, 13:15:50
Zitat von: Bartimaus am 12 Februar 2019, 12:34:36
:o :o

Schade
ja, gerade bei wait wäre der Aufwand nicht unerheblich, weil man Timer ins THRESHOLD-Modul einbauen müsste. Z. Zt. kennt THRESHOLD kein timergesteuertes Verhalten.

Um Falschmeldungen, zu vermeiden, weil z. B. Temperatursensoren falsche Daten liefern, kann man sich neuerdings mit dem Median im DOIF behelfen:

define bereinigt DOIF ##
attr event_Readings outdoor:[outdoor:temperature:med]


Beim THRESHOLD muss man dann nur hier den Sensor outdoor:temperature auf bereingt:outdoor ändern.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 12 Februar 2019, 13:36:52
Ah, auch gut. Danke für den Hinweis.

Ich bereinige das jetzt allerdings nach einem Tip von Otto, direkt in OWTHERM bzw. OWAD mit einem Userreading

{ReadingsNum("Gerät","Reading","") if (ReadingsNum("Gerät","Reading","") < 100)}

das hat für mich noch einen weiteren Vorteil, das ich im FileLog des Temp_Devices die fehlerhaften Logeinträge nicht per "ignoreregexp" rausfiltern muss.

Aber wo ich Dich gerade schonmal am Apparat hab (  ::) )

Meinen Kellerentfeuchter schalte ich per THRESHOLD so wie in der Commandref beschrieben.

Sollwert 60%, Hysterese 5.
Dennoch hat sich der Entfeuchter bei 58% eingeschaltet. Ich dachte cmd_gt1 wird erst bei einem Wert > 60% eingeschaltet.....  :-\
Ich muss das später nochmal raussuchen
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 12 Februar 2019, 16:31:21
Zitat von: Bartimaus am 12 Februar 2019, 13:36:52
Sollwert 60%, Hysterese 5.
Dennoch hat sich der Entfeuchter bei 58% eingeschaltet. Ich dachte cmd_gt1 wird erst bei einem Wert > 60% eingeschaltet.....  :-\
Ich muss das später nochmal raussuchen

Sollwert 60%, Hysterese 5, bedeutet von 55 % bis 60 %, passt also.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 12 Februar 2019, 18:24:14
Hm,

dann habe ich das falsch interpretiert....

Es soll gelüftet werden, wenn die Feuchtigkeit im Zimmer über 70 % ist; bei 60 % geht der Lüfter wieder aus.
define TH_hum THRESHOLD sens:humidity:10:70 ventilator|set @ on|set @ off|1
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 12 Februar 2019, 19:30:54
Zitat von: Bartimaus am 12 Februar 2019, 18:24:14
Hm,

dann habe ich das falsch interpretiert....

Es soll gelüftet werden, wenn die Feuchtigkeit im Zimmer über 70 % ist; bei 60 % geht der Lüfter wieder aus.
define TH_hum THRESHOLD sens:humidity:10:70 ventilator|set @ on|set @ off|1


Ist im Wesentlichen das Gleiche, der desired-Wert ist immer die Obergrenze, Hysterese wird von der Obergrenze abgezogen und bestimmt die Untergrenze.

Warum bei dir bei 58% geschaltet wurde, ist mir nicht ganz klar, normalerweise sollte er bei über 60% einschalten.

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 12 Februar 2019, 19:34:37
Zitat von: Damian am 12 Februar 2019, 19:30:54
.......normalerweise sollte er bei über 60% einschalten.

..... genau das hat mich gewundert. Wie gesagt, ich werde das nochmal beobachten.
Ansonsten bau ich mir ein DOIF  8)
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 12 Februar 2019, 21:42:21
So,

habe mal die Hysterese auf 15|60 gestellt.

List des THRESHOLD:

Internals:
   DEF        Temp_Kino:Feuchte:15:60 Shelly.Luftentfeuchter |set @ on|set @ off|1
   NAME       Th_KellerLueftung
   NR         1443
   NTFY_ORDER 50-Th_KellerLueftung
   STATE      active 60.0
   TYPE       THRESHOLD
   cmd1_gt    set Shelly.Luftentfeuchter on
   cmd2_lt    set Shelly.Luftentfeuchter off
   cmd_default 1
   hysteresis 15
   init_desired_value 60
   offset     0
   sensor     Temp_Kino
   sensor_reading Feuchte
   READINGS:
     2019-02-12 21:03:31   cmd             cmd1_gt
     2019-02-12 20:24:43   desired_value   60
     2019-02-12 20:25:03   mode            active
     2019-02-12 21:03:31   sensor_value    49.000
     2019-02-12 21:03:31   state           active 60.0
     2019-02-12 20:24:43   threshold_max   60
     2019-02-12 20:24:43   threshold_min   45
Attributes:
   disable    0
   number_format %.1f
   room       Heizung,Kino
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv


Logauszug des THRESHOLD
2019-02-12_19:39:29 Th_KellerLueftung mode: deactivated
2019-02-12_20:24:43 Th_KellerLueftung threshold_min: 45
2019-02-12_20:24:43 Th_KellerLueftung threshold_max: 60
2019-02-12_20:24:43 Th_KellerLueftung cmd: wait for next cmd
2019-02-12_20:24:43 Th_KellerLueftung desired_value: 60
2019-02-12_20:24:43 Th_KellerLueftung mode: active
2019-02-12_20:25:03 Th_KellerLueftung initialized
2019-02-12_20:25:03 Th_KellerLueftung mode: active
2019-02-12_20:25:03 Th_KellerLueftung cmd: wait for next cmd
2019-02-12_21:03:31 Th_KellerLueftung sensor_value: 49.000
2019-02-12_21:03:31 Th_KellerLueftung cmd: cmd1_gt
2019-02-12_21:03:31 Th_KellerLueftung active 60.0


Log des Feuchtesensors:
2019-02-12_17:58:12 Temp_Kino Taupunkt: 8.9
2019-02-12_19:43:20 Temp_Kino Temperatur: 20.060
2019-02-12_19:43:20 Temp_Kino Taupunkt: 8.5
2019-02-12_19:48:21 Temp_Kino Temperatur: 20.640
2019-02-12_19:48:21 Temp_Kino Taupunkt: 8.9
2019-02-12_20:18:23 Temp_Kino Feuchte: 47.980
2019-02-12_20:18:23 Temp_Kino Taupunkt: 9.5
2019-02-12_21:03:30 Temp_Kino Feuchte: 49.000
2019-02-12_21:03:30 Temp_Kino Taupunkt: 9.9


Der Sensor war nie > 60%, aber grösser als 45%, deswegen ist er wohl angesprungen

Vielleicht erkennst Du ja den Fehler....
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 13 Februar 2019, 19:55:23
Wenn man das THRESHOLD Modul aktiviert, dann wird der Wert  ausgewertet und wenn er nicht unterhalb des minimalen Wertes liegt (hier 45) dann wird der Lüfter eingeschaltet. Das ist bewusst so programmiert, da der Anwender bis auf den minimalen Wert herunter will. Wenn man das Modul nicht manuell per set aktiviert, wird nach dem Abschalten bis zum maximalen Wert gewartet, bis der Lüfter wieder an geht. Also alles im grünen Bereich.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 13 Februar 2019, 20:15:28
Hallo Damian,

vielen Dank für die Analyse und erschöpfende Antwort.
LG
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Manfi am 02 Dezember 2020, 13:23:22
Hallo,

Habe mir eine Heizungssteuerung gebaut, bei der ich den Heizkessel wahlweise über ein konventionelles Raumthermostat oder über FHEM mit dem THRESHOLD Modul schalten kann.
Es funktioniert auch alles sehr gut, nur ist mir aufgefallen, daß bei Befehlen, wie z.B. set THRESHOLD_xyz active/deactivated Attribute gesetzt oder gelöscht werden und diese Strukturänderungen wollen dann auch gesichert werden . Ich habe das bei keinem anderen Modul so gesehen. Deshalb meine Frage: Ist das so gewollt, oder ist das ein Bug?

MfG

Manfi
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 02 Dezember 2020, 14:00:41
ja, in diesem Fall entspricht das dem Setzen/Löschen des Attributes disable, was zur Veränderung der Konfiguration führt.


Wenn du nur für einen gewissen Zeitraum das Modul "deaktivieren" willst, dann kannst du auch mit set desired einen Wert setzen, der normalerweise nicht erreicht wird.

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: NormanK am 05 Dezember 2020, 19:11:33
Hallo,
danke für dieses Modul! Ich bin gerad dabei mich damit etwas zu beschäftigen, meine Frage ist:
Kann ich das Modul als Temperaturdifferenz-Regler mit Ein- u. Ausschalthysterese verwenden ?

Einschalthysterese = 10K
Ausschalthysterese = 5K

Regel:
temp1 + Einschalthysterese  > temp2 = Output set on;
temp1 + Ausschalthysterese < temp2 = Output set off;

Vielleicht kann mir da jemand auf die Sprünge helfen, Danke im voraus.

Norman

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 05 Dezember 2020, 19:39:50
Es ist wie folgt programmiert:

wenn (temp > desired) off
wenn (temp < desired - hysterese) on

Dein Beispiel hat (10-5)=5 Grad Differenz zwischen Ein- und Ausschalten. Die Hysterese beträgt also 5 Grad.

Du musst also:

Die Vorgabetemperatur temp1 (desired) um zehn Grad höher setzen
und Hysterese auf 5 Grad setzen


Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: amenomade am 05 Dezember 2020, 21:31:41
Zitat von: Damian am 05 Dezember 2020, 19:39:50
Die Vorgabetemperatur temp1 (desired) um zehn Grad höher setzen

Lässt sich wahrscheinlich mit "offset" in THRESHOLD einstellen, oder?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 05 Dezember 2020, 21:41:39
Zitat von: amenomade am 05 Dezember 2020, 21:31:41
Lässt sich wahrscheinlich mit "offset" in THRESHOLD einstellen, oder?
Stimmt. Die Entwicklung des Moduls liegt schon etwas zurück, aber dafür gibt es die Commandref, da sollte ich auch bei eigenen Modulen öfters mal nachschauen :)
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: NormanK am 05 Dezember 2020, 22:07:18
Hallo Damian,
danke für die Antwort. Ich habe mich da nicht präzise genug bzw. missverständlich ausgedrückt. - Da sollen beide Temperaturen, Messwerte sein. Das Prinzip ist aber letztlich gleich, wie von dir beschrieben...

Ich hab das jetzt so gemacht:

define DifferenzRegler THRESHOLD SensorDummy2:temperature:5:SensorDummy1:temperature Relais_3

attr DifferenzRegler target_func _tv+10

attr DifferenzRegler state_cmd1_gt off

attr DifferenzRegler state_cmd2_lt on

Auf diese Weise erhalte ich die gewünschte Funktion.

Norman

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 17 Juli 2021, 15:40:41
Moin,

seit einiger Zeit habe ich das Gefühl das das Threshold-Modul bei mir zur Kellerentfeuchtung nicht mehr richtig funktioniert.

Obwohl der Schwellenwert (63% Rel. feuchte) mit aktuell 67% weit überschritten ist, springt das Modul nicht an.
Die Konfig lief mind. 2 Jahre ohne Probleme, nur momentan halt nicht. Hat jemand ne Idee ?

Hier mal die Konfig:

Internals:
   DEF        WeatherScreenPro:indoorHumidity:7:63 Shelly.Luftentfeuchter |set @ on|set @ off|1
   FUUID      5c7244ca-f33f-dcb4-a6b4-d17d7169a4656238
   NAME       Th_KellerLueftung
   NR         1279
   NTFY_ORDER 50-Th_KellerLueftung
   STATE      active off 63.0 67.0
   TYPE       THRESHOLD
   cmd1_gt    set Shelly.Luftentfeuchter on
   cmd2_lt    set Shelly.Luftentfeuchter off
   cmd_default 1
   hysteresis 7
   init_desired_value 63
   offset     0
   sensor     WeatherScreenPro
   sensor_reading indoorHumidity
   READINGS:
     2021-07-17 15:33:12   cmd             cmd1_gt
     2021-07-13 16:20:35   desired_value   63
     2021-07-17 15:33:12   mode            active
     2021-07-17 10:46:51   sensor_value    67
     2021-07-17 15:33:12   state           active off 63.0 67.0
     2021-07-13 16:20:35   threshold_max   63
     2021-07-13 16:20:35   threshold_min   56
Attributes:
   room       0.2 Kino,Heizung,Kino
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _sc _dv _s1v
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Juli 2021, 16:05:18
Das Modul hat doch um 15:33:12 geschaltet:

2021-07-17 15:33:12   cmd             cmd1_gt

Wenn dein Luftentfeuchter nicht angeht, dann liegt es eher an der Kommunikation zum Shelly.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 17 Juli 2021, 16:18:34
Hallo Damian,

danke für die schnelle Rückmeldung.
Äh, ja,  ::) aber wieso steht da "active off" ? Wenn der den Luftentfeuchter eingeschaltet, müsste da doch stehen "active on", oder ? Ich meine so war es "früher".

Das Modul hatte ich manuell auf "active" gesetzt... also "set xyz active", daher der Status
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Juli 2021, 16:26:37
Weil das offenbar bei dir so definiert ist, der Befehl beim Überschreiten des Wertes lautet:

cmd1_gt    set Shelly.Luftentfeuchter on

der dazugehöriger Status aber:

state_cmd1_gt off

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Bartimaus am 17 Juli 2021, 16:34:26
 ::) Oh Mann..... danke. Manchmal sieht man den Wald vor lauter Bäumen nicht....
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: uwirt am 26 Dezember 2021, 18:18:32
Hallo alle,

ich habe einen Lüfter der mittels THRESHOLD bei einer Minimaltemperatur einschaltet und bei Maximaltemperatur wieder ausschaltet.
Das funktioniert eigentlich ganz gut.
Nun habe ich aus anderen Gründen einen nächtlichen Restart des Ubuntu-Servers um 04:00h programmiert. Seitdem rutscht die Temperatur nach 04:00h runter ohne dass das THRESHOLD Modul greift. Wenn ich das abhängige Device von Hand schalte funktioniert es wieder wie erwartet:

defmod Thermostat THRESHOLD HM_WDS40_Veranda:temperature HM_PM_Veranda
attr Thermostat devStateStyle style="text-align:right"
attr Thermostat number_format %.1f
attr Thermostat room Sensors
attr Thermostat state_cmd1_gt off
attr Thermostat state_cmd2_lt on
attr Thermostat state_format _m _dv _sc

setstate Thermostat active 14.0 off
setstate Thermostat 2021-12-26 16:35:38 cmd cmd1_gt
setstate Thermostat 2021-02-03 21:05:52 desired_value 14
setstate Thermostat 2021-02-03 21:05:52 mode active
setstate Thermostat 2021-12-26 17:39:30 sensor_value 13.2
setstate Thermostat 2021-12-26 16:35:38 state active 14.0 off
setstate Thermostat 2021-02-03 21:05:52 threshold_max 14
setstate Thermostat 2021-02-03 21:05:52 threshold_min 13


An was könnte das wohl liegen?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 26 Dezember 2021, 20:29:49
Zitat von: uwirt am 26 Dezember 2021, 18:18:32
Hallo alle,

ich habe einen Lüfter der mittels THRESHOLD bei einer Minimaltemperatur einschaltet und bei Maximaltemperatur wieder ausschaltet.
Das funktioniert eigentlich ganz gut.
Nun habe ich aus anderen Gründen einen nächtlichen Restart des Ubuntu-Servers um 04:00h programmiert. Seitdem rutscht die Temperatur nach 04:00h runter ohne dass das THRESHOLD Modul greift. Wenn ich das abhängige Device von Hand schalte funktioniert es wieder wie erwartet:

defmod Thermostat THRESHOLD HM_WDS40_Veranda:temperature HM_PM_Veranda
attr Thermostat devStateStyle style="text-align:right"
attr Thermostat number_format %.1f
attr Thermostat room Sensors
attr Thermostat state_cmd1_gt off
attr Thermostat state_cmd2_lt on
attr Thermostat state_format _m _dv _sc

setstate Thermostat active 14.0 off
setstate Thermostat 2021-12-26 16:35:38 cmd cmd1_gt
setstate Thermostat 2021-02-03 21:05:52 desired_value 14
setstate Thermostat 2021-02-03 21:05:52 mode active
setstate Thermostat 2021-12-26 17:39:30 sensor_value 13.2
setstate Thermostat 2021-12-26 16:35:38 state active 14.0 off
setstate Thermostat 2021-02-03 21:05:52 threshold_max 14
setstate Thermostat 2021-02-03 21:05:52 threshold_min 13


An was könnte das wohl liegen?

Es fehlen ja noch mindestens über 0,2 Grad zum Schalten. threshold_min steht bei 13 Grad.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: uwirt am 11 Januar 2022, 13:21:24
Das hier war nur ein Beispiel.

Es ist in der Tat so dass es in der Regel funktioniert.

Offenbar kann es aber vorkommen (geschätzt alle vierzehn Tage) dass, je nach dem Schaltzustand vor dem Neustart des PC's das Modul THRESHOLD die Position des Schalters nicht erkennt und dann bei Unterschreitung von 13.0 Grad die Heizung nicht einschaltet.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 11 Januar 2022, 13:30:00
Dann musst du ein Beispiel liefern, wo es vermeintlich nicht funktioniert.

Dann kann man erkennen, warum etwas hätte passieren sollen oder eben nicht.

Sonst kann man keine Fehleranalyse machen.

Interne Programmierfehler hätten bei dem Alter des Moduls schon längst auffallen müssen.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: uwirt am 14 Januar 2022, 09:17:50
Ich habe den Verlauf geloggt und heute Nacht war es wieder soweit dass das Modul nicht mehr ansprach:

2022-01-13_23:44:17 Thermostat sensor_value: 13.0
2022-01-13_23:51:32 Thermostat sensor_value: 12.9
2022-01-13_23:51:32 Thermostat cmd: cmd2_lt
2022-01-13_23:51:32 Thermostat active 14.0 on
2022-01-13_23:59:48 Thermostat sensor_value: 13.0
2022-01-14_00:02:04 Thermostat sensor_value: 13.1
2022-01-14_00:04:07 Thermostat sensor_value: 13.2
2022-01-14_00:06:58 Thermostat sensor_value: 13.3
2022-01-14_00:09:36 Thermostat sensor_value: 13.4
2022-01-14_00:11:59 Thermostat sensor_value: 13.5
2022-01-14_00:14:07 Thermostat sensor_value: 13.6
2022-01-14_00:17:06 Thermostat sensor_value: 13.7
2022-01-14_00:22:19 Thermostat sensor_value: 13.8
2022-01-14_00:24:33 Thermostat sensor_value: 13.9
2022-01-14_00:26:34 Thermostat sensor_value: 14.0
2022-01-14_00:29:24 Thermostat sensor_value: 14.1
2022-01-14_00:29:24 Thermostat cmd: cmd1_gt
2022-01-14_00:29:24 Thermostat active 14.0 off
2022-01-14_00:32:00 Thermostat sensor_value: 14.2
2022-01-14_00:39:24 Thermostat sensor_value: 14.0
2022-01-14_00:44:33 Thermostat sensor_value: 13.8
2022-01-14_00:46:46 Thermostat sensor_value: 13.7
2022-01-14_00:49:49 Thermostat sensor_value: 13.6
2022-01-14_00:52:37 Thermostat sensor_value: 13.5
2022-01-14_00:55:11 Thermostat sensor_value: 13.4
2022-01-14_00:59:35 Thermostat sensor_value: 13.3
2022-01-14_01:02:30 Thermostat sensor_value: 13.2
2022-01-14_01:07:36 Thermostat sensor_value: 13.1
2022-01-14_01:09:47 Thermostat sensor_value: 13.0
2022-01-14_01:18:07 Thermostat sensor_value: 12.9
2022-01-14_01:18:07 Thermostat cmd: cmd2_lt
2022-01-14_01:18:07 Thermostat active 14.0 on
2022-01-14_01:25:19 Thermostat sensor_value: 13.0
2022-01-14_01:27:58 Thermostat sensor_value: 13.2
2022-01-14_01:32:31 Thermostat sensor_value: 13.3
2022-01-14_01:35:30 Thermostat sensor_value: 13.4
2022-01-14_01:40:45 Thermostat sensor_value: 13.6
2022-01-14_01:45:02 Thermostat sensor_value: 13.8
2022-01-14_01:50:29 Thermostat sensor_value: 14.0
2022-01-14_01:54:59 Thermostat sensor_value: 14.1
2022-01-14_01:54:59 Thermostat cmd: cmd1_gt
2022-01-14_01:54:59 Thermostat active 14.0 off
2022-01-14_01:57:56 Thermostat sensor_value: 14.2
2022-01-14_02:00:39 Thermostat sensor_value: 14.1
2022-01-14_02:03:08 Thermostat sensor_value: 14.0
2022-01-14_02:05:21 Thermostat sensor_value: 13.9
2022-01-14_02:08:24 Thermostat sensor_value: 13.8
2022-01-14_02:11:13 Thermostat sensor_value: 13.7
2022-01-14_02:13:49 Thermostat sensor_value: 13.6
2022-01-14_02:16:08 Thermostat sensor_value: 13.5
2022-01-14_02:18:14 Thermostat sensor_value: 13.4
2022-01-14_02:21:10 Thermostat sensor_value: 13.3
2022-01-14_02:26:17 Thermostat sensor_value: 13.2
2022-01-14_02:28:29 Thermostat sensor_value: 13.1
2022-01-14_02:34:18 Thermostat sensor_value: 13.0
2022-01-14_02:41:14 Thermostat sensor_value: 12.9
2022-01-14_02:41:14 Thermostat cmd: cmd2_lt
2022-01-14_02:41:14 Thermostat active 14.0 on
2022-01-14_02:46:46 Thermostat sensor_value: 13.0
2022-01-14_02:49:11 Thermostat sensor_value: 13.1
2022-01-14_02:54:21 Thermostat sensor_value: 13.3
2022-01-14_02:57:07 Thermostat sensor_value: 13.4
2022-01-14_03:01:54 Thermostat sensor_value: 13.5
2022-01-14_03:03:57 Thermostat sensor_value: 13.6
2022-01-14_03:06:48 Thermostat sensor_value: 13.7
2022-01-14_03:09:26 Thermostat sensor_value: 13.8
2022-01-14_03:19:39 Thermostat sensor_value: 14.1
2022-01-14_03:19:39 Thermostat cmd: cmd1_gt
2022-01-14_03:19:39 Thermostat active 14.0 off
2022-01-14_03:22:08 Thermostat sensor_value: 14.2
2022-01-14_03:26:23 Thermostat sensor_value: 14.1
2022-01-14_03:29:13 Thermostat sensor_value: 14.0
2022-01-14_03:31:49 Thermostat sensor_value: 13.9
2022-01-14_03:36:16 Thermostat sensor_value: 13.7
2022-01-14_03:39:13 Thermostat sensor_value: 13.6
2022-01-14_03:41:54 Thermostat sensor_value: 13.5
2022-01-14_03:44:22 Thermostat sensor_value: 13.4
2022-01-14_03:57:19 Thermostat sensor_value: 13.1
2022-01-14_03:59:23 Thermostat sensor_value: 13.0
2022-01-14_04:06:49 Thermostat sensor_value: 12.9
2022-01-14_04:09:35 Thermostat sensor_value: 12.8
2022-01-14_04:20:11 Thermostat sensor_value: 12.7
2022-01-14_04:22:14 Thermostat sensor_value: 12.6
2022-01-14_04:30:09 Thermostat sensor_value: 12.5
2022-01-14_04:35:17 Thermostat sensor_value: 12.4
2022-01-14_04:42:48 Thermostat sensor_value: 12.3
2022-01-14_04:54:46 Thermostat sensor_value: 12.2
2022-01-14_04:57:43 Thermostat sensor_value: 12.1
2022-01-14_05:00:26 Thermostat sensor_value: 12.0
2022-01-14_05:15:56 Thermostat sensor_value: 11.9
2022-01-14_05:20:56 Thermostat sensor_value: 11.8
2022-01-14_05:26:03 Thermostat sensor_value: 11.7
2022-01-14_05:36:37 Thermostat sensor_value: 11.6
2022-01-14_05:46:32 Thermostat sensor_value: 11.5
2022-01-14_05:56:52 Thermostat sensor_value: 11.4
2022-01-14_06:03:42 Thermostat sensor_value: 11.3
2022-01-14_06:11:34 Thermostat sensor_value: 11.2
2022-01-14_06:24:08 Thermostat sensor_value: 11.1
2022-01-14_06:33:54 Thermostat sensor_value: 11.0
2022-01-14_06:53:50 Thermostat sensor_value: 10.9
2022-01-14_07:12:20 Thermostat sensor_value: 10.8
2022-01-14_07:14:47 Thermostat sensor_value: 10.7
2022-01-14_07:35:17 Thermostat sensor_value: 10.6
2022-01-14_07:48:09 Thermostat sensor_value: 10.5
2022-01-14_07:57:57 Thermostat sensor_value: 10.4
2022-01-14_08:17:46 Thermostat sensor_value: 10.3
2022-01-14_08:32:56 Thermostat sensor_value: 10.2
2022-01-14_08:58:10 Thermostat sensor_value: 10.1
2022-01-14_09:08:47 Thermostat sensor_value: 10.2


Wie man sehen kann funktioniert zuerst alles bestens. Nur leider ab 04:00h mit dem neu-Start des FHEM Servers schaltet das Modul die Heizung nicht mehr ein obwohl die Temperatur unterhalb der definierten Temperatur taucht. Ich muss dann jeweils die Heizung von Hand schalten und danach läuft alles wieder wie gehabt.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 Januar 2022, 10:07:45
Dann hat das offenbar etwas mit dem Neustart zu tun. Dann brauche ich, wie schon geschrieben, list nach 04:00 Uhr, wo das Modul hätte schalten sollen.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: uwirt am 14 Januar 2022, 10:22:32
Ist das hier gemeint?

list Thermostat

Internals:
   DEF        HM_WDS40_Veranda:temperature HM_PM_Veranda
   FUUID      601add77-f33f-521d-1cdc-e5608d4ea5aa5b08
   NAME       Thermostat
   NR         44
   NTFY_ORDER 50-Thermostat
   STATE      active 14.0 on
   TYPE       THRESHOLD
   cmd1_gt    set HM_PM_Veranda off
   cmd2_lt    set HM_PM_Veranda on
   cmd_default 2
   hysteresis 1
   offset     0
   sensor     HM_WDS40_Veranda
   sensor_reading temperature
   READINGS:
     2022-01-13 23:51:31   cmd             cmd2_lt
     2021-02-03 21:05:52   desired_value   14
     2021-02-03 21:05:52   mode            active
     2022-01-14 10:19:56   sensor_value    12.4
     2022-01-13 23:51:31   state           active 14.0 on
     2021-02-03 21:05:52   threshold_max   14
     2021-02-03 21:05:52   threshold_min   13
Attributes:
   devStateStyle style="text-align:right"
   number_format %.1f
   room       Sensors
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv _sc
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 Januar 2022, 10:37:28
     2022-01-13 23:51:31   cmd             cmd2_lt
     2021-02-03 21:05:52   desired_value   14
     2021-02-03 21:05:52   mode            active
     2022-01-14 10:19:56   sensor_value    12.4
     2022-01-13 23:51:31   state           active 14.0 on
     2021-02-03 21:05:52   threshold_max   14
     2021-02-03 21:05:52   threshold_min   13



hiernach hat das Modul um 23:51:31 eingeschaltet, weil die Temperatur zu niedrig war (cmd2_lt), nun ist die Temperatur mit 12.4 unter 13 Grad, daher ist für das Modul die Welt in Ordnung, weil es ja bereits den Aktor um 23:51:31 eingeschaltet hat, der gleiche Befehl wird nicht wiederholt.

Ich gehe davon aus, dass du vor dem Durchstarten des Systems den Zustand deines Systems nicht gesichert hast, so dass das Modul nach dem Neustart von einem falschen Zustand:

2022-01-13 23:51:31   cmd             cmd2_lt

ausgeht.

Es hat ja laut Log danach noch mehrfach geschaltet, also kann es nicht der letzte Schaltzustand gewesen sein.

Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: uwirt am 14 Januar 2022, 12:13:11
Ich habe den Neustart des Ubuntu-PC's mittels crontab um 04:00h programmiert.

Meinst du mit dem System den PC oder FHEM? Wie kann ich das System vor dem Neustart denn sichern?

attr global autosave 1

Danke für deine Hilfe!
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 14 Januar 2022, 13:29:59
Zitat von: uwirt am 14 Januar 2022, 12:13:11
Ich habe den Neustart des Ubuntu-PC's mittels crontab um 04:00h programmiert.

Meinst du mit dem System den PC oder FHEM? Wie kann ich das System vor dem Neustart denn sichern?

attr global autosave 1

Danke für deine Hilfe!

Ich meine das FHEM-System.

Ich weiß nicht was in der crontab drin steht. Auf jeden Fall sollte FHEM korrekt heruntergefahren werden, bevor man es wieder hochfährt (shutdown restart) - wie halt bei jedem System.
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: uwirt am 17 Januar 2022, 10:26:38
Ich habe nun "attr global autosave 1" gesetzt und mit at einen FHEM Neu-Start um 04:30h programmiert.

Trotzdem ist heute Nacht die Heizung nicht mehr ausgeschaltet worden:

2022-01-17_02:43:18 Thermostat cmd: cmd1_gt
2022-01-17_02:43:18 Thermostat active 14.0 off
2022-01-17_02:46:21 Thermostat sensor_value: 14.2
2022-01-17_02:51:45 Thermostat sensor_value: 14.1
2022-01-17_02:54:05 Thermostat sensor_value: 14.0
2022-01-17_02:59:07 Thermostat sensor_value: 13.8
2022-01-17_03:04:14 Thermostat sensor_value: 13.7
2022-01-17_03:09:28 Thermostat sensor_value: 13.6
2022-01-17_03:12:16 Thermostat sensor_value: 13.5
2022-01-17_03:14:49 Thermostat sensor_value: 13.4
2022-01-17_03:17:07 Thermostat sensor_value: 13.3
2022-01-17_03:22:05 Thermostat sensor_value: 13.2
2022-01-17_03:24:44 Thermostat sensor_value: 13.1
2022-01-17_03:29:19 Thermostat sensor_value: 13.0
2022-01-17_03:35:05 Thermostat sensor_value: 12.9
2022-01-17_03:35:05 Thermostat cmd: cmd2_lt
2022-01-17_03:35:05 Thermostat active 14.0 on
2022-01-17_03:41:55 Thermostat sensor_value: 13.0
2022-01-17_03:44:46 Thermostat sensor_value: 13.1
2022-01-17_03:47:24 Thermostat sensor_value: 13.2
2022-01-17_03:49:47 Thermostat sensor_value: 13.3
2022-01-17_03:51:55 Thermostat sensor_value: 13.4
2022-01-17_03:54:54 Thermostat sensor_value: 13.5
2022-01-17_03:57:39 Thermostat sensor_value: 13.6
2022-01-17_04:00:07 Thermostat sensor_value: 13.7
2022-01-17_04:06:50 Thermostat sensor_value: 13.8
2022-01-17_04:07:12 Thermostat sensor_value: 13.9
2022-01-17_04:09:48 Thermostat sensor_value: 14.0
2022-01-17_04:12:09 Thermostat sensor_value: 14.1
2022-01-17_04:14:15 Thermostat sensor_value: 14.2
2022-01-17_04:19:54 Thermostat sensor_value: 14.3
2022-01-17_04:22:21 Thermostat sensor_value: 14.4
2022-01-17_04:27:37 Thermostat sensor_value: 14.5
2022-01-17_04:32:28 Thermostat sensor_value: 14.6
2022-01-17_04:35:18 Thermostat sensor_value: 14.8
2022-01-17_04:40:18 Thermostat sensor_value: 14.9
2022-01-17_04:42:58 Thermostat sensor_value: 15.0
2022-01-17_04:47:35 Thermostat sensor_value: 15.1
2022-01-17_04:50:35 Thermostat sensor_value: 15.2
2022-01-17_04:53:22 Thermostat sensor_value: 15.3
2022-01-17_04:55:54 Thermostat sensor_value: 15.4
2022-01-17_05:00:14 Thermostat sensor_value: 15.5
2022-01-17_05:03:07 Thermostat sensor_value: 15.6
2022-01-17_05:05:46 Thermostat sensor_value: 15.7
2022-01-17_05:10:19 Thermostat sensor_value: 15.8
2022-01-17_05:16:02 Thermostat sensor_value: 15.9
2022-01-17_05:18:33 Thermostat sensor_value: 16.0
2022-01-17_05:25:41 Thermostat sensor_value: 16.1
2022-01-17_05:30:39 Thermostat sensor_value: 16.2


Das List sieht so aus:

Internals:
   DEF        HM_WDS40_Veranda:temperature HM_PM_Veranda
   FUUID      601add77-f33f-521d-1cdc-e5608d4ea5aa5b08
   NAME       Thermostat
   NR         44
   NTFY_ORDER 50-Thermostat
   STATE      active 14.0 off
   TYPE       THRESHOLD
   cmd1_gt    set HM_PM_Veranda off
   cmd2_lt    set HM_PM_Veranda on
   cmd_default 2
   hysteresis 1
   offset     0
   sensor     HM_WDS40_Veranda
   sensor_reading temperature
   READINGS:
     2022-01-16 23:54:10   cmd             cmd1_gt
     2021-02-03 21:05:52   desired_value   14
     2021-02-03 21:05:52   mode            active
     2022-01-17 10:19:07   sensor_value    19.8
     2022-01-16 23:54:10   state           active 14.0 off
     2021-02-03 21:05:52   threshold_max   14
     2021-02-03 21:05:52   threshold_min   13
Attributes:
   devStateStyle style="text-align:right"
   number_format %.1f
   room       Sensors
   state_cmd1_gt off
   state_cmd2_lt on
   state_format _m _dv _sc


Der Eintrag im Crontab ist folgendermassen:

0 4 * * * sudo shutdown -r

Ich weiss nicht was ich noch tun könnte?
Titel: Antw:Neues Modul - THRESHOLD
Beitrag von: Damian am 17 Januar 2022, 10:39:02
autosave dürfte für die config-Datie sein, es wird bei Fehlern auch wieder auf 0 gesetzt.

mit sudo shutdown -r wird offenbar FHEM nicht sauber heruntergefahren, als Folge wird die save-Datei nicht gespeichert, die Folgen haben wir schon besprochen.
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: egmontr am 28 November 2023, 11:28:51
Hallo!

Ich schalte seit Jahren mit Hilfe von
define thHeizung THRESHOLD ThermostatHeizung:measured-temp:1:SollTemperatur:state SchalterHeizung
meine Heizung ein und aus.

ThermostatHeizung ist ein HM-CC-TC
SollTemperatur ist ein Dummy
SchalterHeizung ist ein HM-LC-SW1-SM

Funktioniert prima.

Nun wollte ich einen zweiten HM-CC-TC mit OR auswerten und darüber die Heizung steuern. Je nachdem welcher zuerst zuschlägt. Leider schaltet er aber nur, wenn der erste Thermostat ThermostatHeizung unter Temperatur ist.
define thHeizung THRESHOLD ThermostatHeizung:measured-temp:1:SollTemperatur:state OR ThermostatEingang:measured-temp:1:SollTemperatur:state SchalterHeizung
attr thHeizung alias Fhem Thermostat Heizung
attr thHeizung group Heizung
attr thHeizung number_format %.1f
attr thHeizung room Haus
attr thHeizung state_cmd1_gt off
attr thHeizung state_cmd2_lt on
attr thHeizung state_format _m _dv _sc

Was mache ich falsch?
Titel: Aw: Neues Modul - THRESHOLD
Beitrag von: Damian am 28 November 2023, 13:31:09
Bei AND bzw. OR kanns du nur ein zweites Device angeben, das einen bestimmten Zustand (Inhalt des Readings) einnimmt. Man kann nicht einen zweiten Temperatursensor angeben.
Allerdings kann man über ein zweites THRESHOLD-Device zwei Temperatursensoren kombinieren.

In den Beispielen ist aufgezeigt, wie man mit OR zwei THRESHOLD-Devices verknüpfen kann:


ZitatEs soll bis 21 Grad geheizt werden, aber nur, wenn die Außentemperatur unter 15 Grad ist:

define TH_outdoor THRESHOLD outdoor:temperature:0:15
define TH_room THRESHOLD indoor OR TH_outdoor:state:off heating
set TH_room desired 21