FHEM > Automatisierung

PID , Minimalwert für FHT8V setzen

(1/2) > >>

PeterN:
Hallo,

folgendes Problem, ich wollte meine funktionierende PID Definition "define heizung.04 pid Arbeitszimmer stellantrieb.04"
um den Minimallwert für den FHT8V erweitern >> "define heizung.04 pid Arbeitszimmer stellantrieb.04:valve:25:100"
Seit der Änderung wird aber der FHT8V nicht mehr angesteuert und verharrt bei 25%.

Danke,

Peter

rudolfkoenig:
Ich fuerchte das Problem musst Du selbst finden mit Debug-Ausgaben im PID-Modul und nachrechnen.

PeterN:
Hallo,

anscheinend wird der "valve" Wert mit Nachkommastelle ausgegeben, was kann man dagegen tun?

2013.02.24 13:25:31 3: PID heizung.04: p:0.60 i:100.00 d:0.00
2013.02.24 13:25:31 3: FHT8V set stellantrieb.04 valve 100

2013.02.24 13:41:34 3: PID heizung.04: p:0.00 i:100.00 d:-0.15
2013.02.24 13:41:34 3: set stellantrieb.04 valve 99.85 : Set valve needs a numeric parameter between 0 and 100
2013.02.24 13:41:34 3: output of heizung.04 command: Set valve needs a numeric parameter between 0 and 100

2013.02.24 13:46:55 3: PID heizung.04: p:0.00 i:100.00 d:0.00
2013.02.24 13:46:55 3: FHT8V set stellantrieb.04 valve 100

2013.02.24 13:52:16 3: PID heizung.04: p:-0.60 i:99.75 d:-0.15
2013.02.24 13:52:16 3: FHT8V set stellantrieb.04 valve 99

2013.02.24 13:57:37 3: PID heizung.04: p:-1.20 i:99.25 d:-0.15
2013.02.24 13:57:37 3: set stellantrieb.04 valve 97.9 : Set valve needs a numeric parameter between 0 and 100
2013.02.24 13:57:37 3: output of heizung.04 command: Set valve needs a numeric parameter between 0 and 100

Peter

fgerhardt:
Hallo Peter,

ändere in 98_PID.pm in der Zeile
my $ret = fhem sprintf("set %s %s %g", $pid->{actor}, $pid->{command}, $a);

a$ in int(a$).

Gruß
Friedhelm

PeterN:
Hallo Friedhelm,
Das ist die Lösung, jetzt arbeitet der PID Regler so wie er soll,
Vielen Dank
Peter

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln