FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bown am 09 Februar 2016, 19:12:36

Titel: ReadingsVal() State eines Funkaktors auslesen.
Beitrag von: bown am 09 Februar 2016, 19:12:36
Hallo liebe Community,

ich stehe noch in den Anfängen mit FHEM, bin allerdings recht fit was perl angeht.

Mein Ziel:
- Mit der Steckdose gleichzeitig meinen Denon AVR (hängt auch an dieser Dose) einschalten, da sich dieser in Abhängigkeit vom Ausschalten des Gerätes und Ausschalten der Steckdose in etwas undefinierten Zustand befindet.
- Ich möchte also in jedem Fall mit Einschalten des Aktors den AVR einschalten.
- Funksteckdose (HM-ES-PMSw1-Pl)schalten, per notify (über HM-RC-8 ) -> funktioniert soweit mit toggle..
- zusätzlich meinen Denon AVR per Telnet einschalten, zeitverzögert (bis der Server antwortet ca. 20-25 Sekunden)
- ich möchte gerne den Status des Aktors abfragen um nur beim Einschalten des Aktors den Denon zu starten.

mein Problem:
- dazu möchte ich den Status des Aktors auslesen, also konkret den Wert des Reading bzw. Internal per ReadingsVal().., bekomme aber offensichtlich keinen validen Wert geliefert. Nach langer Recherche bin ich trotzdem nicht viel schlauer und hoffe auf einen Tip in die richtige Richtung.

Hier mein Behelfscode zum Auslesen des Status:

define act_on_Taste2 notify FB01_Btn_02 set wz_media {\
        my §status=&ReadingsVal("wz_media", "state", "on") ;;\
        log 3, §status;;\
}


Das Log liefert mir jedoch immer:

act_on_Taste2 return value: Unknown argument {
, choose one of clear:readings,trigger,register,oldRegs,rssi,msgEvents,attack,all getConfig getRegRaw inhibit:on,off off on on-for-timer on-till peerBulk peerIODev press regBulk regSet sign:on,off statusRequest toggle

Vielen Dank!
Chris
Titel: Antw:ReadingsVal() State eines Funkaktors auslesen.
Beitrag von: marvin78 am 09 Februar 2016, 19:17:21
Wie kommst du auf das Paragraphenzeichen? Log schreibt sich groß.

FB01_Btn_02 set wz_media {
        my $status=ReadingsVal("wz_media","state","on");
        Log 3, §status;
}


Code für den DEF Bereich.

EDIT: Tipp: Bitte Grundlagen lernen.
Titel: Antw:ReadingsVal() State eines Funkaktors auslesen.
Beitrag von: bown am 09 Februar 2016, 19:31:22
Zitat von: marvin78 am 09 Februar 2016, 19:17:21
Wie kommst du auf das Paragraphenzeichen? Log schreibt sich groß.

Sorry Tippfehler, der Schnippsel hat aber gepasst in der *.cfg

Zitat von: marvin78 am 09 Februar 2016, 19:17:21

Code für den DEF Bereich.

EDIT: Tipp: Bitte Grundlagen lernen.
Kannst du mir das bitte etwas genauer erläutern?
Titel: Antw:ReadingsVal() State eines Funkaktors auslesen.
Beitrag von: marvin78 am 09 Februar 2016, 20:41:58
Der Code oben funktioniert nur, wenn du ihn nicht direkt in die Config einfügst, sondern in den DEF Bereich in der Detailansicht des noitifies im Frontend. Ich gebe grundsätzlich keinen Code für die Config, da es gerade für Anfänger, nach meiner Ansicht, nicht der beste Weg ist die Konfiguration zu ändern.

Grundlagen lernen erklärt sich von selbst: Anfänger-PDF etc.

ich würde allerdings auch direkt im notify auf das richtige Event (on) reagieren.