Hallo zusammen,
ich habe da ein Problem und hoffe auf Hilfe.
möchte gerne in meine 99_myUtils.pm eine Variable übergeben, das klappt auch.
Nun möchte ich aber eine state dieser Variable auf aktiv prüfen.
Und das ist meine Frage wie komme ich an den state.
Im großen und ganzen geht es darum die Sache nicht Hard zu coden sondern flexibel zu bleibe.
Das ganze dient dazu meine Aussenrollos im Haus zu steuern.
Das ganze soll über das Webfrontend aktiv/deaktiv sein.
Das ganze sieht in etwa so aus
my ($device, $rolloaktiv) = @;
und das $rolloaktiv möchte ich nun auf aktiv/deaktiv prüfen.
Und dann noch eine andere Frage.
kann mann zwei FS20 Device's zu einem zusammenfügen.
Macht man so was über ein dummy..
Danke euch
der spacy
Hallo,
in der 99_MyUtils.pm mach ich zwar nicht viel (noch nicht) aber ich denke mal das müsste gleich klappen wie sonst auch.
Entweder ReadingsVal oder Value.
Ich nehme mal an dieser aktiv/deaktiv ist in FHEM als Device angelegt?
Dann müsste du mit einem
my $aktiv=Value("<device_für_aktiv/deaktiv>","state","deaktiv")
den Status des Device auslesen können.
state kann auch State sein.
Wie meinst du
Zitatzwei FS20 Device's zu einem zusammenfügen
Sollen beide zugleich ein- und ausschalten?
Dann kannst du das mit structure lösen.
Grüße
P.S.: Ich hoffe ich hab jetzt nicht zu viel Blödsinn geschrieben
so sieht das bei mir aus.
my $true_aktivRollo = ReadingsVal($aktivRollo , "state" , "deaktiv");
Log 3, "doSunset: Prüfe Automatikbedarf für $device...";
if ( Value($true_aktivRollo) eq "aktiv" && .....
Ob ich Value oder ReadingsVal nehme ist egal.
Der Vergleich auf aktiv ist immer true egal wie ich es mache.
Warum reicht das nicht aus?
if (Value($aktivRollo) eq "aktiv")
Hi,
der Unterschied ist, das Value nur den aktuellen STATE ausliest und zurückgibt, und mit "ReadingsVal" kannst du ein beliebiges Reading auslesen.
Wenn das Modul normal programmiert wurde, dann gilt: Value("DeviceName") eq ReadingsVal("DeviceName", "state", "")
Der Inhalt des letzten Parameters von ReadingsVal wird geliefert, wenn das Reading nicht existiert.
Warum das bei dir immer zu true evaluiert, kann ich dir auch nicht sagen, was zeigt denn die Oberläche an?
Zum Testen kannst du auch in die Eingabebox auf der Weboberfläche folgendes eingeben:{Value("DeviceName")}
und dir anschauen, was da zurückkommt.
Grüße Reinerlein