Fehler nach Update

Begonnen von gorax, 17 Dezember 2013, 16:29:55

Vorheriges Thema - Nächstes Thema

gorax

Hallo,

nach einem update gestern (fhem auf Fritzbox) kommen folgende Meldungen:

Konsole:
Use of uninitialized value in string eq at ./FHEM/10_MAX.pm line 540.
Use of uninitialized value $d in hash element at fhem.pl line 3046.

FHEM-Log:
MAX: Invalid value  for READING groupid. Forcing to 0

Gruppen habe ich für alle MAX-Geräte eingerichtet.

Da diese Meldungen nur so durchlaufen, ist ein Arbeiten nicht mehr möglich.

Kann jemand helfen?

Herzliche Grüße
G. Rappel


Harald

Hallo gorax,

siehe hier und nimm die alte 10_MAX.pm bis Matthias Zeit für die Korrektur gefunden hat. Dann sind die Meldungen wieder weg.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

gorax

Hallo Harald,

danke für den Hinweis.

Austauschen mußte ich außer der
  10_MAX.pm auch die
  00_MAXLAN.pm
  01_FHEMWEB.pm und die
  fhem.pl

Jetzt läuft es hoffentlich soweit wieder.

Viele Grüße
gorax



mahlzeit24/7

Hallo,

ich hatte auch diverse Probleme und habe folgendes gelernt:

der updatefhem prozess arbeitet überwiegend verlässlich, doch nun hats mir in 2 Monaten 2mal meine FHEM inst zerpflückt.

Das letzte Mal letzte Woche, vom Büro aus vormittags das update gestartet, wegen fehlender Konsole nicht gemerkt, dass das backup 0byte gross ist und dann natürlich ein shutdown restart gemacht und gewundert, das kein fhem mehr erreichbar war.

Die Fehlermeldungen betrafen ausgesprochen viele Module, sodass ich den weg der "drüberinstallation" gewählt habe, cfg und sonstige Customizations zurückgespielt und gut wars.

Im Grunde will ich nicht meckern, überwiegend läuft alles sehr stabil, nur ein update werde ich nicht mehr remote machen ;-), es sei denn ich hab ne Konsole.

Herzliche Grüße

Frank

ws

Ich konnte mit folgendem Patch an der 10_MAX.pm das Problem umgehen:

540c540,542
<         $wallthermo = 1 if((MAX_ReadingsVal($shash,"groupid") eq MAX_ReadingsVal($hash,"groupid")) and $shash->{type} eq "WallMountedThermostat");
---
>         if ($shash->{type} eq "WallMountedThermostat") {
>           $wallthermo = 1 if(MAX_ReadingsVal($shash,"groupid") eq MAX_ReadingsVal($hash,"groupid"));
>         }


Grüße
ws

gorax

Hallo ws,

danke für den Patch.

Ich habe die Zeile 540: if ($shash->{type} eq "WallMountedThermostat") {

ergänzt auf:    if ( defined $shash->{type} && $shash->{type} eq "WallMountedThermostat") {

Damit konnte ich noch die auf der Konsole durchlaufende Meldung:

'Use of uninitialized value in string eq at ./FHEM/10_MAX.pm line 541.'

wegbringen.

Herzliche Grüße
gorax


ws

Die Konsolen-Meldungen habe ich glatt übersehen  :-[
Danke :)

ChrisW

Zitat von: ws am 19 Dezember 2013, 23:02:54
Ich konnte mit folgendem Patch an der 10_MAX.pm das Problem umgehen:

540c540,542
<         $wallthermo = 1 if((MAX_ReadingsVal($shash,"groupid") eq MAX_ReadingsVal($hash,"groupid")) and $shash->{type} eq "WallMountedThermostat");
---
>         if ($shash->{type} eq "WallMountedThermostat") {
>           $wallthermo = 1 if(MAX_ReadingsVal($shash,"groupid") eq MAX_ReadingsVal($hash,"groupid"));
>         }


Grüße
ws

Kannst du das etwas erklären wie man den Patch einbaut ?
Hab mal versucht Ergebnis war immer das kein max Gerät mehr angezeigt wird :(
Raspberry PI3 mit allem möglichen.

pet22

a) Zeile 540 in 10_MAX.pm auskommentieren, dann direkt darunter einfügen:

#        $wallthermo = 1 if((MAX_ReadingsVal($shash,"groupid") eq MAX_ReadingsVal($hash,"groupid")) and $shash->{type} eq "WallMountedThermostat");
if ( defined $shash->{type} && $shash->{type} eq "WallMountedThermostat") {
$wallthermo = 1 if(MAX_ReadingsVal($shash,"groupid") eq MAX_ReadingsVal($hash,"groupid"));
}


b) beim Slider für HT/ HT+ erscheinen Einstellmöglichkeiten, die keinen Sinn machen bzw. Fehlermeldungen verursachen

c) 10_MAX.pm wurde hochgeladen von: "Setting eco, comfort, min, max for WallThermostat (by Jürgen I.)" Evtl. ist es noch nicht auf dem Radar von Matthias Gehre

Gruss

Pet22
Debian 11/ Intel Atom MB/ CUL V3/ Raspberrymatic/ Homematic classic, Homematic IP, WTs & HTs

Matthias Gehre

Hab einen Fix hochgeladen, bitte testen.

Harald

Hallo Matthias,

hab's soeben heruntergeladen und aktiviert -> es gibt weder im Logfile noch auf der Konsole Fehlermeldungen.

Vielen Dank, viele Grüße und guten Rutsch

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

ChrisW

würde ich auch gerne jetzt schon testen ;)
Wie spiele ich den fix ein ? mit Update findet er ja noch nichts .
Danke
Raspberry PI3 mit allem möglichen.

ws

@Matthias: funktioniert!

Danke.

Joachim

@ChrisW
über 800 Beiträge, aber noch nicht das Forum durchstöbert? :o
Ich fass es nicht!
Schau mal auf der Hauptseite, ob Du da soetwes wie FHEM Sourcecode findest?
Da findest du auch das, wonach Du suchst.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

ChrisW

bin bisher davon ausgegangen es per update zu bekommen aber das hat alles nicht geklappt.
Naja 800 Beiträge ist doch nicht gerade viel bei so einem Komplexen Thema.
Raspberry PI3 mit allem möglichen.

pet22

@ ChrisW - unter Weblinks in der Forum Übersicht --> FHEM Source Code oder http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/

@ Matthias - das gepatchte 10_MAX.pm läuft auch bei mir ohne Probleme.
Letzter verbliebener bug in der Vor-Version von Jürgen I. und im heutigen Patch:
Die Webansicht zeigt beim WT eine Auswahlmöglichkeit für boostValveposition und boostDuration die korrekterweise einen Fehler liefert:

ZitatUnknown argument boostValveposition, choose one of ........

Vielen Dank und guten Rutsch

Pet22


Debian 11/ Intel Atom MB/ CUL V3/ Raspberrymatic/ Homematic classic, Homematic IP, WTs & HTs

ws

pet22: ich konnte bei meinem WT keinen Fehler entdecken? Welche Ansicht meinst Du?

pet22

Hallo ws,

siehe Dateianlage.

Gruss

Pet22
Debian 11/ Intel Atom MB/ CUL V3/ Raspberrymatic/ Homematic classic, Homematic IP, WTs & HTs

jisleib

Hallo zusammen,

erst mal allen ein gutes neues Jahr

ich möchte hier mal aufklären. Ist zwar schon eine weile her daß ich mich damit beschäfftigt habe aber ich hoffe ich bekomm´s noch mal hin richtig zu erkären.

@pet22
zu a) Danke für die Korrektur, bei mir kam leider keine Fehlermeldung, weder im log noch auf der Konsole (warum?). Matthias hat es ja schon commited.

zu b) Die Auswahl macht hoffentlich nach meiner Erklärung Sinn

da es Probleme beim Setzen der ECO,Comfort,Min,Max und Windowopen in Bezug auf den Temperaturoffset am Wandthermostat gibt, auch in der orginalen MAX-Software, habe ich bevor eine der oben genannten Temeraturen an einem Heizungsthermostat verändert wird diese Möglichkeit unterbunden. Wenn ein Wandthermostat in der Gruppe erkannt wird können an den Heizthermostaten bei SET keine ECO,Comfort,Min,Max und Windowopen Temperaturen geändert werden, die settings gibt es dann einfach nicht mehr. Die Temperaturen dürfen nur am Wandthermostat geändert werden, die Heizungsthermostate bekommen durch das flag 04 und groupid die Werte aber auch mit, in den Readings ist das zu sehen. Der Offset wird immer ohne flag (00) und ohne groupid (00) gesendet, so bekommt nur der Wand- oder Heizthermostat das Telegramm ohne ein anderes Gerät damit zu beeinflussen. Es war recht schwer das herauszufinden, da auch die Orginalsoftware hier nicht korrekt arbeit. 

Zusammenfassend: Würde am Heizungsthermostat z.B. die ECO Temperatur verändert werden würde auch der Offset des Heizungsthermostaten an den Wandthermostaten mit geschickt werden und einen schon vorhandenen Offset im Wandthermostaten überschreiben. Durch die Änderungen geht das jetzt nur noch vom Wandthermostaten aus. Er schickt also bei Änderung der ECO,Comfort,Min,Max oder Windowopen auch seinen Offset an die Heizthermostate. Die reagieren aber nicht mehr darauf da gepairt mit Wandthermostat.

Der Fehler mit den boost Werten liegt bei mir. Ich hab vergessen Matthias noch die Änderung in 10_MAX.pm ab Zeile 304 zu senden.
Einfach das
}elsif(grep (/^\Q$setting\E$/, ("boostDuration", "boostValveposition", "decalcification","maxValveSetting","valveOffset"))
and $hash->{type} =~ /HeatingThermostat.*/){

gegen das tauschen
}elsif(grep (/^\Q$setting\E$/, ("boostDuration", "boostValveposition", "decalcification","maxValveSetting","valveOffset"))
and $hash->{type} =~ /Thermostat.*/){

danach können die boost Werte geändert werden. War mein Fehler, sorry.

der Boost wird aktuell nur im jeweiligen Gerät geändert, also nicht in der Gruppe, was dazu führt das bei unterschiedlichen Werten die Geräte auch unterschiedliches beim Betätigen von boost anzeigen. Hier gibt es also noch Optimierungspotenzial. Ziel sollte wieder der Wandthermostat sein in der Gruppe, oder ?

zu c) sollte mit b) geklärt sein. Ich kann nicht direkt Änderungen durchführen, hab keinen Zugang.  Ich werde Matthias noch bitten die obere Änderung zu commiten.

Grüsse Jürgen

pet22

Hallo Jürgen,

erst mal allen ebenfalls ein gutes Neues Jahr.

Vielen Dank für deine Erläuterungen.

a) der Dank gebührt "ws" und "gorax". Nur haben die beiden es in "bits'n pieces" beschrieben, somit haben sich Einträge ... seit Tagen eine Fehlermeldung ... invalid value ... im Forum gehäuft. Matthias hat es dann als Profi eleganter gelöst.

b) so langsam versteh ich die Absicht, die dahinter steckt. Allerdings tritt/ trat das geschilderte Problem vorher bei mir nie auf:

  • nur (1) WT+ und nur (1) HT sind gepaired
  • beide haben die gleiche groupID
  • HT hatte measurementOffset 0 - meine Annahme war WT+ ist alleine zuständig für Ist-/ Sollwert-Vergleich
  • vor Einführung des measurementOffset beim WT habe ich eben die eco/comfort Temperatur entsprechend verdreht, um einen Offset zu haben.
  • nachdem ich es eben im WebIF von FHEM kontrolliert habe, sehe ich, dass der gleiche measurementOffset bei WT+ und HT eingestellt ist.

Von mir gibt es keine Einwände, dass Eingaben nur noch am WT/ WT+ gemacht werden können, da es Inkonsistenzen bei der Eingabe vermeidet.
Danke und Gruss

Pet22
Debian 11/ Intel Atom MB/ CUL V3/ Raspberrymatic/ Homematic classic, Homematic IP, WTs & HTs

Matthias Gehre

Fix ist committed. Danke an alle, die mitgewirkt haben :-)

pet22

Hallo Matthias und Jürgen,

war gerade am Testen, da Gäste ausgeflogen.

Der Vorschlag von Jürgen ab Zeile 304 (in der neuesten Version 306) zu ändern in:

}elsif(grep (/^\Q$setting\E$/, ("boostDuration", "boostValveposition", "decalcification","maxValveSetting","valveOffset"))
and $hash->{type} =~ /Thermostat.*/){


Erzeugt bei mir folgende Log-Meldungen für den Thermostat:

Zitat2014.01.02 12:39:16 2: MAX: Invalid value  for READING decalcification. Forcing to Sat 12:00
2014.01.02 12:39:16 2: MAX: Invalid value  for READING maxValveSetting. Forcing to 100
2014.01.02 12:39:16 2: MAX: Invalid value  for READING valveOffset. Forcing to 0

Änderungen mit dem WebIF sind nicht möglich, da die Setter fehlen. Änderungen auf der Kommandozeile erzeugen die Fehlermeldung:

ZitatUnknown argument maxValveSetting, choose one of ......

Da mein CUL über 2 Stockwerke Entfernung "taubstumm" ist, kann ich nicht beurteilen, was die eigentliche Ursache ist.

Gruss

Pet22
Debian 11/ Intel Atom MB/ CUL V3/ Raspberrymatic/ Homematic classic, Homematic IP, WTs & HTs

pet22

Nachtrag:

der heutige Patch von Matthias:

@@ -304,7 +304,7 @@
     return ($hash->{IODev}{Send})->($hash->{IODev},"SetTemperature",$hash->{addr},$payload, groupId => sprintf("%02x",$groupid), flags => ( $groupid ? "04" : "00" ));

   }elsif(grep (/^\Q$setting\E$/, ("boostDuration", "boostValveposition", "decalcification","maxValveSetting","valveOffset"))
-      and $hash->{type} =~ /HeatingThermostat.*/){
+      and $hash->{type} =~ /.*Thermostat.*/){

     my $val = join(" ",@args); #decalcification contains a space


erzeugt keinerlei Fehlermeldungen im Log oder auf der Konsole. Per "set" gesetzte Werte bleiben erhalten.

Sieht gut aus, Gruss

Pet22
Debian 11/ Intel Atom MB/ CUL V3/ Raspberrymatic/ Homematic classic, Homematic IP, WTs & HTs

Franz Tenbrock

#23
Hallo an alle,
habe gestern mittag den maxlan in FHEM integriert, hat auch alles super geklappt,
habe die ganzen Logfiles auskommentiert da ich schnell gesehen habe das meine Fritz volläuft und ich die Werte auch nicht brauche

Habe zwischenzeitlich weitergesucht und was zu verbose gefunden
hatte in der fhem.cfg

attr global verbose 5

stehen
das hab ich nun auf 2 geändert, damit sollte das unten stehende erledigt sein ?!
Bis man halt alle Kommandos als Anfänger verstanden hat :-(

Ev kann es ja doch ncoh einer überfliegen

define MAX_0a05b2 MAX WallMountedThermostat 0a05b2
attr MAX_0a05b2 alias WZ_Th
attr MAX_0a05b2 group Heizung
attr MAX_0a05b2 room MAX
#define FileLog_MAX_0a05b2 FileLog ./log/MAX_0a05b2-%Y.log MAX_0a05b2
#attr FileLog_MAX_0a05b2 logtype text
#attr FileLog_MAX_0a05b2 room MAX


So sind dann auch die ganzen Logfiles verschwunden und ich dachte alles ist ok
Kurz nach o Uhr dann wurde aber nichts mehr gelogt und alle Plots die super funktionierten waren heute morgen leer
:-(
im Explorer hab ich dann gesehen das der Speicher der Fritz voll ist   :-\
Dann hab ich gesehen das die fhem.log riesig ist.
Ohne Ende Einträge von max
Alles unbrauchbares Zeug was ich da nciht haben will

Ohne Ende Einträge wie das hier
014.01.11 11:23:10 5: MAX_Parse MAX,1,ThermostatState,09932d,19081f00bb00
2014.01.11 11:23:10 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 1, valveposition 8 %, desiredTemperature 15.5, until , curTemp 18.7
2014.01.11 11:23:10 5: Triggering MAX_09932d (6 changes)
2014.01.11 11:23:10 5: Notify loop for MAX_09932d mode: manual
2014.01.11 11:23:10 5: Triggering MAX_09932d (5 changes)
2014.01.11 11:23:10 5: Notify loop for MAX_09932d MAXLAN_initialized: 1
2014.01.11 11:23:10 5: len 11, addr 09935f, initialized 1, valid 1, error 0, errCmd 09, answer 0, unkbit (0,0,0)
2014.01.11 11:23:10 5: ml dispatch MAX,1,ThermostatState,09935f,181c2a00e800
2014.01.11 11:23:10 5: MAX_Parse MAX,1,ThermostatState,09935f,181c2a00e800
2014.01.11 11:23:10 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 28 %, desiredTemperature 21, until , curTemp 23.2
2014.01.11 11:23:10 5: Triggering MAX_09935f (6 changes)
2014.01.11 11:23:10 5: Notify loop for MAX_09935f mode: auto
2014.01.11 11:23:10 5: Triggering MAX_09935f (5 changes)
2014.01.11 11:23:10 5: Notify loop for MAX_09935f MAXLAN_initialized: 1
2014.01.11 11:23:10 5: len 11, addr 0bab14, initialized 1, valid 1, error 0, errCmd 09, answer 0, unkbit (0,0,0)
2014.01.11 11:23:10 5: ml dispatch MAX,1,ThermostatState,0bab14,18182700c500
2014.01.11 11:23:10 5: MAX_Parse MAX,1,ThermostatState,0bab14,18182700c500
2014.01.11 11:23:10 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 0, valveposition 24 %, desiredTemperature 19.5, until , curTemp 19.7
2014.01.11 11:23:10 5: Triggering MAX_0bab14 (6 changes)
2014.01.11 11:23:10 5: Notify loop for MAX_0bab14 mode: auto


Wie ihr sehr hab ich shcon gesucht und bin hier gelandet. Aber das sind ja eigentlich keine Fehlermeldungen ....
Einer einen kurzen Tip was zu tun ist?




Bin leider nur Anwender und kein IT Freak ( kann ja noch werden )
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Joachim

Zitatattr global verbose 5

Danach auch ein shutdown restart gemacht?
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Franz Tenbrock

Ja
natürlich,  mit verbose gleich 1 oder 2 ist jetzt auch alles ok
und die Daten die ich haben will werden auch geloggt und geplottet
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi