Nach Update funktioniert set nicht mehr

Begonnen von LCN-User, 29 Mai 2014, 20:11:48

Vorheriges Thema - Nächstes Thema

LCN-User

Hallo,

nach langer Abwesenheit habe ich heute meine 5.4-Installation auf den aktuellen Stand gebracht. Leider bekomme ich nun ein paar Warnungen und Fehlermeldungen, die ich nicht wegbekomme:

In OutsideTemp wird regelmäßig eine Temperatur von einer Pseudo-Webpage eingelesen als Text eingelesen:

define OutsideTemp at +*00:10 { \
   my $OutsideTemp =  GetHttpFile("192.168.178.1:8000","/replacestate?src=FHEM_Data.html");;\
   fhem ("set MyTemp $OutsideTemp");;\


Bis zum heutigen Update hat dies reibungslos funktioniert. Jetzt bekomme ich im Log folgende Meldungen:

ZitatUse of uninitialized value $OutsideTemp in concatenation (.) or string at (eval 151) line 3.
2014.05.29 19:53:36 3: set MyTemp  : no set value specified
2014.05.29 19:53:36 3: OutsideTemp: no set value specified

Das Concatenation interpretiere ich als Warnung wegen einer fehlenden Deklaration, habe aber keine Ahnung, wo und wie ich das deklarieren soll.
Die Fehlermeldungen bei der Zuweisung von $OutsideTemp an MyTemp verstehe ich gleichfalls nicht. Was hat sich hier gegenüber früheren Versionen geändert und wie muss die Syntax nun lauten?

Danke für eure Hilfe,
LCN-User

LCN-User

#1
So, leichte Fortschritte: ich habe das Define wie folgt geändert:

define OutsideTemp at +*00:10 { \
   my $OutsideTemp = "0.0"
  $OutsideTemp =  GetHttpFile("192.168.178.5:8000","/replacestate?src=FHEM_Data.html");;\
   fhem("set MyTemp $OutsideTemp");;\
}


Die lokale Definition der Variablen als String lässt die 'Concatenation'-Warnung verschwinden.
Das Überarbeiten der fhem-Befehlszeile (Leerzeichen zwischen fhem, und ( entfernt) eliminiert die 'no set value specified'-Meldungen.

Aber der FHEM-Befehl weist nun dem Dummy MyTemp statt dem Variableninhalt den Namen der Variablen zu, wird also mit dem Text $OutsideTemp befüllt. ??? Was mache ich denn hier falsch und wieso ging das früher?

Danke für Hilfe,
LCN-User

Puschel74

Hallo,

fhem("set MyTemp ".$OutsideTemp)
Versuchs mal so.

Grüße
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.

LCN-User

HalloPuschel74,

jetzt sind die Fehlermeldungen wieder da:

ZitatUse of uninitialized value $OutsideTemp in concatenation (.) or string at (eval 205) line 4.
2014.05.30 17:44:57 3: set MyTemp  : no set value specified
2014.05.30 17:44:57 3: OutsideTemp: no set value specified

Puschel74

Hallo,

grad nachgeschaut.
Ich setze den set-Befehl aus so zusammen wie du:
fhem("set $sensor $sensor_temp $zeichen");
Das klappt bei mir einwandfrei.

Sorry für die Falschinfo vorher.

Grüße
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.

LCN-User

Na ja, wie ich eingangs schrieb, hat es ja vorher auch funktioniert. Das Problem existiert erst seit gestern Nachmittag, als ich in einem Anflug von feiertäglichem Wahnsinn "update" ins Webfront eingegeben habe...

LCN-User

Ich verstehe es nicht.

Das Verwenden von Anführungsstrichen " im DEF bringt Fehlermeldungen:

+*00:01 {
   my $OutsideTemp = "0.0";
   $OutsideTemp =  GetHttpFile("192.168.178.1:8000", "/replacestate?src=FHEM_Data.html");
   fhem("set MyTemp $OutsideTemp");
}


bringt die oben erwähnten no set value specified-Fehler. Ersetzt man die Anführungsstriche durch Apostroph, sind die Fehler weg, wobei meinem Dummy auch weiterhin nur der Text <$OutsideTemp> statt des Inhalts zugewiesen wird.

Wo finde ich eine korrekt Syntax-Beschreibung? Es kann doch nicht sein, dass diese Implementierung für Nicht-Experten nach dem Trial and Error-Prinzip funktioniert. Eine einwandfrei funktionierende Definition (Softwarestand Sep 2013) geht mit dem neuesten Stand vom 28. Mai nicht mehr. Wiki & Co haben überall Anführungsstriche, mit denen es aber nicht funktioniert. Welche Bedeutung haben die Apostrophe?

Ich bin ein wenig frustriert...