Fenster Sensor eines FHT's auslesen

Begonnen von Charity, 01 Januar 2014, 19:18:27

Vorheriges Thema - Nächstes Thema

Charity

Hallo zusammen,

ich würde gerne den Fenster Sensor eines FHT80b auslesen um einen Dummy auf "offen" oder "zu" setzen zu können.

Der FHT ist wie folgt definiert


## Heizung
define SZ_Heizung FHT 3834
attr SZ_Heizung alias Schlafzimmer Heizung
attr SZ_Heizung fm_type temperature,desiredtemp,tempbutton,window,actuators
attr SZ_Heizung group Heizungen
attr SZ_Heizung icon hc_wht_regler
attr SZ_Heizung model fht80b
attr SZ_Heizung retrycount 3
attr SZ_Heizung room 20 Heizungen


Ich würde gerne bei einer Statusänderung des Readings "window" mittels notify den Dummywert ändern.

Ich hab mittlerweile einiges ausprobiert, aber leider funktioniert das nicht so wie ich mir das erwarte.

Der Dummy ist wie folgt definiert :

define Fenster_SZ dummy
attr Fenster_SZ alias Fenster Schlafzimmer


Mein letzter nicht funktionierender Versuch war :

define act_on_Window_SZ notify SZ_Heizung.* { \
$curWindow_SZ = ReadingsVal ("SZ_Heizung","window","open");;\
if (Value($curWindow_SZ) eq "open" ) { fhem "set Fenster_SZ offen" };;\
if (Value($curWindow_SZ) eq "closed" ) { fhem "set Fenster_SZ zu" };;\
}


aber auch solche Codings funktionieren nicht

define act_on_Window_SZ notify SZ_Heizung:open { ...
oder
define act_on_Window_SZ notify SZ_Heizung:window:open { ...
oder
define act_on_Window_SZ notify SZ_Heizung.*:open { ...
geht nicht.

Puschel74

Hallo,

SZ_Heizung:window.*

Versuch mal das.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Charity

Danke,

nun scheint fhem nun zumindest auf das notify zu reagieren.


define act_on_Window_SZ notify SZ_Heizung:window.* { \
$curWindow_SZ = ReadingsVal ("SZ_Heizung","window","open");;\
if (Value($curWindow_SZ) eq "open" ) { fhem "set Fenster_SZ offen" };;\
if (Value($curWindow_SZ) eq "closed" ) { fhem "set Fenster_SZ zu" };;\
}


leider bekomm ich aber folgenden Fehler :

Zitat
2014.01.01 20:21:11 3: act_on_Window_SZ return value: Global symbol "$curWindow_SZ" requires explicit package name at (eval 1149) line 2.
Global symbol "$curWindow_SZ" requires explicit package name at (eval 1149) line 3.
Global symbol "$curWindow_SZ" requires explicit package name at (eval 1149) line 4.

Was bedeutet das ?

Puschel74

Hallo,

das hier
Zitat$curWindow_SZ = ReadingsVal ("SZ_Heizung","window","open");;\
noch ein my davor gehört.

Also so:
my $curWindow_SZ = ReadingsVal ("SZ_Heizung","window","open");;\

Sorry. Hatte ich vorhin doch glatt übersehen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Charity

Danke, jetzt bekomm ich den Fehler zwar nicht, aber funktionieren tut's auch nicht ;-)

So sieht der Code nun aus.
Ein notify wird nicht ausgelöst bei einer Änderung des Values "window"


define Fenster_AZ dummy
attr Fenster_AZ alias Fenster Arbeitszimmer

define act_on_Window_AZ notify AZ_Heizung:window.* { \
my $curWindow_AZ = ReadingsVal ("AZ_Heizung","window","open");;\
if (Value($curWindow_AZ) eq "open" ) { fhem "set Fenster_AZ offen" };;\
if (Value($curWindow_AZ) eq "closed" ) { fhem "set Fenster_AZ zu" };;\
}

define FileLog_act_on_Window_AZ FileLog ./log/act_on-%Y.log act_on_Window_AZ
attr FileLog_act_on_Window_AZ logtype text
attr FileLog_act_on_Window_AZ room 90 Alarmanlage


Puschel74

Hallo,

Event Monitor öffnen und den FHTTK öffnen/schliessen und schauen was der Event Monitor sagt.

Wenn es ein FHTTK ist kannst du aber auch direkt diesen abfragen bzw. du brauchst keinen Dummy schalten.
autocreate sollte einen FHTTK erkennen und anlegen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

stromer-12

Zitat von: Charity am 01 Januar 2014, 21:37:59


if (Value($curWindow_AZ) eq "open" ) { fhem "set Fenster_AZ offen" };;\
if (Value($curWindow_AZ) eq "closed" ) { fhem "set Fenster_AZ zu" };;\


ohne Value() sollte es klappen.


if ($curWindow_AZ eq "open" ) { fhem "set Fenster_AZ offen" };;\
if ($curWindow_AZ eq "closed" ) { fhem "set Fenster_AZ zu" };;\

FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Puschel74

Hallo,

Zitatohne Value() sollte es klappen.

Stimmt.
Und noch was übersehen  :o

stromer-12 sollte recht behalten  8)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Charity

Perfekt, danke. Das hat echt super geklappt.

An dieser Stelle muss ich echt mal sagen, dass das hier eines der Besten Foren ist die ich kenn.
Hier wird stets schnell und kompetent geholfen.

Prima.
Danke

Hans Topf

Könntest du deinen nun bei dir funktionierenden, vollständigen Code hier noch einmal einstellen? Danke!

Charity

Klar, mach ich gerne.

Damit wird mal der Dummy definiert

define Fenster_AZ dummy
attr Fenster_AZ alias Fenster Arbeitszimmer


und damit mittels notify auf die Statusänderung reagiert:

define act_on_Window_AZ notify AZ_Heizung:window.* { \
my $curWindow_AZ = ReadingsVal ("AZ_Heizung","window","open");;\
if ($curWindow_AZ eq "open" ) { fhem "set Fenster_AZ offen" };;\
if ($curWindow_AZ eq "closed" ) { fhem "set Fenster_AZ zu" };;\
}


AZ_Heizung ist der definierte FHT für dieses Zimmer.

Und damit kann ich sehr einfach eine Übersicht erstellen in der ich den Status der jeweiligen Fenster sehe.
Ich weiss man kann es auch einfacher abfragen, aber damit geht die Statusabfrage auf Fenster.* recht einfach.

Puschel74

Hallo,

schön das der Code funktioniert aber ...

Du verwendest als Fensterkontakte doch FHTTK oder nicht?
Diese sollten dank autocreate aber in FHEM als CUL_FHTTK angelegt werden und stellen ihren Status ohne notify bereit.

Wenn es keine FHTTK sind beachte meinen Beitrag bitte nicht weiter.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

ZitatDiese sollten dank autocreate aber in FHEM als CUL_FHTTK angelegt werden und stellen ihren Status ohne notify bereit.

Genau. Und für die Dinger ist selbst Autocreate schon zu kompliziert.
Die melden sich im Log und dann legt man die einfach an. ich zitiere mal den passenden Wikiartikel:

ZitatWird ein neuer CUL/FHEM Türkontakt erkannt, erscheint im Logfile "FHTTK unknown device 123abc, please define it." (wobei 123abc ein Stellvertreter für den tatsächlichen Devicecode des Fensterkontaktes ist, der dem Logfileeintrag zu entnehmen ist), der Fensterkontakt kann dann mit
define <name> CUL_FHTTK <devicecode>
definiert werden.


Und danach mache ich z.b. schlicht Folgendes:

define act_on_Tuer_Schlafen1 notify Tuer_Schlafen { if (Value("Tuer_Schlafen") eq "Closed") { fhem("set AussentuerEG_Schlafen zu") } else { fhem("set AussentuerEG_Schlafen offen") }}

wobei
Tuer_Schlafen
mein FHTTK ist und
AussentuerEG_Schlafen
mein dummy.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Puschel74

Hallo,

sorry, ich steh grad aufm Schlauch  :o

Wozu dupliziert man sich den Status eines FHTTK per notify in einen Dummy?
Ich versteh grad den Sinn dahinter nicht - ausser das es klappt.

Bitte um Aufklärung - Danke schonmal.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

#14
ICH habe das gemacht weil ich damit eine Alarmanlage gebastelt habe.

Dabei habe ich auf vorhanden Sensoren zurückgegriffen. Das waren FHTTKs (Plural -S wird natürlich nicht mit Apostoph abgetrennt auch wenn Threadersteller das glaubt ;-)  ) aber auch FS20TFK und HM-SEC-SC .

Das Problem ist nun, das die alle was anders melden:


FHT80TF (aka FHTTK)-> Open / Closed
HM-SEC-SC -> open / closed
FS 20 TFK -> on / off (!)

Wenn man jetzt mehrere der Kontakte mit einem notify abfragen will, kann man weder nach  einem gleichen State wie "open" oder "close" abfragen noch die  Geräte nach TYPE zusammengefasst abfragen.

Daher habe ich mir als Abstraktionslayer Dummys gemacht, die nun alle "Tuer_irgendwas" heissen und alle den Zustand "auf" und "zu" kennen und vom jeweiligen Kontakt "befüllt" werden.

Zum Auslösen des Alarms kann ich jetzt sowas machen:

define act_on_tuer_auf notivy tuer_.*:auf set alarm on


(vereinfacht ausgedrückt, mehr Details und weitere Gründe dazu im Wikiartikel "Alarmanlage, speziell hier: http://www.fhemwiki.de/wiki/Alarmanlage#Abstraktionlayer)

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL