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
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
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
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,
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
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
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
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
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
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
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
Genial, freu mich drauf!
Gesendet von meinem iPad mit Tapatalk
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