DOIF mit OldValue für Pumpensteuerung

Begonnen von MichlB, 19 Mai 2016, 16:07:00

Vorheriges Thema - Nächstes Thema

MichlB

Hallo

Ich versuche krampfhaft ein DOIF mit einem OldValue und Value vergleich zu erstellen bekomme aber immer nur fehler...
Ziel: vergleiche den Alten wert eines Sensors mit dem Neuen Wert, ist der neue Höher, dann schalte

mein Ansatz:
(({OldValue("DS18B20_FF68DE641501:temperature")} < {Value("DS18B20_FF68DE641501:temperature")}) set B0 on

irgendwie steig ich durch die Pearl Syntax nicht durch...
tja programmieren will wohl gelernt sein.

oder vielleicht hat jemand eine bessere Idee?
Mein Boiler ist der Pufferspeicher meiner Zentralheizung, schaltet die Gastherme ein und heitzt, soll sich die Boilerpumpe einschalten, wenn Therme sich ausschaltet soll die Pumpe noch Zeit x weiterlaufen und sich dann abdrehen. wenn jedoch ein Mischer wärmebedarf hat, soll sie sich wieder einschalten, bis dieser wieder schließt....


1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

MichlB

hallo
meistens bekomm ich


di_BoilerVL DOIF: no right bracket: (({OldValue("DS18B20_FF68DE641501:temperature")} < {Value("DS18B20_FF68DE641501:temperature")}) set B0 on
1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

CoolTux

Schaue Dir bitte noch mal die Syntax von DOIF an.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

igami

Zitat von: Michl1003! am 19 Mai 2016, 16:23:33
hallo
meistens bekomm ich


di_BoilerVL DOIF: no right bracket: (({OldValue("DS18B20_FF68DE641501:temperature")} < {Value("DS18B20_FF68DE641501:temperature")}) set B0 on

Dann solltest du mal die Klammern zählen ;)
Und den Hinweis von CoolTux befolgen
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

pc1246

Und eventuell auch gleich ueber das Ausschalten nachdenken, sonst ist das gleich die naechste Frage!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

MichlB

hi
danke für den Klammer-Tipp, habs soweit hinbekommen, aber jetzt hab ich die Situation, dass ich nicht weiß ob das mit den Werten des Sensors funktinioert...

define NotfallDI DOIF (["DS18B20_FF68DE641501:temperature"] > "40") (set NOTFALL on) DOELSE (set NOTFALL off)

für die Pumpensteuerung hätt ichs mit

define di_BoilerVL DOIF ([DS18B20_FF68DE641501:?])(setreading di_BoilerVL temperature [DS18B20_FF68DE641501:temperature])

versucht...

1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

igami

> ist vergleicht Zahlen mit " machst du aus einer Zahl einen Text, wird zu weiteren Fehlermeldungen führen.

Wie hängen die Codes die du jetzt gepostet hast mit dem ursprünglichen Vorhaben zusammen?
Da ging es ja um eine Differenz. Diese könntest du auch mit userReadings um dem Modifikator difference berechnen und im DOIF dann prüfen ob das userReadings negativ ist.

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

MichlB

#9
oh sorry, hab den falschen erwischt, aber irgendwie funkt das sowieso nicht so recht...
und jetzt blick ich mich grad nicht mehr durch... muß morgen noch mal mit klarem kopf das thema angehen...
ich hab generell das problem, dass ich nicht so recht die werte von irgendwas auslesen kann... ich versteh das ganze mit den Syntax nicht so recht..
was ist der Unterschied zwischen [], () und {}
wann muss man ein " setzen...?


also mein letzter versuch hat auch nicht mehr geklappt...

define di_BoilerPumpe DOIF {OldValue("DS18B20_FF68DE641501:temperature") < Value("DS18B20_FF68DE641501:temperature")} set B0 on


1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

igami

Bei DOIF kommt man gut ohne Perl {} aus. Die Readings werden in [] angegeben und Blöcke in ().
Einfach noch mal die deutsche Commandref zu DOIF lesen.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED