FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: davedeluxe am 11 Januar 2016, 09:01:37

Titel: Readings auslesen und verwenden
Beitrag von: davedeluxe am 11 Januar 2016, 09:01:37
Guten Morgen,

ich versuche seit ein paar Tagen Readings auszulesen um diese weiterzuverwenden.
Konkret geht es um den Status der Alarmanlage (95_Alarm.pm).
Ich möchte z.B. den Status des Alarmlevel 0 abfragen und damit eine Lampe schalten.
Sprich wenn das Reading AAA level0xec "armed" lautet dann soll Lampe1 auf on geschaltet werden.
Oder noch etwas verzwickter: WENN AAA level0xec = armed & Schalter1 = on DANN schalte Lampe1 auf on
Das größte Problem ist es wohl das Reading zu nutzen.

Kann mir hierbei jemand weiterhelfen?

Grüße Dave
Titel: Antw:Readings auslesen und verwenden
Beitrag von: marvin78 am 11 Januar 2016, 09:03:02
ReadingsVal
Titel: Antw:Readings auslesen und verwenden
Beitrag von: davedeluxe am 11 Januar 2016, 11:45:17
Danke,

das mit ReadingsVAL habe ich auch schon probiert aber ich komme nicht weiter.
Könnte mir jemand für mein Beispiel aus dem ersten Post die Funktion aufschreiben das ich sie mal im ganzen sehe und dann vielleicht auch verstehe?

"wenn das Reading AAA level0xec "armed" lautet dann soll Lampe1 auf on geschaltet werden"

Danke!
Dave

Titel: Antw:Readings auslesen und verwenden
Beitrag von: marvin78 am 11 Januar 2016, 11:59:42
Besser wäre es, wenn du das, was du probiert hast, posten würdest und wir dir dann daran etwas beibringen könnten.

So weit ich weiß, bringt das Modul Alarm teilweise solche Funktionen selbst mit, sodass sich die Problemstellung gar nicht ergibt. Hier kann ich aber irren.

Warum eigentlich ein Reading auslesen? Es wird doch sicher ein Event erzeugt und darauf kann man mit notify reagieren. Dann ist es nicht nötig, ein Reading auszulesen. Möchtest du das Reading zu einer gewissen Zeit prüfen und nicht zu dem Zeitpunkt, zu dem es auf armed umschaltet?

Es heißt nicht ReadingsVAL sondern ReadingsVal.

Wie du siehst, lieferst du einfach zu wenig und fertiger Code ist nur dann zu liefern, wenn alle Informationen da sind. Nicht, dass ich fertigen Code liefern würde...
Titel: Antw:Readings auslesen und verwenden
Beitrag von: davedeluxe am 11 Januar 2016, 12:12:55
Leider habe ich zu diesen Funktionen die das Modul Alarm mitbringt nichts gefunden, deshalb wollte ich es mit dem Auslesen der Readings versuchen.

Bisher habe ich:

my $Alarm.Abwesend=ReadingsVal($AAA, "level1xec", "disarmed");;\
define ButtonOnAAA DOIF ([$Alarm.Abwesend] eq "armed" and [Button1] eq "open") (set Lampe1 on) DOELSE (set Lampe1 off)

Ich möchte das die Lampe1 angeht wenn die Alarmanlage auf "armed" steht und dann der Button1 gedrückt wird (dieser wird irgendwann gedrückt während die Alarmanlage aktiv ist).

Titel: Antw:Readings auslesen und verwenden
Beitrag von: marvin78 am 11 Januar 2016, 12:23:53
DOIF bringt doch einiges zum Auslesen von Readings mit. Doku dazu hast du gelesen? In den Beispiele der deutschen commandref sollte sehr viel für dich zu finden sein (bspw. Kombination von Ereignis- und Zeitsteuerung mit logischen Abfragen). Du musst hier umgekehrt denken. Die Alarmanlage ist schon armed, also musst du auf das Event reagieren, das der Button auslöst und dabei abfragen, ob die armed gilt. Das kann DOIF ohne irgendwelche Perl-Teile.

Bitte verwende Code Tags hier im Forum. So kann das niemand lesen.

Du kannst im Übrigen nicht einfach irgendwo in der Config eine Perl Variable definieren. Bevor du so "komplizierte" Sachen angehst, solltest du dich mit den Grundlagen beschäftigen (FHEM, Perl, commandref, Anfänger-PDF etc.). Auch das direkte Editieren der Config ist weder nötig noch empfohlen.