Heizungsmischer steuern

Begonnen von Steve, 29 Januar 2013, 21:04:11

Vorheriges Thema - Nächstes Thema

Steve

Hi Olaf,

wo bekommst Du die Werte her?

Bei mir schaltet weder ein Relais noch steht im Logfile eine Info
das überhaupt etwas passiert.

Hast Du zusätzlich noch Einstellungen, die in die Regelung einwirken?

Grüße Steve

ollir

Hi Steve,

n_Vorlauf {
my $TempVorlauf=0;
my $TempAussen=ReadingsVal("temp_aussen","temp","nA");
my $TempVorlauf_ist=ReadingsVal("vorlauf_ist","temp","nA");
my $Steilheit=0.95;
my $TempVorlauf=((($TempAussen - 20) * (0 - 1) * $Steilheit ) +20);
if ($TempVorlauf < $TempVorlauf_ist) {fhem("set Rel3 on; set Rel2 on; sleep 0.9; set Rel2 off")};
if ($TempVorlauf > $TempVorlauf_ist) {fhem("set Rel3 off; set Rel2 on; sleep 0.9; set Rel2 off")};
fhem("set Vorlauf Vorlauf_Soll: $TempVorlauf");
fhem("set Vorlauf Vorlauf_ist: $TempVorlauf_ist");
fhem("set Vorlauf Temp_Aussen: $TempAussen");
fhem("set Vorlauf Kennlinie: $Steilheit");
Log(3,"Temperatur Vorlauf:" .  $TempVorlauf);
Log(3,"Temperatur Vorlauf_ist:" .  $TempVorlauf_ist);
Log(3,"Temperatur Aussen:" .  $TempAussen);
Log(3,"Steilheit Kennlinie:" .  $Steilheit);
}




n_Vorlauf ist für die Berechnung und wird von einem at Job aufgerufen +*00:01:00 trigger n_Vorlauf
temp_aussen ist ein 1wired Sensor vom AVR-Net-io und wir auch über at aktuallisiert +*00:05:00 get temp_aussen temp
vorlauf_ist ist ein 1wired Sensor vom AVR-Net-io und wir auch über at aktuallisiert +*00:00:30 get vorlauf_ist temp
Rel2 und Rel3 sind zwei Relais vom AVR-Net-io
Vorlauf ist ein Dummy für die Werte
und die letzten Zeilen fürs loggen

VG
Olaf


Steve

Hi Olaf,

danke für die Erklärung, war sehr hilfreich.

Ich habe aber noch eine Fehlermeldung

>2013.02.17 18:05:04 3: n_Vorlauf return value: Bareword "temp_aussen" not allowed while "strict subs" in use at (eval 208778) line 1.
>Bareword "vorlauf_ist" not allowed while "strict subs" in use at (eval 208778) line 1.

cfg:
-----------------------------------------------------------------------------------------------------------------------------------------------
#Test
define Rel2 ECMDDevice RELAIS 04
define Rel3 ECMDDevice RELAIS 08



define n_Vorlauf1 at +*00:01:00 trigger n_Vorlauf

define TempAussen at +*00:00:30 get temp_aussen temp
define TempVorlauf at +*00:00:30 get vorlauf_ist temp

define vorlauf_ist ECMDDevice ONEWIRE 1089595b02080094
define temp_aussen ECMDDevice ONEWIRE 10cbbb4d020800e7

define Vorlauf dummy


define n_Vorlauf notify n_Vorlauf {\
my $TempVorlauf=0;;\
my $TempAussen=ReadingsVal(temp_aussen,"temp","nA");;\
my $TempVorlauf_ist=ReadingsVal(vorlauf_ist,"temp","nA");;\
my $Steilheit=0.95;;\
my $TempVorlauf=((($TempAussen - 20) * (0 - 1) * $Steilheit ) +20);;\
if ($TempVorlauf < $TempVorlauf_ist) {fhem("set Rel3 on;; set Rel2 on;; sleep 0.9;; set Rel2 off")};;\
if ($TempVorlauf > $TempVorlauf_ist) {fhem("set Rel3 off;; set Rel2 on;; sleep 0.9;; set Rel2 off")};;\
fhem("set Vorlauf Vorlauf_Soll: $TempVorlauf");;\
fhem("set Vorlauf Vorlauf_ist: $TempVorlauf_ist");;\
fhem("set Vorlauf Temp_Aussen: $TempAussen");;\
fhem("set Vorlauf Kennlinie: $Steilheit");;\
Log(3,"Temperatur Vorlauf:" .  $TempVorlauf);;\
Log(3,"Temperatur Vorlauf_ist:" .  $TempVorlauf_ist);;\
Log(3,"Temperatur Aussen:" .  $TempAussen);;\
Log(3,"Steilheit Kennlinie:" .  $Steilheit);;\
}
----------------------------------------------------------------------------------------------------------------------------------------------

Kannst Du einen Fehler erkennen?

Ansonsten ist es eine super Arbeit von dir.

Gibt es  eine plausible Erklärung für den Code,damit ich
die Funktionen nachvollziehen kann?

VG Steve



Puschel74

Hallo

das

my $TempAussen=ReadingsVal(temp_aussen,"temp","nA");;\
my $TempVorlauf_ist=ReadingsVal(vorlauf_ist,"temp","nA");;\


zu dem

my $TempAussen=ReadingsVal("temp_aussen","temp","nA");;\
my $TempVorlauf_ist=ReadingsVal("vorlauf_ist","temp","nA");;\


und weiter Fehlermeldungen bitte posten.
Ich hab nur eben schnell drüber geschaut und da ist mir nur das aufgefallen.

Grüße

Edit: Die "" haben gefehlt bei den Device-Namen
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.

Steve


Hab den Fehler gefunden, die Gänsefüßchen  haben gefehlt.

VG Steve