FHEM Forum

FHEM - Hausautomations-Systeme => MAX => Thema gestartet von: Tobias am 08 Januar 2013, 09:40:28

Titel: MAX! WindowOpen ohne MAX-Fensterkontakt setzen?
Beitrag von: Tobias am 08 Januar 2013, 09:40:28
Hi,
ich habe teilweise Fensterkontakte auf 1wire Basis, also kein MAX! Fensterkontakt.
Wie kann ich dem MAX!-Thermostat nun beibringen, das das Fenster offen ist?
Gibt es soetwas wie einen Befehl:

set MAX_WZ WindowOpen
set MAX_WZ WindowClose

Ich könnte zwar sagen:
set MAX_WZ DesiredTemperature Off
aber dann müsste man sich ja die zuvor eingestellte Temperatur explizit merken um sie wieder einzustellen wenn das Fenster geschlossen wird...
Titel: Aw: MAX! WindowOpen ohne MAX-Fensterkontakt setzen?
Beitrag von: Matthias Gehre am 08 Januar 2013, 11:18:03
Technisch möglich ist das, indem man über den CUL so tut, als wäre man ein Fensterkontakt.
Dann kann man dem Thermostat die Nachricht "Fenster ist offen" schicken.

Wenn du etwas Ahnung von Perl hast,
dann kann ich dir beim schreiben eines Patches mir Rat behilflich sein.
Titel: Aw: MAX! WindowOpen ohne MAX-Fensterkontakt setzen?
Beitrag von: Tobias am 08 Januar 2013, 14:23:51
hab mir mal den Code angesehen. Da steht soetwas wie folgendes... Weißt du was man dem Thermostat genau senden muss damit der in den WindowOpen/Close Status geht?
Zitat($hash->{IODev}{SendDeviceCmd})->($hash->{IODev},pack("CCCCCCH6CC",0x00,0x00,0x22,0x00,0x00,0x00,$hash->{addr},0x00,$args[0]));
Titel: Aw: MAX! WindowOpen ohne MAX-Fensterkontakt setzen?
Beitrag von: Matthias Gehre am 08 Januar 2013, 16:02:49
Mit SendDeviceCmd geht es zwar, ist aber deprecated. Komfortabler ist Send ala,
  ($hash->{IODev}{Send})->($hash->{IODev},$cmd, $dst, $payload);

$cmd muss "ShutterContactState" state sein, $dst ist die Adresse des HeatingThermostat als Hex-String (z.B. "ab12ef"),
$payload ist ein Hex-string des Payloads. Für ShutterContactState findet man dazu was in MAX_Parse().
Der Payload ist ein Byte, entweder "10" für zu oder "12" für auf.

Damit der HeatingThermostat auf dein ShutterContactState reagiert, muss er aber zuerst per associate
mit dem Cube als "ShutterContact" assoziert werden. Dazu muss eine AddLinkPartner Nachricht geschickt werden,
Details sind in MAX_Set() unter dem Befehl "associate".
  set associate MAX_Heizung [adresseVonCUL_MAX]
geht nicht direkt, da das intern als Typ=Cube in die Nachricht steckt, wo wir hier Typ=ShutterContact brauchen.
Titel: Aw: MAX! WindowOpen ohne MAX-Fensterkontakt setzen?
Beitrag von: Tobias am 11 Januar 2013, 22:01:11
als Merker:
folgendes sendet der FK wenn das Fenster geöffnet wird
2013.01.11 21:55:32 5: CUL: Z0BBE063005E5791234560012 -68
2013.01.11 21:55:32 5: CUL dispatch Z0BBE063005E5791234560012
2013.01.11 21:55:32 5: CUL_MAX_Parse: len 11, msgcnt BE, msgflag 06, msgTypeRaw ShutterContactState, src 05e579, dst 123456, groupid 0, payload 12
2013.01.11 21:55:32 5: CULMAX0 dispatch MAX,1,ShutterContactState,05e579,12
2013.01.11 21:55:32 5: MAX_Parse MAX,1,ShutterContactState,05e579,12
2013.01.11 21:55:32 5: ShutterContact isopen 1, rferror 0, battery 0, unkbits 0
Titel: Aw: MAX! WindowOpen ohne MAX-Fensterkontakt setzen?
Beitrag von: Matthias Gehre am 13 Januar 2013, 14:30:51
Hab das jetzt in FHEM implementiert. Kommt morgen mit dem Update.
Anleitung gibts unter:
http://www.fhemwiki.de/wiki/MAX#Externer_Sensor_f.C3.BCr_Fenster-offen-Erkennung (//www.fhemwiki.de/wiki/MAX#Externer_Sensor_f.C3.BCr_Fenster-offen-Erkennung)
Titel: Aw: MAX! WindowOpen ohne MAX-Fensterkontakt setzen?
Beitrag von: Tobias am 13 Januar 2013, 15:35:02
ich würde jetzt sagen: WOW... du bist der Wahnsinn :) (im postiven sinne) :)