Dummydevice - Status auslesen klappt nicht

Begonnen von willybauss, 06 Juni 2014, 16:49:45

Vorheriges Thema - Nächstes Thema

willybauss

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?
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Bennemannc

#1
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
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

willybauss

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
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

willybauss

letzte (wahrscheinlich dumme  :-[ ) Frage: woran erkenne ich, ob es eine perl-Funktion oder ein fhem Kommando ist - try & error wirds wohl nicht sein (?).
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

justme1968

kommandos sind nur das was du siehst wenn du help eingibst.

alles andere ist perl.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

#7
Hallo,

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


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.

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

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)
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.