FHEM > Automatisierung

Werte von verschiedenen Geräten in einem "Room" abfragen und setzen ?

(1/3) > >>

Ralph:
Hallo allerseits,
ich kruschtle schon eine Weile damit rum.

Ich habe einen Raum "ToDo",
in dem befinden sich verschiedenen Geräte-Arten / -Typen,
es sollen über Funktionen flexibel automatisch oder manuell auch welche hinzugefügt und herausgenommen werden.

Wenn sich ein Gerät im Raum befindet, dann soll es in die Bearbeitung einbezogen sein, sonst nicht.
Es sollen Werte ausgelesen und ggfs. auch gesetzt werden. Das kriege ich hoffentlich alleine hin.

Mit foreach habe ich schon experimentiert, aber
ich scheitere an der Abfrage der im Raum befindlichen Geräte.

Über (Geräte-) TYPEen habe ich ein Beispiel gefunden und nutze das auch.

Dasselbe wünsche ich mir für ROOMs.

Könnte mir bitte jemand aufs Pferd helfen ?


UliM:

--- Zitat von: Ralph schrieb am Mi, 08 Mai 2013 18:52 ---
Mit foreach habe ich schon experimentiert, aber
ich scheitere an der Abfrage der im Raum befindlichen Geräte.

--- Ende Zitat ---


if (AttrVal("$device","room",undef) =~ m"gesuchterRaum"i)

Hilft das?

LG, Uli

rudolfkoenig:
Urspruenglich nicht fuer Enduser gedacht, verwenden kann man es trotzdem:


--- Code: ---foreach my $dev (devspec2array("room=myRaum")) {
  my $tmp = ReadingsVal($dev, "temperature", 20);
...
}

--- Ende Code ---


Was devspec2array kann, wird in http://fhem.de/commandref.html#devspec beschrieben.

Ralph:
Schwere Geburt :-)

Danke Uli, mit dem bin ich nicht klargekommen

Danke Rudi, damit bin ich ein Stück weiter, es sieht jetzt so aus:
--- Code: ---sub holen {
  foreach my $dev (devspec2array("room=ToDo")) {
    my $tmp = ReadingsVal($dev, "state", "nicht auslesbar");
    Log 3, $dev . " " . $tmp;
  }
}
--- Ende Code ---

Heraus kommt:
2013.05.09 02:02:40 3: ZZ_Flag off
2013.05.09 02:02:40 3: U_Verbraucher off
2013.05.09 02:02:40 3: S300TH T: 16.5  H: 70.8
2013.05.09 02:02:40 3: Hz_WoZi measured-temp: 19.6
2013.05.09 02:02:40 3: Badfenster nicht auslesbar

2 Hürden habe ich noch:

1.) ich möchte nicht den Wert selbst, sondern dessen dahinterstehendes Auslesedatum.

2.) Das Badfenster ist ein CUL_FHTTK, da gibt es in den Readings keinen "state", sondern nur nur einen "Window" mit Datum.
Ich müsste also wechselseitig je nach Typ auch noch einen anderen Wert (hier:Window) als nur "state" auslesen können.

Ich bitte nochmals um Hilfe ?
Gehe aber jetzt erstmal 2m horizontal und sortiere meine Verwirrung. GN8.

rudolfkoenig:
1: ReadingsTimestamp (ich empfehle http://fhem.de/commandref.html#perl durchzuarbeiten)
2: CUL_FHTTK ist (noch?) nicht auf die "neue", fuer Modulautoren empfohlene readings*Update Funktion umgestellt, und setzt STATE direkt. Damit koennte man alle Werte mit Value() abfragen.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln