Variable aus device an Befehl anhängen

Begonnen von danieljo, 07 September 2015, 20:58:50

Vorheriges Thema - Nächstes Thema

danieljo

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

SvenJust

#1
Mit ReadingsVal können Readings aus einem Device gelesen werden. Die Syntax steht in der Commandref.

VG
Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

justme1968

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

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

danieljo

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.


justme1968

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

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

danieljo

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


justme1968

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

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

danieljo

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.


justme1968

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

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