Hauptmenü

Fehler Meldung 59_HCS.pm??

Begonnen von Steffen, 06 Januar 2013, 14:04:08

Vorheriges Thema - Nächstes Thema

Steffen

Guten Tag!

Ich hoffe bin jetzt hier richtig mit meinem Problem, denn habe seit dem letzten update diese Fehlermeldung:

Argument "n/a" isn't numeric in subtraction (-) at /usr/share/fhem/FHEM/59_HCS.pm line 639.

hoffe ihr könntet mir bitte helfen???

Mfg Steffen

Martin Fischer

Kannst Du im Moment erst mal ignorieren. Durch den Aufbau vom FHEM Forum sind einige andere Module von mir (u.a. auch HCS) etwas in der Priorität nach hinten gerutscht.

Sobald ich die Zeit finde gehts da weiter.

Gruß Martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

cwagner

Hi Martin,

gerade starte ich FHEM über Putty-Konsole und sehe, dass nach einem Neustart viele Dutzend Male diese Nachricht durchrauscht:
Argument "n/a" isn't numeric in subtraction (-) at ./FHEM/59_HCS.pm line 639. Das hattest Du ja zurückgestellt. War das noch offen oder ist es neu=

Herzliche Grüße

Christian


PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

honk

Hallo Martin (und alle Andern natürlich auch)

Dies ist mein erster Beitrag in diesem Forum und ich bin sehr glücklich über die schnellen und kompetenten Antworten die ich hier bereits gefunden habe.

Ich habe fhem seit einer Woche auf einem RasPi installiert und komme nach einer Woche Forum und Wiki lesen schön langsam dahinter wie das ganze funktioniert :-)

Habe 4 HM-CC-TC, 4 HM-CC-VD, und einen HM-LC-SW1-FM der meine Umwälzpume einschaltet.

Nun bin ich schließlich auch beim HCS Modul gelandet und bin auch davon begeistert. Das einzige was mich störte, waren die Log Einträge wie schon im fred erwähnt. Und nach ein bisschen suchen hab ich wohl einen kleinen Fehler im Modul gefunden, der diese Logeinträge verursacht und auch noch die Thermostate vervierfacht (*_Climate + *_Weather + *_WindowRec).

die Zeile Nr 443 sollte wohl ein bischen geändert werden:
next if($t eq "CUL_HM" && $attr{$d}{model} eq "HM-CC-TC" && ($attr{$d}{device} || $attr{$d}{chanNo}));in:
next if($t eq "CUL_HM" && $attr{$d}{model} eq "HM-CC-TC" && ($defs{$d}{device} || $defs{$d}{chanNo}));

Ich bin ja leider nur ein leidlicher Hobby-"C"-Programmierer und kenn mich in Perl null aus, aber ich hab mal einen Patch angefügt. Könnte sich das auch mal ein Profi anschauen, ob das so passt?

Danke Harald

cwagner

Hi,
das finde ich klasse, vielleicht gibt es ja einen der Tiefgründler in FHEM, der uns da weiterhelfen kann. Mit den Fehler-Meldungen schlage ich mich schon eine Weile herum, vor allem, weil sie auch für deutliche Verzögerungen in der Warteschlangenverarbeitung sorgen... (bei mir sind es ein paar Thermostate mehr...)

Auch ich habe dieses Forum als einen Quell der Hilfsbereitschaft und Ideen schätzen gelernt und so bin ich zuversichtlich, dass da jemand helfen kann. Ich will gerne Deine Version am Wochenende mal testen (das ist mein Teil, den ich kann :-))

Übrigens: Ich träume noch von einer kleinen Erweiterung: Nämlich die Ausgabe der jeweils höchsten Ventilanforderung eines der überwachten Ventile oder besser noch die Tendenz seit der letzten Messung. Für eine rein raumanforderungsgesteuerten Heizungsvorlaufregelung wäre das nämlich ein wunderbarer Trigger: Je weiter ein Ventil aufgeht vor allem über eine längeren Zeitraum, umso mehr Heizenergie wird gebraucht. Entsprechend würde ich schrittweise die Vorlauftemperatur hochsetzen. Also beispielsweise in der letzten Viertel-Stunde hatte ich 45°, größte Ventilstellung war 60%. Jetzt kommt die nächste Messung und sagt: mindestens ein Ventil hat 70% gefordert, dann würde ich den Vorlauf auf 50° erhöhen. Wenn die nächste Messung kommt und es wieder 80% sind, würde ich auf 55 erhöhen.

Für meine Konstruktion bräuchte ich also nur ein Reading in HCS, das mir das Delta des am weitesten geöffneten Ventils gibt.

Mit get <hcs> values erhalte ich ja eine Übersicht, die mir das alles für alle Ventile zeigt - mit meinem Auge habe ich sofort das größte Ventil und des HCS gefunden, allein meine Programmierkenntnis reichen nciht, diese Idee sauber umzusetzen.

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

honk

Hallo Christian

Ich denke ich habe Dich in etwa verstanden Du möchtest also einfach ein, wie soll man es nennen ein "deltaMaxVentil"
BU_Thermostat: desired: 21.5°C measured: 22.1°C delta: +0.6 valve: 0% state: idle
KU_Thermostat: desired: 21.5°C measured: 21.8°C delta: +0.3 valve: 0% state: idle
SZ_Thermostat: desired: 21.5°C measured: 21.6°C delta: +0.1 valve: 4% state: idle
WZ_Thermostat: desired: 21.5°C measured: 22.8°C delta: +1.3 valve: 0% state: idle
next check: 09:01:14
das wäre also in diesem Beispiel "+0.1" weil das am weitesten geöffnete Ventil SZ_Thermostat 4% offen ist. (Ich weiss, das Beispiel ist grad a bissl blöd, weil ich grad keine Heizungsanforderung habe.)

Ich sehe es mir gerne noch einmal an, ob ich das schon kann, kann ich aber nicht versprechen, und könnte ein bisserl dauern.
Womöglich ist hier jemand anderer schneller, oder der Entwickler findet wieder etwas Zeit für dieses nette Modul. Es sind ja auch noch ein paar kleine Fehler in diesem Modul, in dem mit Variablen die nicht mit einer Zahl sondern mit "n/a" gerechnet wird, was natürlich nicht wirklich funktioniert :-). Auch habe ich auf dieses neue Log3 umgestellt Link und ich weiss leider auch nicht wirklich wie das korrekt gemacht wird.
 
Es würde mich aber sehr freuen, wenn Du vorerst mal das Modul einmal ausprobieren könntest. Ich habe Dir die komplette Datei angefügt. Die Datei im oberen fred ist ja nur ein diff.

Herzliche Grüsse aus der Steiermark
Harald

cwagner

Moin, Harald,

habe Dein Modul jetzt eingebunden - tatsächlich sind bisher die Fehlermeldungen nicht aufgetreten. Allerdings: list <hcs> values wird bei mir nicht mehr ausgeführt - wohl aber list <hcs>.

------

Meine Idee ist mit dem vom Modul gemeldeten Delta-Temp auch umsetzbar - aber ich hatte eigentlich das Delta der Ventilöffnung gemeint, weil darin ja auch die Intelligenz des Temperaturregelung steckt. Delta-T ist ja lediglich der Abstand zum Sollwert, mathematisch exakt und stumpf. Die Ventilöffnung ist ja das Ergebnis eines recht intelligenten Regelvorganges, der die Annäherung oder Entfernung vom Sollwert über die Zeitachse betrachtet und die Ventilöffnung entsprechend kräftiger und zaghafter verändert. Daran würde ich gerne meine Vorlaufsteuerung hängen - eine stumpfe Außentemperatur gesteuerte berücksichtigt ja keinesfalls Sonneneinstrahlung ins Haus, die internen Wärmequellen und vor allem die Programmierung meiner Raumthermostate.
Nach langen manuellen Experimenten glaube ich damit die effizientes mit FHEM umzusetzende Steuerungsvariante vor Augen zu haben.

Grüße bei 1,5° Außentemperatur (aber keine Heizanforderung :-))
Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

honk

Hallo Christian

ZitatAllerdings: list <hcs> values wird bei mir nicht mehr ausgeführt - wohl aber list <hcs>.
Ging denn ein list <hcs> values jemals? , Ich glaube Du meinst ein get <hcs> values, das funktioniert bei mir.

Aha nun glaube ich weiss ich was du meinst.  
Aber leider werde ich das wohl nicht schaffen. Hier müssste Sich das Modul die letzten Ventilstellungen merken und erst wenn sich etwas an der Ventilöffnung geändert hat, ein Deta-Ventil errechnen.

Grüße Harald    

honk

@christian

Nur mal so ein Gedanke:
könnte man so ein Delta-Ventil nicht mit einem notify realisieren, das zB. auf "WZ_Ventil operState: adjusting" lauscht, und den Unterschied zwischen ValveDesired und ValvePosition ausrechnet? Wäre das eventuell eine Lösung für dein Problem?

lg Harald

cwagner

... oh wie peinlich. Natürlich get <hcs> values, ich war aus einem anderen Experiment zu fixiiert auf "list".

Danke für den Hinweis.

Herzliche Grüße

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

cwagner

Hallo Harald,

da werde ich mal brüten müssen. Jedenfalls ein alternativer Ansatz. Auch mit Threshold und einen "gleitenden" desired-temp hirne ich. Die Heizperiode wird ja einige Monate dauern :-)

LG
Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB