FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: willybauss am 06 Juni 2014, 16:49:45

Titel: Dummydevice - Status auslesen klappt nicht
Beitrag von: willybauss am 06 Juni 2014, 16:49:45
Ich habe jetzt schon tagelang in der Commandref, dem Forum und sonstwo gelesen, und ich bekomme es einfach nicht hin.

Ich muss einen Wert zwischenspeichern, bevor er sich ändert. Dazu habe ich ein Dummydevice erzeugt und will ihm den Wert eines anderen Devices zuweisen. Aber das klappt irgendwie nicht. Auf einfache Verhältnisse runter gestrippt sieht es folgendermaßen aus:

define dummy1 dummy
define dummy2 dummy
define alarm notify dummy1 set dummy2 ReadingsVal("dummy1", "state", "0")
set dummy1 1


Ich hätte erwartet, dass bei "set dummy1 1" sich auch dummy2 ändert und den Status "1" erhält. Stattdessen erhält dummy2 den Status "ReadingsVal("dummy1", "state", "0")", also einen String.

Wo ist mein Denkfehler bzw. wie würde es richtig aussehen?
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: Bennemannc am 06 Juni 2014, 21:25:22
Hallo,

ein notify wird mit "trigger" getestet, da es auf ein EVENT reagiert. Ein set ist kein EVENT, deshalb wird der notify nicht angesprochen. Habe gerade kein Beispiel parat,
müsste aber "trigger name Wert" sein - einfach in die Befehlszeile eingeben, am besten wenn der Eventmonitor offen ist.

Gruß Christoph
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: justme1968 am 06 Juni 2014, 22:13:51
natürlich löst ein set ein event aus. genau so wie set reading. (siehe event monitor oder inform.)

dein code geht nicht weil du die fhem und perl ebene mischst. du solltest deswegen auch einen fehler im log sehen.

entweder fhem:define alarm notify dummy1 set dummy2 $EVENT

oder perl:define alarm notify dummy1 {fhem("set dummy2 ". ReadingsVal("dummy1", "state", "")}

gruss
  andre
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: willybauss am 07 Juni 2014, 13:30:36
Hi Andre,

super, VIIIIEEELEN DANK !!! Beides funktioniert perfekt - wobei die fhem-Lösung mit $EVENT für meinen Fall (im Vollausbau, den ich hier nicht geschildert hatte) nicht klappt. Ich habe deshalb die perl-Lösung verwendet.

[confused]
Ich hatte nicht erwartet, dass ReadingsVal ein perl Kommando ist. Ich habe es bei allen Googeleien immer nur in Zusammenhang mit fhem gefunden. Und in meinen bisher durchlaufenen perl Crashkursen tauchte es auch nicht auf.  Aber das erklärt auch, warum  ReadingsVal in der Commandref nicht dokumentiert ist.
[/confused]
 
{fhem("set dummy2 ". ReadingsVal("dummy1", "state", "")}  hatte ich im Prinzip auch versucht, allerdings so:
{fhem("set dummy2 ReadingsVal("dummy1", "state", "")")}

So allmählich dämmert mir, warum man mit dem . den ersten Teil des Kommandos mit dem ReadingsVal verbinden muss.

Besten Dank nochmal  :)
Willy
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: justme1968 am 07 Juni 2014, 13:34:07
es ist kein perl kommando sondern eine perl funktion. die ist aber nur auf der perl ebene verfügbar. in die perl ebene wechselst du mit dem {...}. sobald du auf der perl ebene bist stehen die fhem kommandos nur noch über den aufruf von fhem(...) zur verfügung.

gruss
  andre
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: willybauss am 07 Juni 2014, 15:43:58
letzte (wahrscheinlich dumme  :-[ ) Frage: woran erkenne ich, ob es eine perl-Funktion oder ein fhem Kommando ist - try & error wirds wohl nicht sein (?).
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: justme1968 am 07 Juni 2014, 17:07:17
kommandos sind nur das was du siehst wenn du help eingibst.

alles andere ist perl.

gruss
  andre
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: Puschel74 am 07 Juni 2014, 17:13:36
Hallo,

oder anders gesagt:
Alles was nicht in einem Perl-Buch als Befehl gelistet ist ist ein FHEM-Kommando  ;)


Grüße
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: justme1968 am 07 Juni 2014, 17:16:00
nein. eben nicht. ReadingsVal ist z.b.  kein fhem kommando sondern eine perl funktion und gehört in {...}. auch wenn sie in keinem perl buch steht.

gruss
  andre
Titel: Antw:Dummydevice - Status auslesen klappt nicht
Beitrag von: Puschel74 am 07 Juni 2014, 17:18:51
Hallo,

ok - Beitrag von vorhin bitte vergessen.
War mal wieder Blödsinn.

Danke andre für den Hinweis.

Grüße

P.S.: Mann oh mann, man lernt echt nie aus  8)