Neues Modul - THRESHOLD

Begonnen von Damian, 25 Januar 2013, 22:51:43

Vorheriges Thema - Nächstes Thema

tomster

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



Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mahowi

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?
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

kumue

das save könntest du doch auch mit dem notify mitsenden...

boggyboe

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.

cwagner

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
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

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

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

boggyboe

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.

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

döner123

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 🙃

Damian

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 ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

döner123

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.

egmontr

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?
LG Egmont

RPI B+ mit FHEM und CUL V3 868MHZ

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

egmontr

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.
LG Egmont

RPI B+ mit FHEM und CUL V3 868MHZ