FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Joachim am 12 November 2015, 20:23:26

Titel: [Gelöst] PID20 Problem mit Sensor Reading 0
Beitrag von: Joachim am 12 November 2015, 20:23:26
Moin John, Moin @ all,
Für eine Vorlauftemperatursteuerung greife ich meine Ventilstellungen mit 39_VALVES.pm ab, und hier habe ich ein Problem.
Wenn alle Ventile geschlossen sind, steht valve_max natürlich auf 0, und das quittiert PID20 mit
alarm - no valve_max yet for Ventilstellung
um sicherzustellen, dass es nicht an VALVES liegt, habe ich mir einen dummy und ein at gebaut:

define alive dummy
attr alive room alive
attr alive setList 0 1

define at_alive at +*00:01:00 {if ("$value{alive}" == 0) {fhem("set alive 1")} else {fhem("set alive 0")}}
attr at_alive room alive

und diesen als Sensor definiert.
Wenn der dummy auf 1 steht funktioniert der PID20-Regler, wenn der dummy auf 0 steht kommt folgende Meldung:
alarm - no state yet for alive

Frage, ist da noch ein 60 cm Fehler, oder Bug oder future?

Gruß Joachim
Titel: Antw:PID20 Problem mit Sensor Reading 0
Beitrag von: John am 12 November 2015, 20:39:09
Hallo Joachim,

such mal im 98_PID20.pm nach Alarm:

ich kann kein Fragment finden, das eine derartige Meldung fabriziert:
Zitatalarm - no state yet for alive

man findet :
"alarm - no $reading yet for $sensor"
"alarm - dead sensor"
"alarm - missing desired"

Du bist im falschen Modul ???

John

PS: zeig mal die Log-Ausgabe
Titel: Antw:PID20 Problem mit Sensor Reading 0
Beitrag von: Joachim am 12 November 2015, 20:43:00
Nein John,
bin ich nicht, siehe Screenshot.

Gruß Joachim
Titel: Antw:PID20 Problem mit Sensor Reading 0
Beitrag von: John am 12 November 2015, 20:49:24
Ich bin beeindruckt.

"alarm - no $reading yet for $sensor"

ergibt mit alive:state

alarm - no state yet for alive


John
Titel: Antw:PID20 Problem mit Sensor Reading 0
Beitrag von: Joachim am 12 November 2015, 20:54:44
# $Id: 98_PID20.pm 7089 2014-11-29 10:58:10Z john99sr $

und das list:
Internals:
   CFGFN      ./FHEM/000_max.cfg
   DEF        alive:state Hz_PID_00_FW:desired
   NAME       Hz_PID_00_VLT
   NR         432
   NTFY_ORDER 50-Hz_PID_00_VLT
   STATE      alarm - no state yet for alive
   TYPE       PID20
   Readings:
     2015-11-12 20:51:32   actuation       21
     2015-11-12 20:51:32   actuationCalc   -3.12
     2015-11-12 20:50:59   delta           39
     2015-11-12 20:51:32   desired         40
     2015-11-12 20:50:59   measured        1
     2015-11-12 20:51:32   p_d             0
     2015-11-12 20:51:32   p_i             0
     2015-11-12 20:51:32   p_p             -3.12
     2015-11-12 20:51:32   state           alarm - no state yet for alive
   Helper:
     actor      Hz_PID_00_FW
     actorCommand desired
     actorErrorAction freeze
     actorErrorPos 0
     actorInterval 30
     actorKeepAlive 86400
     actorLimitLower 21
     actorLimitUpper 40
     actorThreshold 1
     actorTimestamp 2015-11-12 19:08:43
     actorValueDecPlaces 0
     adjust
     calcInterval 30
     deltaGradient 0.0157056881980701
     deltaOld   40
     deltaOldTS 2015-11-12 19:45:01
     deltaTreshold 0
     desiredName desired
     disable    0
     factor_D   0.0
     factor_I   0
     factor_P   0.08
     isWindUP   1
     measuredName measured
     reading    state
     regexp     ^([\+,\-]?\d+\.?\d*$)
     reverseAction 1
     sensor     alive
     sensorTimeout 86400
     stopped    0
     updateInterval 30
Attributes:
   disable    0
   event-min-interval actuation:3540,actuationCalc:3540,delta:3540,desired:3540,measured:3540,p_d:3540,p_i:3540,p_p:3540
   event-on-change-reading actuation,actuationCalc,delta,desired,measured,p_d,p_i,p_p
   pidActorInterval 30
   pidActorKeepAlive 86400
   pidActorLimitLower 21
   pidActorLimitUpper 40
   pidActorValueDecPlaces 0
   pidCalcInterval 30
   pidDeltaTreshold 0
   pidFactor_D 0.0
   pidFactor_I 0
   pidFactor_P 0.08
   pidReverseAction 1
   pidSensorTimeout 86400
   pidUpdateInterval 30
   room       00_PID20


zum nachstellen, wie oben geschrieben:
define alive dummy
attr alive room alive
attr alive setList 0 1

define at_alive at +*00:01:00 {if ("$value{alive}" == 0) {fhem("set alive 1")} else {fhem("set alive 0")}}
attr at_alive room alive


und den dummy als sensor.

Gruß Joachim
Titel: Antw:PID20 Problem mit Sensor Reading 0
Beitrag von: John am 12 November 2015, 21:03:26
Ich kann das nachvollziehen.
Muss ich mir ansehen und melde mich sobald ich mehr weiss.

John
Titel: Antw:PID20 Problem mit Sensor Reading 0
Beitrag von: Joachim am 12 November 2015, 21:06:50
Danke,
habe jetzt auch ein Update gemacht, bin also auch auf der aktuellen Version.
Danke für deine Hilfe.

Gruß Joachim
Titel: Antw:PID20 Problem mit Sensor Reading 0
Beitrag von: John am 12 November 2015, 23:04:47
Hallo Joachim,

wäre schön, wenn du die neue Version (V1.0.0.6)  vorab testen könntest.

John
Titel: Antw:PID20 Problem mit Sensor Reading 0
Beitrag von: Joachim am 12 November 2015, 23:18:18
Geht los, Rückmeldung kommt vor 0:00 Uhr.

Gruß Joachim
Titel: Gelöst:PID20 Problem mit Sensor Reading 0
Beitrag von: Joachim am 12 November 2015, 23:30:07
Hallo John,
habe jetzt natürlich nicht auf weitere Nebenwirkungen, sondern nur auf mein Problem getestet.
Da funktioniert es auf 2 Systemen so wie es soll.

Vielen Dank für die schnelle Hilfe.

Gruß Joachim