Dummy mit Werten anderer Dummys befuellen

Begonnen von Zrrronggg!, 17 Juli 2012, 18:59:07

Vorheriges Thema - Nächstes Thema

Zrrronggg!

                                                     

Folgende 3 Sachen will ich gerne machen, rätsele aber über die Syntax.

Es gebe 3 Dummys
D1
D2
D3

Task 1:
define irgendein event, das Inhalt von D1 in D3 schreibt.
Ich vermute was wie:
set D2 "$value{D1}"
lege mir aber die Karten mit der genauen Syntax.

Task 2:
Inhalt von D1  + Inhalt von D2 in D3

Task 3:
 Inhalt von D1  + aktuelle Uhrzeit in D3



Das soll eigentlich so ne Art Debug-Hilfe für mich sein. Ein
bestimmtes Event löst aus und ich weiss nicht warum.
Ich will jetzt bei Auslösung 2-3 kritische Dinge und die Uhrzeit aus
vorher befuellten Dummys zusammensammeln, um zu sehen , was vorher
passiert ist, bzw. wie der Zustand von Devices war.

Der Kram steht  natürlich auch im Log, da die Events aber selten
eintreten muss ich da kilometerweise Log durchforsten.

Ich will mir eine schnelle Anzeige der wichtigsten Daten am
Webfrontend basteln.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

rudolfkoenig

                                                   

> define irgendein event, das Inhalt von D1 in D3 schreibt.
???

> set D2 "$value{D1}"

Falsch, da fhem direkt keine Variablen und Kontrollstrukturen kennt.  Diese
Dinger muessen alle mit perl erledigt werden, und das macht man in fhem mit
{} da wo man auch sonst ein fhem Kommando eingeben koennte.
In Perl hat man Zugriff auf die Fhem Kommandos mit der fhem() Funktion, es gibt
weiterhin div. perl Funktionen um vereinfacht auf fhem-interne Werte
zuzugreifen, siehe auch http://fhem.de/commandref.html#perl

So sollte es richtig sein:
fhem> { fhem("set D3 ".Value("D1")) }
bzw.
fhem> define setD2 notify setD2 { fhem("set D2 ".Value("D1")) }
fhem> trigger setD2

$value{D1} geht auch, aber ich will davon irgendwannmal weg, weil ineffizient.
-> $value{D1} is deprecated.


> Inhalt von D1  + Inhalt von D2 in D3
fhem> { fhem("set D3 ".(Value("D1")+Value("D2"))) }
(+ ist Zahlen addieren, . ist String konkatenieren)


>  Inhalt von D1  + aktuelle Uhrzeit in D3
fhem> { fhem("set D3 " . (Value("D1")." ".TimeNow())) }

Ende der Perl Stunde :)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com