Ich möchte an einem Befehl den ich in die commande Zeile in FHEM eingebe eine variable anhängen und somit mit dem Befehl übergeben.
Der Befehl lautet:
set RemotePI cmd set Aquarium_Thermostat desired 27.0
Anstatt der 27.0 soll nun die variable eingesetzt werden und zwar aus dem Device
cloneDummy "NAME = FHEM_Aquarium_Thermostat" attribut "desired" dort ist ein Wert mit 27.5 angegeben. Dieser soll ausgelesen werden und an den Befehl angängt werden.
MFG, Daniel Joachims
Mit ReadingsVal können Readings aus einem Device gelesen werden. Die Syntax steht in der Commandref.
VG
Sven
wenn den fhem aktuell ist geht das mit [<device>:<reading>]. also etwa so:set RemotePI cmd set Aquarium_Thermostat desired [FHEM_Aquarium_Thermostat:desired]
gruss
andre
Danke leider funktioniert das nicht so wie gedacht.
Da RFHEM "RemotePI" den Ausdruck "[FHEM_Aquarium_Thermostat:desired]" nicht auswertet sondern zu eins so übernimmt und mit übermittelt.
Habs auch schon mit "{ ReadingsVal ( "FHEM_Aquarium_Threshold","desired","" ) } versucht genau das gleiche im Log steht dann:
015.09.08 18:21:56 5: Cmd: >set Aquarium_Thermostat desired [Aquarium_Thermostat:desired_value]<
2015.09.08 18:22:13 5: Cmd: >set Aquarium_Thermostat desired { ReadingsVal ( "Aquarium_Thermostat","desired_value","" ) }<
Anstatt der Ausdrücke sollte dort die ausgelesen Variable des MASTERS von dem ich diesen Befehl sende stehen. Und nicht erst auf dem SLAVE ausgewertet werden.
der [] ausdruck wird lokal von fhem ausgewertet. du musst eventuell das featureLevel attribut noch setzen.
mit ReadingsVal musst du das komplette kommando zuerst auf perl ebene zusammen bauen und dann mit einem fhem( "set ..." ) ans remote device senden.
gruss
andre
Habem ir gerade noch was RFHEM Modul durchgelesen dort steht drin das:
komplexe Sachen mit Perl-code wie
set RemotePI cmd define a1 at 17:00:00 {fhem("set xyz on");}
gehen nicht da
fhem("set xyz on");
von fhem gleich versucht wird auszuführen ...
du musst dich entscheiden auf welcher seite du was ausführen willst und die kommandos dann entweder auf fhem oder perl ebene zusammenbauen.
ich denke du solltest versuchen alles auf einem zentralen system zu halten und an die anderen Systeme wenn überhaupt nur kommandos senden die direkt ausgeführt werden. alles andere erzeugt nur ein verteiltes system das weniger übersichtlich ist und keinerlei vorteile hat.
gruss
andre
Ok ich habs jetzt das featureLevel Attribut fehlte. Jetzt geht es so wie es soll.
Jetzt kann ich bei veränderung des Threshold Mdouls auf dem MASTER die entsprechenden Werte an den auf dem SLAVE definiertem Threshold übermitteln. Wunderbar.
Mein Problem ist etwas komplexy ich gebe es ja zu.
Der MASTER soll als Zentrale dienen. Auf dem SLAVE ist ein eigenständiges Threshold definiert. Welches auch immernoch funktionieren soll wenn der MASTER mal ausfallen sollte sprich: der SLAVE ist ein BACKUP für Threshold. Damit ich aber vom MASTER aus den Threshold steuern/verändern möchte sollten die Werte bei änderung des Threshold auf dem SLAVe geschickt werden.
unterm strich hast du mit deinem master und slave system aber nicht die zuverlässigkeit erhöht sondern doppelt so viele stellen an denen etwas schief gehen kann.
wenn du die zuverlässigkeit erhöhen bzw. die ausfall zeit minimieren willst ist es besser wenn du nur ein system alles machen lässt und davon ein aktuelles backup. wenn das haupt system nicht geht ersetzt du die hardware und spielst eventuell das backup wieder ein.
damit hat du weniger komplexität und mehr sicherheit.