Homematic mit Nicht Homematic verbinden.

Begonnen von blackdevil2k1, 03 Februar 2014, 00:07:52

Vorheriges Thema - Nächstes Thema

blackdevil2k1

Hallo,

ich selbst habe noch keine Homematic Geräte jedoch wollte ich mir zum Testen und spielen mal ein paar Heizungsthermostate(HM-CC-RT-DN) und den HM Lan Adapter bestellen.
Die Thermostate haben ja einen eingebauten Tempsensor mithilfen diesens steuert ja auch das Ventil. Bei meiner überlegung würde ich aber zu steuerung gerne ein Temperaturfühler verwenden welcher wo anders im Raum ist und nicht mit dem Thermostat gepeert ist. (Funksensoren über LaCrosse).

Jetzt habe ich bevor ich das alles Bestelle eine grundsatz Frage: Kann ich dem Homematic Thermostat (HM-CC-RT-DN) sagen (mit fhem) es soll sich bei seiner Regulierung nicht an das eigene sondern an mein Lacrosse Sensor halten? Und wenn ja wie würde man das im groben machen?

ich habe nun diesen beitrag gefunden http://forum.fhem.de/index.php/topic,17485.45.html
jedoch wird da nur berichtet dass es irgendwie gelungen ist, aber wie ist mir nicht ganz klar geworden. villeicht kann dazu mal jemand was sagen

Würde mich über eine Antwort freuen,

MfG

jab

Abend,

ja das funktioniert. Ist aktuell noch ein recht neues Feature und kann noch Bugs enthalten. Geht aber bereits. Grob geht es so:

define virtual_temp CUL_HM 123456 (die hm id muss eindeutig sein)
set virtual_temp virtual 1
rename virtual_temp_Btn1 virtual_temp_Sensor1 (damits sinniger klingt)
set virtual_temp_Sensor1 peerChan 0 dein_rt single

Nun hast du einen virtuellen Temperatursensor. Den musst du jetzt nur noch mit der aktuellen Temperatur deines echten Sensors füttern:

set virtual_temp_Sensor1 virtTemp 22

Das kannst du dann z.B. mit einem notify machen.


Gruß,
Jan

betateilchen

Das Feature an sich ist nicht neu. Die Verwendung von Homematic Sensoren mit dem RT geht schon immer out-of-the-box.

Neu ist nur die Möglichkeit, auch systemfremde Sensoren zusammen mit dem Regler zu betreiben. Wobei ich kein Freund von virtuellen Homematic-Aktoren bin.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

jab

Also generell ist das Feature nach dem er gefragt hat recht neu und wenig erprobt. Allerdings sollte man das prinzipiell stabil bekommen können. Wenn es Probleme gibt haben wir mehrere User die das nachstellen können und generell ist das Vorgehen ganz gut verstanden würde ich behaupten.

Natürlich sind HM Sensoren besser aber auch recht teuer. Ich werde für einige Räume auch virtTemp/virtHumidity verwenden, weil da eh ein AP mit Temperatursensor rumhängt.


Gruß,
Jan

blackdevil2k1

ok vielen dank schonmal, dann werde ich zum testen mal so ein heizungstermostat bestellen, und mich ggf dann nochmal melden.

Bene

Hallo,

sehe ich das richtig, dass:

Zitatdefine virtual_temp CUL_HM 123456 (die hm id muss eindeutig sein)
die eindeutige HM id diejenige ist Fhem beim Pairen mit in den Namen rein nimmt? Bei mir z. B. der String 235C60 aus dem Namen CUL_HM_HM_CC_RT_DN_235C60?

Zitatrename virtual_temp_Btn1 virtual_temp_Sensor1
müsste es nicht heißen rename virtual_temp virtual_temp_Sensor1??


Zitatset virtual_temp_Sensor1 peerChan 0 dein_rt single
dein_rt ist dann z. B. bei mir CUL_HM_HM_CC_RT_DN_235C60??


Diese Fragen sind mir noch unklar und ich konnte mir vorstellen, dass andere sich das auch fragen...

Danke für eure Mühe!!

Bene[/size]

jab

Moin Bene,

Zitat von: Bene am 06 Februar 2014, 10:42:54
die eindeutige HM id diejenige ist Fhem beim Pairen mit in den Namen rein nimmt? Bei mir z. B. der String 235C60 aus dem Namen CUL_HM_HM_CC_RT_DN_235C60?
Nein das ist die ID des virtuellen Sensors. Die darf auf keinen Fall gleich der des RTs sein. Sie muss unbenutzt sein.

Zitat von: Bene am 06 Februar 2014, 10:42:54
müsste es nicht heißen rename virtual_temp virtual_temp_Sensor1??
Nein. Das ist schon richtig so. Ich habe das alles ausprobiert. Die folgende Zeile legt virtual_temp_Btn1 an:

set virtual_temp virtual 1

Man kann auch virtual 7 machen. Dann hat man Btn1 bis Btn7 und kann sich sieben Sensoren bauen. Das Naming mit Btn ist etwas unglücklich für Sensoren, aber da wir bisher nur virtuelle Aktoren (aka Buttons) hatten war das ok. Vielleicht kann man das jetzt noch mal überdenken.

Zitat von: Bene am 06 Februar 2014, 10:42:54
dein_rt ist dann z. B. bei mir CUL_HM_HM_CC_RT_DN_235C60??
Ja.


Gruß,
Jan

Bene

Danke, jab, für deine ausführliche Antwort! Sie bringt mich in meinem Verständnis ein gutes Stück weiter.
Eines aber noch:
Zitat
Nein das ist die ID des virtuellen Sensors. Die darf auf keinen Fall gleich der des RTs sein. Sie muss unbenutzt sein.

Der virtuelle Sensor ist also der 1-wire-sensor? Oder ist das wirklich ein  "ausgedachter" Sensor, dessen ID ich selber ausdenken kann?
Mir geht es ja um die Abbildung des Temperaturwertes eines 1-Wire-Sensors auf den RT...
Irgendwie muss ich dann auch den richtigen Sensor dem passenden RT zuweisen.... An welcher Stelle passiert das?

Ich blicke es noch nicht...

Danke!!

jab

Moin Bene,

Die ID ist ausgedacht. Das Gerät gibt es ja eigentlich nicht als HM Gerät. Die Verbindung bzw das peering zwischen den Geräten macht der Befehl peerChan. Da gibst du den virtuellen Sensor und den echten RT an.


Gruß
Jan

Samsi

Ich habe da auch noch ne Frage.

Würde das auch mit einem Virtual Device gehen, das die Desired-Temp und Boost-Funktionen auslösen kann, also praktisch ein HM-TC-IT-WM-W-EU emuliert?

Wenn ich heimkomme setze ich nämlich alle Thermostate auf die Boost Funktion momentan sende ich dazu einen Funkbefehl an jedes Thermostat, das dauert natürlich seine Zeit und verursacht natürlich auch entsprechend Funkverkehr weil ich das mit burstRX mach (ich will ja nicht noch 3 minuten warten bis jedes Thermostat den Befehl empfangen hat).

Ist das möglich?

FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

martinp876

mir ist nicht klar, wie der TC-IT arbeitet. Sendet der einen broadcast?
Der RT hat einen Eingang für Fernbedienung - die kannst du auch nutzen. Aber das geht auch an jedes Device separat. Generell ist dies sowieso notwendig, will man ein ack bekommen.

Samsi

Hallo Martin,

Zitatmir ist nicht klar, wie der TC-IT arbeitet. Sendet der einen broadcast?
Ja genau das würde ich gerne wissen. Ob das irgendwie möglich ist.

ZitatDer RT hat einen Eingang für Fernbedienung - die kannst du auch nutzen. Aber das geht auch an jedes Device separat. Generell ist dies sowieso notwendig, will man ein ack bekommen.
Das mit dem ACK macht Sinn, aber darauf könnte ich ja auch mal verzichten. Wie ist das denn, wenn ein RT mit 3 anderen gepeert ist und ich an einem die desired-temp ändere. Wird das dann auch an jeden Seperat gesendet? Müsste ja dann im eventmonitor zu sehen sein oder?
Muss ich mir heute Abend mal anschauen.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

martinp876

Hi Samsi,

ZitatWie ist das denn, wenn ein RT mit 3 anderen gepeert ist.... Wird das dann auch an jeden Seperat gesendet
der sendet garnicht.
Die Philosophie scheint zu sein, dass nur Änderungen gesendet werden, die nicht von extern kommen. Alles was von extern kommt kann der User sowieso automatisieren.
Also keine Message bei Fenster offen von sc oder temp von der Zentrale.
Demnach eigentlich nur bei Änderung am Handrad (und interner Fenster offen Erkennung???)

Und wenn gesendet wird, dann nach HM schema - an jeden einzeln, mit ack

Möglich - aber nicht getestet  - wäre folgendes:
der RT wird an eine remote gepeert, die remote aber nicht an den RT. Die Remote sendet an die Zentrale oder broadcast (muss burst sein). Könnte sein, dass der RT darauf reagiert. Kannst du einmal testen - vielleicht probiere ich es auch einmal...
Gruss Martin

DosiRocker

Zitat von: jab am 03 Februar 2014, 01:52:01
Abend,

ja das funktioniert. Ist aktuell noch ein recht neues Feature und kann noch Bugs enthalten. Geht aber bereits. Grob geht es so:

define virtual_temp CUL_HM 123456 (die hm id muss eindeutig sein)
set virtual_temp virtual 1
rename virtual_temp_Btn1 virtual_temp_Sensor1 (damits sinniger klingt)
set virtual_temp_Sensor1 peerChan 0 dein_rt single

Nun hast du einen virtuellen Temperatursensor. Den musst du jetzt nur noch mit der aktuellen Temperatur deines echten Sensors füttern:

set virtual_temp_Sensor1 virtTemp 22

Das kannst du dann z.B. mit einem notify machen.


Gruß,
Jan

Hallo Jan,
ich bekomme es nicht hin. Ich habe versucht über ein notify die Temperatur meines S300Th auf meinen  virtuellen HM Sensor zu kopieren. Da ich von Perl leider keine Ahnung habe, mußte ich mir dies erst relativ aufwendig zusammensuchen und mit try and error austesten.
So sieht es jetzt in meiner FHEM.cfg aus:
define EG.WZ.VIRT.TEMP CUL_HM 123456
attr EG.WZ.VIRT.TEMP model virtual_1
attr EG.WZ.VIRT.TEMP peerIDs
attr EG.WZ.VIRT.TEMP subType virtual
attr EG.WZ.VIRT.TEMP webCmd virtual
define EG.WZ.VIRT.TEMP_Sensor1 CUL_HM 12345601
attr EG.WZ.VIRT.TEMP_Sensor1 model virtual_1
attr EG.WZ.VIRT.TEMP_Sensor1 peerIDs 21BC5301,

define nEG.WZ.VIRT.TEMP notify wz_temp:temperature:.* {fhem 'set EG.WZ.VIRT.TEMP_Sensor1 ' . $EVTPART1}


Und das ist die Fehlermeldung die ich bekomme:
2014.02.09 18:38:52 3: set EG.WZ.VIRT.TEMP_Sensor1 21.6 : Unknown argument 21.6, choose one of peerChan postEvent press virtHum:off,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5,31.0,31.5,32.0,32.5,33.0,33.5,34.0,34.5,35.0,35.5,36.0,36.5,37.0,37.5,38.0,38.5,39.0,39.5,40.0,40.5,41.0,41.5,42.0,42.5,43.0,43.5,44.0,44.5,45.0,45.5,46.0,46.5,47.0,47.5,48.0,48.5,49.0,49.5,50.0,50.5,51.0,51.5,52.0,52.5,53.0,53.5,54.0,54.5,55.0,55.5,56.0,56.5,57.0,57.5,58.0,58.5,59.0,59.5,60.0,60.5,61.0,61.5,62.0,62.5,63.0,63.5,64.0,64.5,65.0,65.5,66.0,66.5,67.0,67.5,68.0,68.5,69.0,69.5,70.0,70.5,71.0,71.5,72.0,72.5,73.0,73.5,74.0,74.5,75.0,75.5,76.0,76.5,77.0,77.5,78.0,78.5,79.0,79.5,80.0,80.5,81.0,81.5,82.0,82.5,83.0,83.5,84.0,84.5,85.0,85.5,86.0,86.5,87.0,87.5,88.0,88.5,89.0,89.5,90.0,90.5,91.0,91.5,92.0,92.5,93.0,93.5,94.0,94.5,95.0,95.5,96.0,96.5,97.0,97.5,98.0,98.5,99.0 virtTemp:off,-20.0,-19.5,-19.0,-18.5,-18.0,-17.5,-17.0,-16.5,-16.0,-15.5,-15.0,-14.5,-14.0,-13.5,-13.0,-12.5,-12.0,-11.5,-11.0,-10.5,-10.0,-9.5,-9.0,-8.5,-8.0,-7.5,-7.0,-6.5,-6.0,-5.5,-5.0,-4.5,-4.0,-3.5,-3.0,-2.5,-2.0,-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5,31.0,31.5,32.0,32.5,33.0,33.5,34.0,34.5,35.0,35.5,36.0,36.5,37.0,37.5,38.0,38.5,39.0,39.5,40.0,40.5,41.0,41.5,42.0,42.5,43.0,43.5,44.0,44.5,45.0,45.5,46.0,46.5,47.0,47.5,48.0,48.5,49.0,49.5,50.0
2014.02.09 18:38:52 3: nEG.WZ.VIRT.TEMP return value: Unknown argument 21.6, choose one of peerChan postEvent press virtHum:off,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5,31.0,31.5,32.0,32.5,33.0,33.5,34.0,34.5,35.0,35.5,36.0,36.5,37.0,37.5,38.0,38.5,39.0,39.5,40.0,40.5,41.0,41.5,42.0,42.5,43.0,43.5,44.0,44.5,45.0,45.5,46.0,46.5,47.0,47.5,48.0,48.5,49.0,49.5,50.0,50.5,51.0,51.5,52.0,52.5,53.0,53.5,54.0,54.5,55.0,55.5,56.0,56.5,57.0,57.5,58.0,58.5,59.0,59.5,60.0,60.5,61.0,61.5,62.0,62.5,63.0,63.5,64.0,64.5,65.0,65.5,66.0,66.5,67.0,67.5,68.0,68.5,69.0,69.5,70.0,70.5,71.0,71.5,72.0,72.5,73.0,73.5,74.0,74.5,75.0,75.5,76.0,76.5,77.0,77.5,78.0,78.5,79.0,79.5,80.0,80.5,81.0,81.5,82.0,82.5,83.0,83.5,84.0,84.5,85.0,85.5,86.0,86.5,87.0,87.5,88.0,88.5,89.0,89.5,90.0,90.5,91.0,91.5,92.0,92.5,93.0,93.5,94.0,94.5,95.0,95.5,96.0,96.5,97.0,97.5,98.0,98.5,99.0 virtTemp:off,-20.0,-19.5,-19.0,-18.5,-18.0,-17.5,-17.0,-16.5,-16.0,-15.5,-15.0,-14.5,-14.0,-13.5,-13.0,-12.5,-12.0,-11.5,-11.0,-10.5,-10.0,-9.5,-9.0,-8.5,-8.0,-7.5,-7.0,-6.5,-6.0,-5.5,-5.0,-4.5,-4.0,-3.5,-3.0,-2.5,-2.0,-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5,31.0,31.5,32.0,32.5,33.0,33.5,34.0,34.5,35.0,35.5,36.0,36.5,37.0,37.5,38.0,38.5,39.0,39.5,40.0,40.5,41.0,41.5,42.0,42.5,43.0,43.5,44.0,44.5,45.0,45.5,46.0,46.5,47.0,47.5,48.0,48.5,49.0,49.5,50.0


Für mich sieht es jetzt so aus, daß nur .0 und .5 bei den Temperaturen erlaubt sind.
Stimmt das und wenn ja wie kann ich das ändern?

Es wäre super, wenn mir jemand helfen könnte,
Danke,
Martin
Cubietruck: CUNO 868;CUL HM
1 Wire: 1 OWAD, 13 OTHERM
10 FS20 ST; 3 HMS100WD; 1 EM1000;  4 S300TH;
4 HM_CC_RT_DN, HM_SEC_SC
AVM 7390 als FHEM2FHEM, Raspberry Pi

jab

Hi Martin,

Das runden ist etwas tricky. Vermutlich ist es am einfachsten die Zahl mal 2 zu nehmen dann zu runden (ohne  Nachkommastellen) und dann wieder durch zwei zu teilen. Also etwa so:

$new = int ($value*2)/2.0;


Gruß
Jan