FHEM Forum

FHEM - Hausautomations-Systeme => MAX => Thema gestartet von: Mr.Heat am 26 Januar 2015, 22:07:25

Titel: 59_HCS.pm: kein Start nach rereadcfg; angepasste 59_HCS.pm in Beitrag #37
Beitrag von: Mr.Heat am 26 Januar 2015, 22:07:25
[UPDATE]: Racecondition im Code gefunden; in Post #36 Beschrieben!

[UPDATE]: Thread-Titel geändert, da es wohl doch nichts mit dem Zwischenstecker zu tun hat, sondern nach z.B. einem rereadcfg nicht mehr automatisch startet...


Hallo zusammen,
ich habe ein problem mit HCS. Nach (kurzer) Zeit schaltet HCS die Heizung nicht mehr und bleibt so.
Der Status wechselt dann von "demand" oder idle" auf "Initialized". Dann geht nichts mehr.
Bei "get HCS_System values" Sind alle Werte dann 0 und next check ist n/a.

Wenn ich ein "set HCS_System on" ausführe, funktioniert alles wie es soll. Für 30 Minuten oder so. Dann fällt es ohne Fehlermeldung im log wieder aus und besitzt den State "initialized".
Im Log erscheinen keine Regelmäßigen Fehlermeldungen
Dazu: es gibt folgende Besonderheiten in meinem Setup:
-Die Gastherme wird über einen MAX! zwischenstecker geschaltet (Dieser sieht aus wie ein Thermostat)
-Deshalb ist er mit exclude ausgenommen in HCS (was auch korrekt angezeigt wird in HCS)
-Er hat allerdings ein anderes State-Reading mit stateformat: stateFormat
{if( ReadingsVal("HA_Heizung_Schalter","valveposition","-") eq 0) { return "on" } else { return "off"}}; das erzeugt einen Fehler im Log von HCS, allerdings weiß ich nicht, ob die Ausfälle damit zu tun haben;


Ansonsten finde ich im Log keine so richtig passenden Fehler, auch mit verbose 5.
Meiner Meinung nach sollte HCS den Schalter doch ignorieren, also bitteschön auch nicht versuchen dort irgend was zu lesen.


Ich halte es für einen Bug. Hilfe? Was kann ich tun?:(

Momentan schalte ich per notify jede Minute das Modul mit set HCS_System on wieder aktiv.....

Folgende Infos noch:
(Es existiert ein Dummy HA_Heizung_Modus zum abschalten von HCS, dafür wird die Sensorfunktion von HCS missbraucht; das funktioniert auch, ich denke nicht dass hier der Fehler ist, sonst wäre der State von HCS_System trotzdem nicht "initialized")


define HA_Heizung_Schalter MAX HeatingThermostat 074ed0
attr HA_Heizung_Schalter IODev cm
attr HA_Heizung_Schalter alias Gastherme
attr HA_Heizung_Schalter event-on-change-reading desiredTemperature,mode,state,temperature,valveposition
attr HA_Heizung_Schalter room Haus
attr HA_Heizung_Schalter stateFormat {if( ReadingsVal("HA_Heizung_Schalter","valveposition","-") eq 0) { return "on" } else { return "off"}}
define FileLog_HA_Heizung_Schalter FileLog ./log/HA_Heizung_Schalter-%Y.log HA_Heizung_Schalter
attr FileLog_HA_Heizung_Schalter logtype text
attr FileLog_HA_Heizung_Schalter room Unsorted

#### Heizung: Winterbetrieb Sommerbetrieb
define HA_Heizung_Modus dummy
attr HA_Heizung_Modus alias Betriebsmodus
attr HA_Heizung_Modus fp_Heizung 36,220,7,
attr HA_Heizung_Modus group Betriebsmodus
attr HA_Heizung_Modus room Haus
attr HA_Heizung_Modus setList state:Winter,Sommer
attr HA_Heizung_Modus userReadings HCS_TEMP { if (ReadingsVal("HA_Heizung_Modus","state","Unbekannt") eq "Winter"){return 0} else {return 30};;}
attr HA_Heizung_Modus webCmd state

define HCS_System HCS HA_Heizung_Schalter
attr HCS_System alias Heizungssteuerung
attr HCS_System deviceCmdOff desiredTemperature on
attr HCS_System deviceCmdOn desiredTemperature off
attr HCS_System event-on-change-reading state,devicestate,eco,overdrive
attr HCS_System exclude HA_Heizung_Schalter
attr HCS_System idleperiod 5
attr HCS_System interval 2
attr HCS_System loglevel 3
attr HCS_System mode valve
attr HCS_System room System
attr HCS_System sensor HA_Heizung_Modus
attr HCS_System sensorReading HCS_TEMP
attr HCS_System sensorThresholdOff 20
attr HCS_System sensorThresholdOn -1
attr HCS_System thermostatThresholdOff 0.5
attr HCS_System thermostatThresholdOn 0.5
attr HCS_System valveThresholdOff 10
attr HCS_System valveThresholdOn 40


(Wenn es funktioniert): get HCS_System values
BA_Thermostat_Fenster: desired: 10.0°C measured: 14.4°C delta: +4.4 valve:   0% state: idle
HA_Heizung_Schalter  : desired:  0.0°C measured: 20.0°C delta: +20.0 valve: 100% state: (excluded)
KU_Thermostat_Fenster: desired: 18.5°C measured: 20.8°C delta: +2.3 valve:   0% state: idle
KU_Thermostat_Tuer   : desired: 18.5°C measured: 20.7°C delta: +2.2 valve:   0% state: idle
MA_Thermostat_Fenster: desired: 20.5°C measured: 23.6°C delta: +3.1 valve:   0% state: idle
WZ_Thermostat_Fenster: desired: 19.0°C measured: 19.2°C delta: +0.2 valve:   0% state: idle
WZ_Thermostat_Tuer   : desired: 19.0°C measured: 19.2°C delta: +0.2 valve:   0% state: idle
next check: 22:14:17


(Wenn es nicht mehr funktioniert): get HCS_System values
BA_Thermostat_Fenster: desired: 0.0°C measured: 0.0°C delta: 0.0 valve:   0% state: idle 
HA_Heizung_Schalter  : desired:  0.0°C measured: 0.0°C delta: 0.0 valve: 0% state: (excluded)
KU_Thermostat_Fenster: desired: 0.0°C measured: 0.0°C delta: 0.0 valve:   0% state: idle
KU_Thermostat_Tuer   : desired: 0.0°C measured: 0.0°C delta: 0.0 valve:   0% state: idle
MA_Thermostat_Fenster: desired: 0.0°C measured: 0.0°C delta: 0.0 valve:   0% state: idle
WZ_Thermostat_Fenster: desired: 0.0°C measured: 0.0°C delta: 0.0 valve:   0% state: idle
WZ_Thermostat_Tuer   : desired: 0.0°C measured: 0.0°C delta: 0.0 valve:   0% state: idle
next check:  n/a


Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker
Beitrag von: Mr.Heat am 31 Januar 2015, 19:17:10
Wenn schon niemand eine Antwort hat, wäre es gut, wenn der Thread vielleicht irgendwo hin geschoben wird, wo er vom HCS-Maintainer gelesen wird. Das MAX-Forum wird wohl nicht von allen gelesen...

Es ist eindeutig ein Bug, der mit dieser Konstellation zusammen hängt. Ich helfe gerne beim Fixen und stelle alle notwendigen Daten bereit.

LG
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 31 Januar 2015, 19:38:05
schon mal "verbose" bzw "loglevel" höher gesetzt?
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 31 Januar 2015, 19:43:52
Ist es wirklich jede halbe Stunde oder wenn du an FHEM arbeitest?
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 31 Januar 2015, 20:48:17
Es scheint jedes mal wenn hcs schaltet. Es ist mir aufgefallen, Da es kalt geblieben ist und nicht mehr geschaltet wurde. Der Status war dann eben "initialized"... und die einzige Auffälligkeit, dass HCS den Status des Steckdosenschalters nicht korrekt parsen konnte ( weil ich diesen mit stateformat angepasst habe). Der ist aber in HCS als exclude angegeben und sollte HCS eigentlich ignorieren...
Schalten tut HCS aber korrekt, und macht nach einem set HCS_System on" auch wieder weiter... eine Zeit lang. Nachdem das mehrfach passiert ist habe ich halt das notify dazu gemacht, da es ansonsten funktioniert...

folgendes sollte der Maintainer mal checken/ändern, und vielleicht ist das Problem dann behoben:

1. ist StateFormat ein Problem für HCS? warum? eventuell sollte das berücksichtigt werden, dass manche Thermostaten eventuell per StateFormat einen anderen Status als erwartet besitzen

2. Was interessiert sich HCS für Thermostaten, die auf der Exclude-Liste stehen? Das hat manchmal einen speziellen Grund (z.B. dass das wie bei mir ein Schaltaktor ist) und HCS hat dann weder dort was zu lesen oder sonst was.

3. Wenn es das nicht ist, dann besteht die Möglichkeit, dass es HCS stört, dass das zu schaltende Gerät ebenfalls ein "Thermostat" ist. Ich gehe aber mal davon aus, dass das nicht der Fall ist.


EDIT: das Loglevel-Attribut steht auf 3 (laut Commandref das Gesprächigste). Verbose=5 hat nicht viel gebracht, außer der Meldung, dass der State des einen Thermostaten nicht korrekt verstanden wurde (s. auch Eingangspost).
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 31 Januar 2015, 22:06:22
Bei mir geht HCS in den Status "initialized" nur nach einen reload der fhem.cfg ansonsten arbeitet es bis auf ein paar Fehlermeldungen bei Tempwerten mit on/off fehlerfrei.
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 01 Februar 2015, 11:34:47
Zeigt ein
get HCS_System values

denn dann auch nur noch 0 für alle Werte und n/a für die Zeit?
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 01 Februar 2015, 11:54:15
ja
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: The-Holgi am 01 Februar 2015, 12:28:25
Hm, bei mir läuft es seit 24 Stunden ohne Probleme. Habe 6 MAX HT´s wovon ich 2 mit exclude außschließe.
Geschaltet wird über einen Homematic Zwischenstecker.
Habe nur noch nicht verstanden was es mit dem temperatursensor den man definieren kann auf sich hat, ist damit ein Außentemperaturfühler gemeint ?
Wenn ja, was bewirkt er ?

Gruß Holgi
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 01 Februar 2015, 12:50:21
Damit kann HCS die Heizung auf "demand (overdrive)" bei unterschreiten der unteren Temperaturschwelle bzw. "idle" bei überschreiten der oberen Temperaturschwelle schalten.


sensor                 CUL_WS_6
sensorReading          temperature
sensorThresholdOff     18
sensorThresholdOn      2


Hier wird die Heizung bei unterschreiten von 2°C auf Dauerbetrieb gestellt, keine Auswertung der Thermostate mehr.(Frostschutz)
Bei Überschreitung der 18°C wird die Heizung abgeschaltet, ebenfalls keine Auswertung der Thermostate mehr.(Sommerbetrieb)
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 01 Februar 2015, 19:24:46
Kann mal jemand von euch das stateformat von mir für einen Thermostaten eintragen und gucken ob es dann noch funktioniert?
( für einen tag oder so)
Wäre wirklich nett!

LG
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: pappn am 01 Februar 2015, 22:00:24
Hast du zwischendurch mal ein ReReadCfg gemacht? Das beschriebene Verhalten tritt bei mir nur auf, wenn ich den Befehl "rereadcfg" absetzte. Sonst keinerlei ungewöhnliches Verhalten. HCS läuft bei mir seit über einem Jahr zuverlässig.
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 02 Februar 2015, 11:25:17
Okay, ich mache jetzt den Test nochmal.

Ich habe das notify herausgenommen.

Wenn es heute Abend nicht warm wird, ist irgend was anders bei mir.

LG
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 02 Februar 2015, 13:08:35
okay, so lange brauche ich nicht warten, denke ich....

er ist immernoch auf Initalized" im Status, folgendes im Log seit der Änderung:
2015.02.02 13:04:43 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 489.
2015.02.02 13:04:43 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 489.
2015.02.02 13:04:43 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 491.
2015.02.02 13:04:43 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 491.
2015.02.02 13:04:43 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 493.
2015.02.02 13:04:43 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 493.
2015.02.02 13:04:43 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/59_HCS.pm line 495.
2015.02.02 13:04:43 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/59_HCS.pm line 496.

Das ist alles. Sonst gab es keine Einträge. Auf eine Ventiländerung (80%, boost) wird nicht reagiert. Es wird nicht mehr geheizt.

Warum?
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 02 Februar 2015, 21:03:58
Die Meldungen kommen bei "get HCS values" wenn ein Device keine Werte hat. Sollte eigentlich nicht vorkommen.

Wie sieht den dein List von deinen HA_Heizung_Schalter aus?

Ich habe hier kein MAX im Einsatz.
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 02 Februar 2015, 21:13:41
list HA_Heizung_Schalter:
Internals:
   CHANGED
   DEF        HeatingThermostat 074ed0
   IODev      cm
   LASTInputDev cm
   MSGCNT     352
   NAME       HA_Heizung_Schalter
   NR         53
   RSSI       -61
   STATE      off
   TYPE       MAX
   addr       074ed0
   backend    cm
   cm_MSGCNT  352
   cm_TIME    2015-02-02 21:12:35
   dstsetting 1
   mode       1
   rferror    0
   type       HeatingThermostat
   Readings:
     2015-01-26 19:00:30   MAXLAN_error    0
     2015-01-26 19:00:30   MAXLAN_errorInCommand 0
     2015-01-26 19:00:30   MAXLAN_initialized 1
     2015-01-26 19:00:30   MAXLAN_isAnswer 0
     2015-01-26 19:00:30   MAXLAN_valid    1
     2015-01-26 19:02:08   TimeInformationHour 5
     2015-02-02 21:12:35   battery         ok
     2015-01-26 20:08:50   boostDuration   25
     2015-01-26 20:08:50   boostValveposition 80
     2015-01-26 20:08:50   comfortTemperature 21.0
     2015-01-26 20:08:50   decalcification Sat 12:00
     2015-02-02 21:12:35   desiredTemperature on
     2015-01-26 20:08:50   ecoTemperature  17.0
     2015-01-26 20:08:50   firmware        1.1
     2015-01-26 20:10:43   groupid         5
     2015-01-26 20:08:50   maxValveSetting 100
     2015-01-26 20:08:50   maximumTemperature on
     2015-01-26 20:08:50   measurementOffset 0.0
     2015-01-26 20:08:50   minimumTemperature off
     2015-02-02 21:12:35   mode            manual
     2015-02-02 21:12:34   msgcnt          148
     2015-02-02 21:12:35   state           on °C
     2015-02-02 20:24:44   temperature     20.0
     2015-01-26 20:08:50   testresult      170
     2015-01-26 20:08:50   valveOffset     0
     2015-02-02 21:12:35   valveposition   100
     2015-01-26 20:49:31   weekprofile-0-Sat-temp 30.5 °C  /  30.5 °C
     2015-01-26 20:49:31   weekprofile-0-Sat-time 00:00-23:00  /  23:00-00:00
     2015-01-26 20:49:31   weekprofile-1-Sun-temp 30.5 °C  /  30.5 °C
     2015-01-26 20:49:31   weekprofile-1-Sun-time 00:00-23:00  /  23:00-00:00
     2015-01-26 20:49:31   weekprofile-2-Mon-temp 30.5 °C  /  30.5 °C
     2015-01-26 20:49:31   weekprofile-2-Mon-time 00:00-23:00  /  23:00-00:00
     2015-01-26 20:49:31   weekprofile-3-Tue-temp 30.5 °C  /  30.5 °C
     2015-01-26 20:49:31   weekprofile-3-Tue-time 00:00-23:00  /  23:00-00:00
     2015-01-26 20:49:31   weekprofile-4-Wed-temp 30.5 °C  /  30.5 °C
     2015-01-26 20:49:31   weekprofile-4-Wed-time 00:00-23:00  /  23:00-00:00
     2015-01-26 20:49:31   weekprofile-5-Thu-temp 30.5 °C  /  30.5 °C
     2015-01-26 20:49:31   weekprofile-5-Thu-time 00:00-23:00  /  23:00-00:00
     2015-01-26 20:49:31   weekprofile-6-Fri-temp 30.5 °C  /  30.5 °C
     2015-01-26 20:49:31   weekprofile-6-Fri-time 00:00-23:00  /  23:00-00:00
     2015-01-26 20:08:50   windowOpenDuration 15
     2015-01-26 20:08:50   windowOpenTemperature 12.0
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      cm
   alias      Gastherme
   event-on-change-reading desiredTemperature,mode,state,temperature,valveposition
   room       Haus
   stateFormat {if( ReadingsVal("HA_Heizung_Schalter","valveposition","-") eq 0) { return "on" } else { return "off"}}
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 02 Februar 2015, 21:44:27
Kannst ja mal loglevel bei HCS auf 0 stellen, vielleicht sieht man ja dann bei welchen Werten er abbricht.
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 03 Februar 2015, 10:10:39
Eigentlich stellt sich vielmehr die Frage, was HCS da überhaupt zu parsen hat.
Es ist offensichtlich, dass mein Stateformat, was ja statt Temperatur im State nur on oder off anzeigt, die Ursache ist. Das werde ich aber aufgrund eines Bugs in HCS nicht ändern, denn das ist ein Workaround und keine Lösung.

Der Schalter-Thermostat ist excluded und sollte deshalb von HCS nicht mehr geparst werden! -> Das sollte also eine Änderung von HCS nach sich ziehen.

Ich stelle mal loglevel auf 0... laut Dokumentation sollte das ja keinen Unterschied machen, tut es aber offensichtlich :) werde Rückmelden wenn was Auffälliges dabei ist.

LG
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 03 Februar 2015, 14:41:31
stateFormat ändert den STATE und den fast HCS nicht an.
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: pappn am 03 Februar 2015, 18:48:54
Ich habe auf meinen FHT auch ein stateformat drauf und das hat keinen Einfluss auf HCS.
Ich habe mir auch mal den Code des Moduls angesehen. Darin wird der state nicht ausgewertet. Ich glaube daher nicht, dass es daran liegt. Leider habe ich aber auch keine Idee, woran es liegen könnte.

Sorry
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 03 Februar 2015, 18:59:13
mit loglevel funktioniert HCS bis jetzt... das ist komisch. Das letzte mal hat es nicht lange gedauert.

Ich lasse es so, mal sehen ob es wieder passiert...ich weiß nicht, wodurch ich diese Fehler produzieren kann (die ja das letzte mal auch PERL-Warnungen generiert haben)

LG
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 03 Februar 2015, 20:11:23
Auf was für einen Wert hattest du den Loglevel vorher?
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 04 Februar 2015, 09:33:19
loglevel 3. Warum?
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 04 Februar 2015, 14:58:09
Okay, habe Neuigkeiten....
------------------------------UDPATE
Ich kann den Fehler jetzt wohl reproduzieren:

Ursprungszustand: HCS steht auf Status Initialized, funktioniert nicht.
1. shutdown restart - HCS läuft an und funktioniert. Es werden minütlich die Thermostaten geparst (Einträge im log).
2. fhem.cfg wird mit dem Webeditor geöffnet und wieder gespeichert; fhem läd die fhem.cfg und weiteres neu
3. HCS IST AUSGEFALLEN/startet nicht. Fehler gibt es keine, Regelmäßige Logeinträge auch nicht. HCS macht nichts, und bleibt ewig im Status Initialized.
4. "get HCS_System values" wird ausgeführt; DAS GENERIERT DIE FEHLER IM LOG, allerdings nur beim ersten Aufruf....
2015.02.04 15:16:27 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 489.
2015.02.04 15:16:27 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 489.
2015.02.04 15:16:27 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 491.
2015.02.04 15:16:27 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 491.
2015.02.04 15:16:27 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 493.
2015.02.04 15:16:27 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 493.
2015.02.04 15:16:27 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/59_HCS.pm line 495.
2015.02.04 15:16:27 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/59_HCS.pm line 496.

HCS läuft nun nur wieder an, wenn fhem komplett neu gestartet wird oder mit set HCS_System on. Wird get HCS_System values (Schritt 4) nicht durchgeführt, so gibt es keinerlei Fehler im log, aber HCS läuft auch nicht an.

-> HCS scheint bei einem "Warmstart" durch z.B. Speichern der fhem.cfg im laufenden Betrieb nicht korrekt zu überstehen....

Hilft das weiter?



------------------------------------------
HCS lief also jetzt eine Zeit lang. Aus anderen Gründen habe ich die fhem.cfg mehrfach geändert und wieder gespeichert. Dabei ist folgendes passiert:
1. nach dem neuladen der fhem.cfg läuft fhem wieder an.
2. HCS verabschiedet sich mit diversen PERL-Fehlern, ohne selbst Logmeldungen zu generieren.
3. HCS bleibt mit Status initialized dauerhaft inaktiv, auch nach erneutem Laden der fhem.cfg (kein kompletter Shutdown von FHEM)
4. Haus bleibt kalt.
5. wird jetzt ein "set HCS_System on" gesetzt, so läuft HCS an, der Status ändert sich, die Thermostaten werden wieder geparst;
6. jedes Speichern der fhem.cfg sorgt für einen erneuten, dauerhaften! Ausfall von HCS: HCS läuft nicht an, bis nach dem Neuladen ein set HCS_System on abgesetzt wird. PERL-Fehlermeldungen gibt es nicht.
2015.02.04 12:25:08 1: HCS HCS_System BA_Thermostat_Fenster: desired: 10.0 measured: 15.5 delta: +5.5 valve:   0% state: idle
2015.02.04 12:25:08 1: HCS HCS_System HA_Heizung_Schalter: excluded
2015.02.04 12:25:08 1: HCS HCS_System KU_Thermostat_Fenster: desired: 16.0 measured: 15.7 delta: -0.3 valve:  32% state: idle
2015.02.04 12:25:08 1: HCS HCS_System KU_Thermostat_Tuer: desired: 16.0 measured: 17.8 delta: +1.8 valve:   0% state: idle
2015.02.04 12:25:08 1: HCS HCS_System MA_Thermostat_Fenster: desired: 16.0 measured: 17.6 delta: +1.6 valve:   0% state: idle
2015.02.04 12:25:08 1: HCS HCS_System WZ_Thermostat_Fenster: desired: 16.0 measured: 18.6 delta: +2.6 valve:   0% state: idle
2015.02.04 12:25:08 1: HCS HCS_System WZ_Thermostat_Tuer: desired: 16.0 measured: 18.6 delta: +2.6 valve:   0% state: idle
2015.02.04 12:25:08 0: HCS HCS_System Found 7 Device(s): 0 FHT, 0 HM-CC-TC, 7 MAX, demand: 0, idle: 6, ignored: 0, excluded: 1, unknown: 0, eco: no overdrive: no
2015.02.04 12:25:29 3: HourCounter HA_Gastherme_Stats Undef.272 Done
2015.02.04 12:25:29 1: Including fhem.cfg
2015.02.04 12:25:29 3: telnetPort: port 7072 opened
2015.02.04 12:25:29 3: WEB: port 8083 opened
2015.02.04 12:25:29 3: WEBextern: port 8086 opened
2015.02.04 12:25:30 3: Opening CUL0 device /dev/ttyACM0
2015.02.04 12:25:30 3: Setting CUL0 baudrate to 9600
2015.02.04 12:25:30 3: CUL0 device opened
2015.02.04 12:25:30 3: CUL0: Possible commands: BbCFiAZEGMKUYRTVWXefmltux
2015.02.04 12:25:30 2: Switched CUL0 rfmode to MAX
2015.02.04 12:25:30 3: CUL_MAX_Check: Detected firmware version 161 of the CUL-compatible IODev
2015.02.04 12:25:31 1: Including ./log/fhem.save
2015.02.04 12:25:35 3: HourCounter HA_Gastherme_Stats Undef.272 Done
2015.02.04 12:25:35 1: Including fhem.cfg
2015.02.04 12:25:36 3: telnetPort: port 7072 opened
2015.02.04 12:25:36 3: WEB: port 8083 opened
2015.02.04 12:25:36 3: WEBextern: port 8086 opened
2015.02.04 12:25:36 3: Opening CUL0 device /dev/ttyACM0
2015.02.04 12:25:36 3: Setting CUL0 baudrate to 9600
2015.02.04 12:25:36 3: CUL0 device opened
2015.02.04 12:25:36 3: CUL0: Possible commands: BbCFiAZEGMKUYRTVWXefmltux
2015.02.04 12:25:36 2: Switched CUL0 rfmode to MAX
2015.02.04 12:25:36 3: CUL_MAX_Check: Detected firmware version 161 of the CUL-compatible IODev
2015.02.04 12:25:37 1: Including ./log/fhem.save
2015.02.04 12:26:37 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 489.
2015.02.04 12:26:37 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 489.
2015.02.04 12:26:37 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 491.
2015.02.04 12:26:37 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 491.
2015.02.04 12:26:37 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/59_HCS.pm line 493.
2015.02.04 12:26:37 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/59_HCS.pm line 493.
2015.02.04 12:26:37 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/59_HCS.pm line 495.
2015.02.04 12:26:37 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/59_HCS.pm line 496.
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mitch am 04 Februar 2015, 15:25:17
hört sich aber "normal" an.

Bei mir verhält sich das so:
wenn fhem Neustart > HCS initialisiert (bleibt auch so)
Ich muss dann immer HCS einschalten. DIes passiert aber über den gespeicherten State - dieser war ON und wird wieder gesetzt
Wenn ich die gespeicherten States lösche (file löschen), dann bleibt HCS auch auf initialisiert

Einzig warum bei Dir ein speichern HCS "ausfält" finde ich merkwürdig.

Zu Deinem Max Zwischenstecker, du schreibst
Zitat-Die Gastherme wird über einen MAX! zwischenstecker geschaltet (Dieser sieht aus wie ein Thermostat)
-Deshalb ist er mit exclude ausgenommen in HCS (was auch korrekt angezeigt wird in HCS)
-Er hat allerdings ein anderes State-Reading mit stateformat: stateFormat

Wie ist denn der Max in fhem definiert und wie wird er geschalten?
Wenn ich mich recht erinnere, kannst Du in HCS ja definieren, wie das Device benutzt werden soll bzw. welche Befehle benutzt werden sollen.
attr HCS-Device deviceCmdOn
attr HCS-Device deviceCmdOff
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mitch am 04 Februar 2015, 15:30:40
Nachtrag, habs in deiner cfg gefunden:

attr HCS_System deviceCmdOff desiredTemperature on
attr HCS_System deviceCmdOn desiredTemperature off


das geht doch so nicht?

Was ist denn der  MAX HeatingThermostat genau? Ist das eigentlich ein Raumregeler?
Kann man den ein und aus schalten?
Hängt der an deiner Therme, um diese zu schalten?
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 04 Februar 2015, 15:44:22
Doch, das ist korrekt und funktioniert.
Es handelt sich um einen Steckdosen-Schaltaktor von MAX: http://www.elv.de/max-zwischenstecker.html

Dieser ist allerdings kein separates Gerät, sondern wird vom Cube und von FHEM als MAX-Thermostat erkannt. Dabei besitzt dieser eine definierte Schwelle bei der Solltemperatur, unter der/über der er einschaltet. Die Temperaturen "on" und "off" sind bei MAX-Thermostaten erlaubt; sie entsprechen 30.5 bzw. 4.5 Grad als Zahl. Thermostaten zeigen dann im Display aber den Zustand "on" oder "off" und reißen das Ventil voll auf bzw. komplett zu.

Der Schaltaktor verhält sich ähnlich: "on" -> Schaltaktor schaltet 230V durch
"off"-> er Schaltet die 230V aus.
Als Rückmeldung benutzt er valveposition: ist der Schalter an, so gibt er eine valveposition von 100 an, ist er aus, so ist die valveposition 0.

An dem Schaltaktor habe ich ein 230V-Relais, welches eigentlich für Absauganlagen gedacht ist ( finde gerade den richtigen Namen nicht, die sehen so aus http://www.kaminplus.de/images/201208/SAM_2203.JPG).

D.h. wenn der MAX-Schaltaktor an ist, wird ein Relais angezogen und die zwei Kontakte miteinander verbunden, und zwar potentialfrei.
Das geht an einen Eingang an meiner Therme (schon älter), an der genau das gefordert wird: Kontakte durchverbunden -> Heizung aus, nur Warmwasser; Kontakte offen -> Heizen erlaubt.

Deshalb auch die Verdrehung: desiredTemperature on -> Schaltaktor Schaltet durch -> Relais zieht an -> Heizung ist aus und umgekehrt.

LG
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mitch am 04 Februar 2015, 15:59:27
Ich verstehe es leider immer noch nicht  ???

Also bei mir ist das so:
an den Heizungen sind FHT und HM Ventile, diese sind in HCS definiert.
An der Therme hängt ein HM Aktor, der die Therme ein bzw. aus schaltet. Dieser wiederum ist in FHEM definiert und wird über HCS geschalten.

Jetzt vergleicht HCS die Temperature, die von den Ventilen gemeldet werden und schaltet nach den eingestellten Schwellwerten den HM Aktor an der Therme.


Nun fehlt mir iregndwie der Zusammenhang mit diesem Max-Thermostat. Schaltet dies eine Therme oder einen Heizkörper?
Wenn es nicht mit on und off geschalten werden kann, dann würde ich persönlich vermutlich über einen Dummy gehen.
Aber wie gesagt, ich verstehe den Aufbau noch nicht ganz.
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 04 Februar 2015, 16:09:38
Es gibt von dieser Seite nichts zu ändern, ich brauche weder einen Dummy noch habe ich Probleme damit, die Gastherme ein- oder auszuschalten! Das funktioniert seit 2 Jahren so, erst mit selbstgeschriebenem Perl-Script jetzt mit HCS (sofern HCS startet).

MAX ist ein reines Heizungssystem, nicht so universell wie Homematic. Dennoch wollte der Hersteller des MAX-Systems einen Schaltaktor für Steckdosen, ursprünglich wohl für Elektrische Heizkörper gedacht.
Das MAX-System sieht aber keine anderen Aktoren ausser Thermostaten, Wandthermostaten, Eco-Taster und Fensterkontakten vor. Deshalb verhält sich der MAX-Schaltaktor von der Software- und Protokollseite exakt wie ein Thermostat. Er kann über die Solltemperatur (desiredTemperature) an- und ausgeschaltet werden, und über die Valveposition der aktuelle Status gelesen werden. Da ich schon MAX-Komponenten hatte, habe ich diesen für die Gasthermensteuerung benutzt (s. oben.) Das ist nicht das Thema hier!

Der einzige Zufall ist halt, dass der Aktor in diesem Fall in FHEM halt auch ein MAX-Thermostat ist, und von HCS als solcher natürlich erkannt wird. Deshalb wird er per exclude ausgeklammert, das ist Alles. Ich dachte anfangs, es hätte etwas damit zu tun, aber ich glaube mittlerweile, das hat damit vielleicht garnichts zu tun...

Also nochmal:
-es wird ERFOLGREICH die Therme geschaltet
-es funktioniert on und off, und ja, das ist invertiert (on=Heizung aus off=Heizung an).
-HCS schaltet (meistens.....) den Schaltaktor (der als MAX-Thermostat anpsrechbar ist, aber in wirklichkeit keiner ist) nach den Ventilstellungen der anderen/echten MAX-Thermostate.

LG
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 04 Februar 2015, 16:16:03
Zitat von: Mitch am 04 Februar 2015, 15:25:17
hört sich aber "normal" an.

Bei mir verhält sich das so:
wenn fhem Neustart > HCS initialisiert (bleibt auch so)
Ich muss dann immer HCS einschalten. DIes passiert aber über den gespeicherten State - dieser war ON und wird wieder gesetzt
Wenn ich die gespeicherten States lösche (file löschen), dann bleibt HCS auch auf initialisiert

Einzig warum bei Dir ein speichern HCS "ausfält" finde ich merkwürdig.



Hmm. Das finde ich komisch... es ist gewollt, dass nach einem shutdown restart HCS einfach ausgeschaltet bleibt? Wieso? Das ist aber nicht gut, dann bleibt die Heizung nach einem Neustart kalt...

könnte es denn sein, dass die fhem.save aus irgend einem Grund fehlerhaft wird/ist bei mir? Wird die nach einem shutdown restart neu angelegt?
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 04 Februar 2015, 16:42:24
Zitat von: Mr.Heat am 04 Februar 2015, 14:58:09
Okay, habe Neuigkeiten....
------------------------------UDPATE
Ich kann den Fehler jetzt wohl reproduzieren:

Ursprungszustand: HCS steht auf Status Initialized, funktioniert nicht.
1. shutdown restart - HCS läuft an und funktioniert. Es werden minütlich die Thermostaten geparst (Einträge im log).
2. fhem.cfg wird mit dem Webeditor geöffnet und wieder gespeichert; fhem läd die fhem.cfg und weiteres neu
3. HCS IST AUSGEFALLEN/startet nicht. Fehler gibt es keine, Regelmäßige Logeinträge auch nicht. HCS macht nichts, und bleibt ewig im Status Initialized.

Ich hatte dich schon weiter oben mal gefragt, ob du die fhem.cfg direkt bearbeitest, da habe ich nehmlich das gleiche Verhalten und das schon seit über einen Jahr.
Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: Mr.Heat am 05 Februar 2015, 09:25:53
Hallo stromer-12,

das tut mir leid, das habe ich überlesen?
Wenn das seit über einem Jahr so ist, wird HCS dann nicht mehr aktualisiert? Ich denke, viele editieren Kleinigkeiten aus dem Web-Editor heraus und wenn dadurch die Heizung ausfällt, ist das nicht gerade toll. HCS sollte per default meiner Meinung nach angeschaltet sein und nicht aus. Sonst hätte ich das Modul ja nicht in der Config eingetragen.

Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: stromer-12 am 05 Februar 2015, 12:56:39
Ich bin der Meinung als ich HCS bei mir anfing einzurichten, war das nicht so. Es fing etwas später damit an. Ich ändere nur in der Detailansicht, da noch andere Geräte Probleme mit einen  rereadcfg haben.

Gesendet von meinem GT-I9295

Titel: Antw:HCS Modul- Problem: Bug in Zusammenhang mit Zwischenstecker?
Beitrag von: The-Holgi am 05 Februar 2015, 13:33:45
Hm, also bei mir ist das nicht so. Ich kann fhem.cfg nach Lust und Laube speichern, fhem neu starten oder den kompletten Pi neu starten. HCS startet immer automatisch ohne mein Zutun. Status meist demand.
Gruß Holgi
Titel: Antw:HCS Modul- Problem: kein Automatischer Start nach rereadcfg
Beitrag von: Mr.Heat am 05 Februar 2015, 14:09:19
Also doch ein Bug....
da das wohl doch ncihts mit dem Zwischenstecker zu tun hat, hab ich den Thread-Titel mal angepasst :)
Titel: Antw:HCS Modul- Problem: kein Automatischer Start nach rereadcfg
Beitrag von: stromer-12 am 05 Februar 2015, 14:14:16
Bei fhem start bzw restart habe ich auch keine Probleme.

Gesendet von meinem GT-I9295

Titel: Antw:HCS Modul- Problem: kein Automatischer Start nach rereadcfg
Beitrag von: Mr.Heat am 05 Februar 2015, 15:19:31
Hallo,

habe den Code von 59_HCS.pm mal angesehen.
ich halte es für eine Race Condition:
In der Intialisierungs-Funktion HCS_DoInit passiert folgendes:
if($init_done) {
my $ret = HCS_getValues($hash,0);
HCS_setState($hash,$ret);
RemoveInternalTimer($hash);
my $timer = gettimeofday()+($attr{$name}{interval}*60);
InternalTimer($timer, "HCS_checkState", $hash, 0);
$hash->{NEXTCHECK} = FmtTime($timer);
}


Ist FHEM aber zu diesem Zeitpunkt nicht fertig, so wird niemals wieder erneut darauf geprüft; es wird nie ein Timer programmiert, und HCS bleibt einfach stehen. Das kann so nicht richtig sein. Eventuell sollte der interne Timer so oder so gesetzt werden, und in HCS_Checkstate ebenfalls auf $init_done geprüft werden?

Wer kann das einbauen?
Titel: Antw:59_HCS.pm: kein Start nach rereadcfg; Racecondition im Code (s. Beitrag #36)
Beitrag von: Mr.Heat am 05 Februar 2015, 15:43:39
Hallo, mit der angehängten 59_HCS.pm ist das Problem gelöst: ist fhem noch nicht initialisiert, so wird dennoch ein Timer gesetzt. In HCS_Checkstate wird dafür ebenfalls auf $init_done geprüft.

Damit ist nach einem speichern der fhem.cfg der Status zuerst Initialized, bei get HCS values ist aber bereits der nächste Zeitpunkt zu finden (nicht n/a). Dann läuft HCS an.

vielleicht sollte das jemand einchecken.



Titel: Antw:59_HCS.pm: kein Start nach rereadcfg; angepasste 59_HCS.pm in Beitrag #37
Beitrag von: Memphiz am 18 November 2015, 17:04:37
Hatte genau das gleiche Problem nachdem ich gestern meine Therme schaltbar gemacht habe. Heute morgen kein warmes Badezimmer (hatte zum schluß die cfg editiert). Mit Deinen Änderungen funktioniert es prima. Wäre schon gut, wenn die Änderung irgendwie den Weg in die Hauptquellen finden könnte.
Titel: Antw:59_HCS.pm: kein Start nach rereadcfg; angepasste 59_HCS.pm in Beitrag #37
Beitrag von: peterchen89 am 20 Januar 2016, 08:58:05
Sorry dass ich den Post wieder aus der Versenkung hole. Ich denke die Lösung wie hier vorgestellt ist nicht die feinste. Besser wäre wenn HCS selbst auf REREADCFG lauschen würde. Vielleicht kann der Post mal in ein Unterforum mit mehr Bezug zu HCS verschoben werden.
Titel: Antw:59_HCS.pm: kein Start nach rereadcfg; angepasste 59_HCS.pm in Beitrag #37
Beitrag von: Mr.Heat am 20 Januar 2016, 09:39:01
Schon richtig. War halt meine schnelle Lösung nachdem das irgendwie sonst ignoriert worden ist.
Gibt ja keinen Bugtracker o.Ä. meines Wissens... mehr als schreiben kann ich nicht.

LG