FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dr4g0n am 24 April 2019, 14:57:44

Titel: DOIF 2 Var eine ist 0
Beitrag von: dr4g0n am 24 April 2019, 14:57:44
Hallo zusammen,

wenn folgendes in die DOIF Setze, dannn erhalten ich in der $a immer "0" als Value. Wenn ich {ReadingsNum('$NAME','AM2301_Temperature',0)} in der FHEM  CommandBox ausführe, dann gibt es einen Rückgabewert. Woran kann das liegen, dass nur $b gefüllt ist und $a mit 0 ausgegeben wird?

ZitatMQTT2_.*:AM2301_Temperature:.* {$a=ReadingsNum('$NAME','AM2301_Temperature',0), $b=ReadingsNum("$NAME","AM2301_Humidity",0);; system("echo $a http://debian:81/input/?node='$NAME&data={Temp:$a,Humidity:$b}&apikey=xxxxxxxx'"); return}

Danke für die Hilfe.
Titel: Antw:DOIF 2 Var eine ist 0
Beitrag von: MadMax-FHEM am 24 April 2019, 15:25:07
Hallo,

ich glaube nicht, dass wenn du

{ReadingsNum('$NAME','AM2301_Temperature',0)}

in die fhem-Web Zeile eingibst, dass du bekommst was du willst: woher soll denn in dem Fall $NAME kommen ;)

Das nur am Rande... ;)

Wenn ich die beiden Abfragen $a und $b vergleiche, dann sehe ich:

$a: "Einzelhochkomma" um $NAME, also '$Name' damit wird die Variable $Name nicht "aufgelöst" und somit wird versucht im Device "$NAME" das Reading "AM2301_Temperature" zu lesen. Ich schätze du hast kein Device mit dem Namen "$NAME" -> daher die 0 ;)

$b: hier sehe ich "Anführungszeichen", also "$NAME" d.h. der Name wird "aufgelöst" und vermutlich beim gewünschten Device das entsprechende Reading abgefragt -> passt

Anmerkung: bei DOIF gibt es auch "Kurzschreibweisen", sowas wie: [DeviceName:ReadingName] statt ReadingsVal bzw. noch irgendwie mit :d statt ReadingsNum: siehe commandref DOIF

Gruß, Joachim
Titel: Antw:DOIF 2 Var eine ist 0
Beitrag von: Otto123 am 24 April 2019, 17:46:19
Hi,

also wenn sich bei DOIF nicht gerade alles geändert hat, würde ich sagen: die gepostete DEF stammt aus einem notify.
:o ;D
Gruß Otto
Titel: Antw:DOIF 2 Var eine ist 0
Beitrag von: MadMax-FHEM am 24 April 2019, 18:13:48
Zitat von: Otto123 am 24 April 2019, 17:46:19
also wenn sich bei DOIF nicht gerade alles geändert hat, würde ich sagen: die gepostete DEF stammt aus einem notify.

Hi Otto,

ja hab mich auch gewundert...
...aber ändert an dem (vermutlichen) Problem nix ;)

Gut die Anmerkung bzgl. DOIF wäre hinfällig ;)

Mal sehen...

Gruß, Joachim
Titel: Antw:DOIF 2 Var eine ist 0
Beitrag von: dr4g0n am 24 April 2019, 23:24:19
Ach verdammt, ja das ist noch ein Notify und ja ich hab die "" vor lauter Klammern nicht gesehen.
Wie würde ein vernümpftiges DOIF aussehen, das bei einer änderung von MQTT2_.*:AM2301_Temperature triggert und dann ein curl in der shell ausführt (mit dem Variablenwert drin)?
Titel: Antw:DOIF 2 Var eine ist 0
Beitrag von: Otto123 am 25 April 2019, 13:47:33
Warum? Wenn das notify tut? Was soll an einem DOIF für diese Anwendung besser sein als bei einem notify.