[Gelöst] THRESHOLD, wie definiere ich 2 Bedingungen

Begonnen von Klaus Rubik, 30 April 2014, 14:58:58

Vorheriges Thema - Nächstes Thema

Klaus Rubik

Hallo,

ich habe ein THRESHOLD Device zur Steuerung eines Entfeuchters im Keller. Bisher basierte die THRESHOLD Definition ausschließlich auf einem Sensor, welcher den Wert für die Luftfeuchtigkeit lieferte. Nachdem ich nun billigen Solarstrom nutze, würde ich gerne die Steuerung dahingehend erweitern, dass zusätzlich ausreichend Solarleistung zur Verfügung stehen muß. Für die  Verfügbarkeit der Solarleistung habe ich mir ein Dummy Device angelegt, welches 3 Stati annehmen kann:
     caution  =>weniger als 750 W verfügbar
     ok => zwischen 750 und 2000 W verfügbar
     full => mehr als 2000 W verfügbar

Meine Definition für THRESHOLD sieht aktuell so aus:

define KE_Feuchtigkeit THRESHOLD KE_Klima:humidity AND PowerStatus:state:!caution   Lufttrockner |set Lufttrockner on|set Lufttrockner off|1

Idee dahinter ist, dass ausreichend Leistung vorhanden ist, wenn der Status von PowerStatus UNGLEICH/NICHT "caution" ist.

Was mache ich falsch?

Viele Grüße
Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

Bennemannc

Hallo,

dann schreib das doch auch so =! ungleich = gleich.
Das = fehlt bei Dir.
Außerdem - Du vergleichst Texte also solte man eq (equal) oder ne (not equal) nehmen. Mit =! und = sollten Zahlen verglichen werden.

sollten dann so ähnlich " PowerStatus:state:.* ne "caution"  " aussehen.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Klaus Rubik

Hallo,

danke für den Tipp, diese Art von Vergleich scheint THRESHOLD aber nicht zu unterstützen, zumindest bekomme ich dann folgende Fehlermeldung:

wrong syntax: define <name> THRESHOLD <sensor>:<reading1>:<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

Gruß

Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

Puschel74

Hallo,

was ist wenn du mal nicht auf :!caution testest sondern auf :ok (oder welchen Status der Dummy grad hat).

Vielleicht klappt ja nur das negieren nicht (ich hab in der commandref auch kein Beispiel dazu gefunden).

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Bennemannc

Hallo,

was mir noch auffällt - bei THRESHOLD sind keine Werte angegeben. Da fehlen Grenzwert/Schaltwert und Hysterese.
Wenn das mit dem Wert nicht klappt - man könnte einen Dummy erstellen und dem über ein notify ok ( Füll und Ok) oder nok (caution) triggern. Dann könnte man auf ok prüfen.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Klaus Rubik

Zitat von: Puschel74 am 30 April 2014, 17:07:16
Hallo,

was ist wenn du mal nicht auf :!caution testest sondern auf :ok (oder welchen Status der Dummy grad hat).

Vielleicht klappt ja nur das negieren nicht (ich hab in der commandref auch kein Beispiel dazu gefunden).

Grüße

Hallo Puschel74,

werde ich mal testen, jedoch war gerade die Option alles ausser caution gerade chic. Alternativ muss ich halt den Umweg über den Dummy gehen, siehe Vorschlag von Bennemannc.

Gruß

Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

Damian

#6
Zitat von: Klaus Rubik am 30 April 2014, 18:12:07
Hallo Puschel74,

werde ich mal testen, jedoch war gerade die Option alles ausser caution gerade chic. Alternativ muss ich halt den Umweg über den Dummy gehen, siehe Vorschlag von Bennemannc.

Gruß

Klaus

THRESHOLD ist leider nicht so flexibel wie z. B. IF.

Du kannst dir aber relativ einfach über eine structure behelfen, indem du "ok"- und "full"-Status z. B. auf "on" abbildest:

define s_PowerStatus structure type PowerStatus
attr s_PowerStatus clientstate_behavior relativeKnown
attr s_PowerStatus clientstate_priority on|full|ok off|caution

define KE_Feuchtigkeit THRESHOLD KE_Klima:humidity AND s_PowerStatus:state:on   Lufttrockner |set Lufttrockner on|set Lufttrockner off|1


Gruß

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

Klaus Rubik

Hallo Damian,

genial, danke!! Werde morgen berichten, ob es funktioniert.

Evtl. kannst Du den Usecase ja in einer künftigen Erweiterung von THRESHOLD umsetzen  :)

Viele Grüße

Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

Damian

Zitat von: Klaus Rubik am 30 April 2014, 18:46:23
Hallo Damian,

genial, danke!! Werde morgen berichten, ob es funktioniert.

Mit Sicherheit  ;)

Zitat
Evtl. kannst Du den Usecase ja in einer künftigen Erweiterung von THRESHOLD umsetzen  :)

Mal schauen, plane jedoch ein intuitiv zu bedienendes Modul welches u. a. notify, at, THRESHOLD und IF in einem abdeckt.

Gruß

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

cwagner

ZitatMal schauen, plane jedoch ein intuitiv zu bedienendes Modul welches u. a. notify, at, THRESHOLD und IF in einem abdeckt.

Das wiederum wäre genial³

Schönen Mai-Feiertag - haben wir nicht wieder Threshold-Jahrestag?

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: cwagner am 30 April 2014, 19:45:36
Das wiederum wäre genial³

Schönen Mai-Feiertag - haben wir nicht wieder Threshold-Jahrestag?

Christian

Ich glaube, das dauert noch ein bisschen.

Die Syntax des neuen Moduls habe ich mir auch schon überlegt:

define <name> DOIF (Bedingung) (FHEM-Befehle) ELSEIF (Bedingung) (FHEM-Befehle) ELSEIF (... ELSE (FHEM-Befehle)

In die Bedingung kann alles rein, was IF kann plus Zeitangaben wie bei at, funktionieren wird es ereignis-, zeitgesteuert und selbstgetriggert - muss aber noch programmiert werden. :D

Ist hier aber schon OT.

Gruß

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

Klaus Rubik

Genial, freu mich drauf!


Gesendet von meinem iPad mit Tapatalk
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

Klaus Rubik

Zitat von: Klaus Rubik am 30 April 2014, 18:46:23
Hallo Damian,

genial, danke!! Werde morgen berichten, ob es funktioniert.

Hallo Damian,

hat funktioniert, danke für die Unterstützung.

Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS