Mehrere Fake Fensterkontakte

Begonnen von Dennis B., 27 Mai 2013, 22:48:23

Vorheriges Thema - Nächstes Thema

Dennis B.

Hallo zusammen,

ich habe drei verschiedene Räume, die alle mit MAX!-Heizkörperthermostaten ausgerüstet sind. Habe mal testweise die Thermostate von zwei Räumen mit dem Fakethermostat gekoppelt und (obwohl man beim setzen des Fakethermostat das Zielthermostat angeben muss) schalten die Thermostate in beiden Räumen, wenn ich den Wert des Fakethermostats setze. Ist es irgendwie möglich mehrere Fakethermostate einzurichten?

Gruß
Dennis

Tobias

Du brauchst nur 1 FakeThermostat!

Den gleichen "Fehler" wie du hatte ich auch. Setz mal bitte pro Raum eine eindeutige groupid pro Heizthermostat;)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Dennis B.

Hey Tobias,

erst einmal danke für deine Antwort. Direkt nach deinem Post hatte ich es probiert und war gescheitert. Da ich nicht ausschließen konnte, dass ich einfach nur etwas falsch gemacht hatte, lag das Thema erst einmal auf Eis. Heute habe ich mich der Sache dann noch einmal gewidmet.
Mein erster Post war leider sehr irreführend... Ich will mehrere FakeShutterContacts und nicht FakeWallThermostats benutzen. Habe mal in 14_CUL_MAX.pm geschaut und bei FakeSC werden leider die groupids nicht mitgeschickt. Habe mal ein wenig rumexperimentiert und einfach die groupId mit in den Befehl einzufügen, wie es bei FakeWT der Fall ist, führte leider nicht zum Erfolg. Hatte auch Flag 04 statt 06 ausprobiert. Gibt es für die FakeSC eine möglichkeit verschiedene Gruppen anzusprechen?

Gruß
Dennis

Dennis B.

Also irgendetwas scheint da gestern beim Testen schiefgegangen zu sein. GroupId in den Befehl einbauen und Flag 04 funktioniert.

Habe jetzt Zeile 189 in der 14_CUL_MAX.pm durch folgenden Code ersetzt:

my $groupid = ReadingsVal($hash,"groupid",0);
return CUL_MAX_Send($hash, "ShutterContactState",$dest,$state, groupId => sprintf("%02x",1), flags => ( $groupid ? "04" : "06" ), src => CUL_MAX_fakeSCaddr($hash));


Jetzt reagieren alle Geräte der Gruppe auf den FakeFensterkontakt. Flag 04 ist bei gesetzter GroupId nötig, da sonst nur das im Befehl angegebene Gerät reagiert. Beispielsweise würde bei "set cm fakeSC heizungA 1" mit gesetzter GroupId und Flag 06 nur heizungA "Fenster offen" anzeigen. Mit Flag 04 reagiert die gesamte Gruppe von heizungA.
Vielleicht kann das ja wer ins SVN übernehmen.

Interessant ist übrigens, dass wenn ich über eine Heizung A das fakeSC öffne ("set cm fakeSC heizungA 1") und das fakeSC über Heizung B schließe ("set cm fakeSC heizungB 0"), dann wird die vorherige Temperatur nicht wiederhergestellt. Ist aber kein Problem. Sollte man nur drauf achten, dass man dieselbe Heizung nimmt, die man auch zum öffnen genommen hat.

Matthias Gehre


snx

Hallo zusammen,

ich stehe vor dem selben Problem, alle Heizungen bzw. Wandthermostate reagieren auf den FakeFensterkontakt.
Ich habe bereits groupids vergeben, nur leider weiß ich nicht ob ich das ganze überhaupt richtig angehe bzw. verstanden habe.

Hier meine Konstellation (HT - HeizkörperThermostat, WMT - Wandthermostat, SC - Fensterkontakt):
  • Wohnzimmer
    • HT_Living  groupid 1
    • HT_Living2  groupid 1
    • WMT_Living  groupid 1
    • SC_Living  groupid 1
  • Bad
    • HT_Bath  groupid 2
    • SC_Bath  groupid 2

Setze ich nun einen WindowOpen-Befehl a la
set cm fakeSC WMT_Living 1
an ein Gerät ab, gehen alle (aus beiden Räumen) in den WindowOpen-Modus.

Hintergrund:
Ich habe keinen Cube und mit dem CUL+fhem bekomme ich den echten Fensterkontakt nicht mit den zugehörigen Geräten verknüpft.
Das Thema wurde ja hier bereits angesprochen (http://forum.fhem.de/index.php?t=msg&goto=54577&rid=0).
Aus diesem Grund versuche ich per notify den WindowOpen des echten Fensterkontaktes an die Geräte durchzuschieben.
Dafür benötige ich ja anscheinend den FakeFensterkontakt.

Am liebsten wäre mir natürlich das direkte verknüpfen der Geräte mit den echten Fensterkontakten...

Ich hoffe ihr habt eine Idee

Tobias

Hi,
ich hatte keine Probleme einen Fensterkontakt mit einem Thermostat direkt zu verknüpfen. Ich habe auch einen CUL.

folgende Schritte:
-SC an fhem anlernen
-HT an fhem anlernen
- per fhem ein: set HZ associate SC
jetzt musst du schnell sein:
1. am SC die Anlerntaste drücken
2. sobald es aufblinkt sofort ein "set SC associate WZ" absetzen

So hat es bei mir in 3 Räumen funktioniert
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

snx

Vielen Dank Tobias,

es hat doch tatsächlich auf Anhieb funktioniert.
Hab zwar mit dem associate viel rumgespielt, aber ohne die Anlerntaste am SC.
Entweder habe ich das im Wiki komplett übersehen, oder es sollte dort aufgenommen werden ;)

Aber bezüglich dieses Themas noch eine Frage.
Meine HT_Living und HT_Living2 sind schon mit dem WMT_Living verknüpft (in beide Richtungen).
Genügt es, wenn ich den SC_Living jetzt mit dem WMT_Living verknüpfe, oder muss ich das auch mit den beiden HTs tun?

Tobias

Da ich kein WandThermostat habe ist es nur eine Vermutung. Ich gehe davon aus das das SC auf jeden Fall mit dem HT associiert werden muss. Und es kann mit dem WT assoziiert werden.
Warum mit dem SC? Wenn das SC offen meldet ist es aufgrund der Funklimitation unglücklich einen Funkbefehl zum WT und anschließend vom WT zum HT abzusetzen. Hier sollte das HT direkt auf die Messages vom SC reagieren.
Ich denke aber mal das das Associate zum WT auch wichtig ist, da das WT den FensterOffenstatus wissen muss wenn es die aktuellen Temperaturen zum HT schickt.
Beim FensterOffenStatus darf nicht die aktuelle desiredTemp gesendet werden da sonst die FensterOffenTemp überschrieben wird.
Zumindest ist es so wenn ich meine FakeWallThermostat Messages absetze. Da muss ich die SC-Stati berücksichtigen
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

Es ist noch ein Fehler in der Ermittlung der GroupID in den FakeSC und FakeWT drin.
Folgender Fix begebt es.
Matthias, kannst du den Patch einchecken?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Matthias Gehre

Hab deinen Patch angepasst (funkionierte nicht, wenn fakeSC direkt mit Adresse aufgerufen wird) und eingecheckt. Danke!

Tobias

Danke.
An die direkte Adresseingabe hatte ich erst gedacht als der Patch fertig war. Mir war aber auf die schnelle nichts zur Lösung eingefallen ;)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Marcel_R

#12
Zitat von: Tobias am 23 Juli 2013, 19:50:32
ich hatte keine Probleme einen Fensterkontakt mit einem Thermostat direkt zu verknüpfen. Ich habe auch einen CUL.

So hat es bei mir in 3 Räumen funktioniert

Bei mir klappt Dein "Rezept" nicht --> gehe ich richtig, dass Deine SC von Max sind?

Die Meldung nach "set HeizkörperThermostat associate Fensterkontakt" lautet bei mir 'Destination is not a MAX device' (mein SC ist von HomeMatic).

Vielen Dank für Deine Präzisierung!

Marcel
FHEM / Fritz!Box 7490 / CULv3 / Raspi / COC / MAX! / HomeMatic /