TC mit Schaltaktor peeren zwecks Fussbodenheizungssteuerung

Begonnen von Rechi, 24 August 2013, 15:47:44

Vorheriges Thema - Nächstes Thema

bacanol

HI Martin,

Danke für den Hinweis.

Ich denke ich habe das mit Peering und Pairing schon kapiert, allerdings klappt es nicht. Ich habe den Wiki-Artikel schon 10 mal rauf und runter gelesen und probiert. Selbst ein Zurücksetzen des HM-CC-TC bring keine Abhilfe. Wie wäre ein pragmatisches Vorgehen in diesem Fall? Gibt es eine Möglichkeit das Loglevel zu erhöhen oder Ähnliches?

Hier die aktuelle Ausgabe des Adapters im FHEM:

Internals
DEF
FAKENUMBER
EVENTS

292
HMLAN1_MSGCNT

292
HMLAN1_RAWMSG

E206247,0000,033A2E40,FF,FFB3,698670FAKENUMBER00000000DE34
HMLAN1_RSSI

-77
HMLAN1_TIME

2013-09-19 11:12:08
IODev

HMLAN1
LASTInputDev

HMLAN1
MSGCNT

292
NAME

CUL_HM_HM_CC_TC_FAKENUMBER
NR

38
STATE

T: 22.2 H: 52
TYPE

CUL_HM
channel_01

CUL_HM_HM_CC_TC_FAKENUMBER_Weather
channel_02

CUL_HM_HM_CC_TC_FAKENUMBER_Climate
channel_03

CUL_HM_HM_CC_TC_FAKENUMBER_WindowRec
hmPairSerial

FAKENUMBER
lastMsg

No:69 - t:70 s:206247 d:000000 00DE34
protCmdDel

34
protLastRcv

2013-09-19 11:12:08
protResnd

18 last_at:2013-09-19 10:57:33
protResndFail

6 last_at:2013-09-19 10:57:36
protSnd

6 last_at:2013-09-19 10:57:21
protState

CMDs_done_events:16
rssi_at_HMLAN1

avg:-77.3 min:-79 max:-76 lst:-77 cnt:292
Readings
Activity

alive

2013-09-18 23:04:28
R-intKeyVisib

set_invisib

2013-09-18 22:24:27
R-pairCentral

set_0x70

2013-09-18 22:24:27
humidity

52

2013-09-19 11:12:08
measured-temp

22.2

2013-09-19 11:12:08
state

T: 22.2 H: 52

2013-09-19 11:12:08
 CUL_HM_HM_CC_TC_FAKENUMBER
Attributes
actCycle

000:10

deleteattr
actStatus

alive

deleteattr
expert

2_full

deleteattr
firmware

2.1

deleteattr
loglevel

6

deleteattr
model

HM-CC-TC

deleteattr
peerIDs


deleteattr
rawToReadable

1

deleteattr
room

CUL_HM

deleteattr
serialNr

FAKENUMBER

deleteattr
subType

thermostat

deleteattr
userReadings

1

deleteattr


*FAKENUMBER ist zum Schutz der echten IDs eingetragen.

Tut mir leid, dass ich noch so unerfahren bin in diesem Kontext.

Viele Grüße

Nico

martinp876

manchmal gibt es beim pairen ein Problem...
welche Variante hast du probiert?

Du kannst einmal lggen mit
attr global verbose 1
attr <hmlan> loglevel 1
attr global mseclog 1

die logs stehen dann im zentralen logfile

Gruss Martin

bacanol

Hallo Martin,

ich habe die Variante mit hmPairForSec 600 und dann drücken von OK Taste am HM-CC-TC getestet. HM-CC-TC zählt von 20 herunter bis dann NOK kommt. Habe auch die Variante hmPairSerial probiert mit gleichem Erfolg.

Ausserdem macht mich folgender Logfile-Eintrag, der etwa alle Minute auftaucht etwas stutzig.

Auszug aus dem Logfile
2013.09.19 14:13:17.803 1: HMLAN_Send:  HMLAN1 I:K
2013.09.19 14:13:17.810 1: HMLAN_Parse: HMLAN1 V:03C1 sNo:>HMLANSN< d:1E9CF2 O:000041 t:03E00FDB IDcnt:0001
2013.09.19 14:13:17.811 1: HMLAN setting owner to >HMLANSN< from 000041
2013.09.19 14:13:17.812 1: HMLAN_Send:  HMLAN1 I:A>HMLANSN<


*>HMLANSN< die Seriennummer meines HMLAN Adapters.

Viele Grüße

Nico


martinp876

hi,  
guter hinweis.
das scheint nicht die seq-nummer zu sein. am hmlan ist ein lable, der hat sicher einen anderen Wert...

Somit scheint dein hmlan ein grundsätzlichen Problem zu haben, auch wenn wir die nummer nicht wirklich brauchen.
Du kannst einmal die boot-sequenz aufzeichnen(einfach strom ziehen /stecken)
dann kann ich es mit meinem vergleichen... aber ob da etwas zu machen ist...

schicke dann auch ein list des hmlan

Gruss Martin

bacanol

Hallo Martin,

hier die Boot-Sequenz aus Sicht des FHEM:

2013.09.23 18:16:51.237 1: 172.16.0.21:1000 reappeared (HMLAN1)
2013.09.23 18:16:51.239 1: HMLAN_Send:  HMLAN1 I:A<HMLANSN>
2013.09.23 18:16:51.242 1: HMLAN_Send:  HMLAN1 I:C
2013.09.23 18:16:51.246 1: HMLAN_Send:  HMLAN1 I:Y01,01,
2013.09.23 18:16:51.248 1: HMLAN_Send:  HMLAN1 I:Y02,00,
2013.09.23 18:16:51.250 1: HMLAN_Send:  HMLAN1 I:Y03,00,
2013.09.23 18:16:51.253 1: HMLAN_Send:  HMLAN1 I:Y03,00,
2013.09.23 18:16:51.255 1: HMLAN_Send:  HMLAN1 I:T19D325F3,04,00,00000000
2013.09.23 18:16:51.258 1: HMLAN_Parse: HMLAN1 new condition init
2013.09.23 18:16:51.285 1: HMLAN_Parse: HMLAN1 V:03C1 sNo:<HMLANSN> d:1E9CF2 O:000041 t:000024F6 IDcnt:0000
2013.09.23 18:16:51.286 1: HMLAN setting owner to <HMLANSN> from 000041
2013.09.23 18:16:51.287 1: HMLAN_Send:  HMLAN1 I:A<HMLANSN>


Kannst Du daran irgendetwas Ungewöhnliches sehen?

Vielen Dank schonmal!!

Nico

martinp876

HMLANSN ist die seriennummer?
sollte es nicht HMLANID sein? hast du dich verschrieben?

wenn es kein schreibfehlerist, dann prüfe das Attribut hmId des hmlan.
nur in
HMLAN1 V:03C1 sNo:<HMLANSN> d:1E9CF2 O:000041 t:000024F6 IDcnt:0000

steht die serirnnummer

bacanol

Hallo Martin!

Danke! Du hast super geholfen!!! Das wars... :-)

Vielen vielen Dank und bis bald!

Nico

Damian

Zitat von: bacanol schrieb am Mo, 16 September 2013 21:58Hallo!

Ich bin noch relativ neu in diesem Forum und habe dieselbe Idee, wie Thomas. Hast Du eventuell schon weitere Erkenntnisse, wie man mittels HM_CC_TC und HM-LC-SW4 und FHEM eine Fußbodenheizungssteuerung mit Steuerventilen zum Laufen bekommt? Kann man irgendwie aus dem TC die eingestellte SOLL-Temperatur auslesen, so dass die Zeitsteuerung sowie das manuelle Nachjustieren am Temperaturfühler möglich ist?

Ich bin über jeden Hinweis dankbar!!

Viele Grüße

Nico

Ich habe u. a. für die Steuerung einer Fußbodenheizung mit 230 V Stellventilen das THRESHOLD-Modul programmiert.

Die letzte Version unterstützt auch die Übernahme der Ist- und Soll-Temperatur von Wandthermostaten, wie z. B. vom TC.

Wenn dein HM-CC-TC WT heißt und dein 230V-Aktor(HM-LC-SW4) Heizung, dann reicht bereits eine Definition für die Steuerung des Stellventils mit:

define TH_Heizung THRESHOLD WT:measured-temp:1:WT:desired-temp Heizung

Zu dem Thema gibt´s seit längerer Zeit ein Thread:

Link

Details mit Beispielen zum THRESHOLD-Modul kann man natürlich in der Commandref des Moduls nachlesen.


Gruß

Damian


 



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: Rechi schrieb am Di, 17 September 2013 17:03Hallo Nico.

Vorab zur Info: ich wohne in einem Mehrfamilienhaus. Die Heizung ist Gasheizung mit Brennwertkessel, d.h. meine Fussbodenheizung wird nur über Raumthermostat und Stellmotor am Ventil betrieben.

Ich habe die Steuerung jetzt soweit in Betrieb und sie funktioniert auch ganz gut. mit folgendem AT:
+*00:10:00 { if (ReadingsVal ("wz_Temp_Weather","measured-temp",99) < (ReadingsVal("wz_Temp_Climate","desired-temp",99)-0.5)) { fhem("set Heizkreis_01 on") }
if (ReadingsVal ("wz_Temp_Weather","measured-temp",99) > (ReadingsVal("wz_Temp_Climate","desired-temp",99))) { fhem("set Heizkreis_01 off") } }

Hier ist eine Hysterese von 0.5° eingestellt, die funktioniert bei mir ganz gut.
Ich bastele jetzt noch an der Wochenschaltung (zur Tagesabsenkung) herum. Wenn ich da weiter komme melde ich mich.

Viel Spass.

Thomas

Hallo Thomas,

deine Steuerung hat jedoch den Nachteil, dass du alle zehn Minuten einen Befehl absendest, ob es nötig ist oder nicht. Das erzeugt zusätzlichen Traffic und erhöht die Wahrscheinlichkeit von Kollisionen.

Mit:

define TH_Heizung THRESHOLD wz_Temp_Weather:measured-temp:0.5:wz_Temp_Climate:desired-temp Heizkreis_01


wird nur dann geschaltet, wenn´s erforderlich ist. Hysterese ist auf 0.5 Grad eingestellt.


Und zu deiner Tagesabsenkung sollte folgendes zusätzlich ausreichen:

define HC_Heizung Heating_Control TH_Heizung 06:00|0 22:00|-2 set @ offset %

Bedeutung: von 22:00 bis 6:00 Uhr erfolgt eine Absenkung, der im Wandthermostat abgelegten Solltemperatur, um zwei Grad.

Das kann man auch abhängig von Wochentagen definieren.

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Rechi

Damian,

Nach einigem rumlesen in den Foren (und vollen Logfiles :-) habe ich die Lösung seit gestern im Laufen. Trotzdem Riesendank für den Tip. Bei mir ist aber die desired-Temp im Climate Kanal.

define mz_Heizung THRESHOLD mz_Temp_Weather:measured-temp:1.0:mz_Temp_Climate:desired-temp mz_Heizkreis01
define wz_Heizung1 THRESHOLD wz_Temp_Weather:measured-temp:1.0:wz_Temp_Climate:desired-temp wz_Heizkreis01
define wz_Heizung2 THRESHOLD wz_Temp_Weather:measured-temp:1.0:wz_Temp_Climate:desired-temp wz_Heizkreis02
define sz_Heizung THRESHOLD sz_Temp_Weather:measured-temp:1.0:sz_Temp_Climate:desired-temp sz_Heizkreis01
define mb_Heizung THRESHOLD mb_Temp_Weather:measured-temp:1.0:mb_Temp_Climate:desired-temp mb_Heizkreis01
define gb_Heizung THRESHOLD gb_Temp_Weather:measured-temp:1.0:gb_Temp_Climate:desired-temp gb_Heizkreis01

Deinen zweiten Tip habe ich noch nicht richtig verarbeitet. Ich habe eine Wochenschaltung mir mit if Anweisungen gebastelt (aber noch nicht getestet!).
Hier der Auszug.
define hz_an_0530 at *05:30:00 {;;\ #jeden Tag um 05:30
 if(!$we) { #Heizung Wochentags einachalten;
   fhem("trigger set_hz_auf_waermer");;\
   fhem("define temp_heiz_aus_0930 +02:00:00 trigger set_hz_auf_19");;\ #für 2 Stunden laufen lassen, dann wieder aus
   
   }
}


define hz_an_0600 at *06:00:00 {;;\ #jeden Tag um 06:00
if($we) { #Nur am Wochende - Heizung bleibt den ganzen Tag an; Holidays später einfügen!
   fhem("trigger set_hz_auf_wohlfuehl");;\
   }
}

define hz_an_1230 at *12:30:00 {;;\ #jeden Tag um 12:30
if($wday == 1) { #Nur Montags wenn Ronja kommt - Heizung bleibt den Rest des Tages an; Holidays später einfügen!
   fhem("trigger set_hz_auf_wohlfuehl");;\
   }
define hz_an_1400 at *14:00:00 {;;\ #jeden Tag um 14:00
if(!$we) { #Nur Wochentags - Heizung bleibt den Rest des Tages an; Holidays später einfügen!
   fhem("trigger set_hz_auf_wohlfuehl");;\
   }
}

define hz_aus_2200 at *22:00:00 {;;\ #jeden Tag um 22:00
 if($wday!=5 && $wday!=6) { # Heizung Sonntags-Donnerstags ausschalten; Holidays später einfügen!
   fhem("trigger set_hz_auf_19");;\
   }
}

define hz_aus_2300 at *23:00:00 {;;\ #jeden Tag um 23:00
 if($wday==5 OR $wday==6) { # Heizung Freitags und Samstags ausschalten; Holidays später einfügen!
   fhem("trigger set_hz_auf_19");;\
   }
}

define set_hz_auf_19 notify set_hz_auf_19 { #Heizung auf 19° fahren
   fhem("set mz_Temp.Climate desired-temp 19");;\
   fhem("set sz_Temp.Climate desired-temp 19");;\
   fhem("set wz_Temp.Climate desired-temp 19");;\
   fhem("set mb_Temp.Climate desired-temp 19");;\
   fhem("set gb_Temp.Climate desired-temp 19");;\
}
define set_hz_auf_wohlfuehl notify set_hz_auf_wohlfuehl { #Wohlfühl Temperatur;

   fhem("set mz_Temp.Climate desired-temp 22");;\
   fhem("set sz_Temp.Climate desired-temp 21");;\
   fhem("set wz_Temp.Climate desired-temp 22.5");;\ #etwas niedriger als morgens
   fhem("set mb_Temp.Climate desired-temp 22.5");;\ #etwas niedriger als morgens
   fhem("set gb_Temp.Climate desired-temp 22");;\
   }

Dein Beispiel mit Heating_Control scheint mir aber deutlich einfacher. Wie baue ich hier denn die Wochentagsschaltung ein? Über Parameter oder über die if-Schleifen?

Sorry für die komische Fragen. Ich bin kompletter Anfänger!

Danke für eure Hilfe!

Thomas

Damian

Hallo Thomas,

du setzt mit

 set mz_Temp.Climate desired-temp 19

offenbar die Solltemperatur direkt im Thermostat, was sicherlich ok ist. Mein Vorschlag ging davon aus, dass die Solltemperatur im Thermostat gleich ist und man über das Setzen von Offset des jeweiligen THRESHOLD-Moduls diese verschiebt. Bleiben wir aber bei deiner Lösung.

Nun zu deiner Zeitsteuerung am Beispiel von mz_Temp

define HC_mz Heating_Control mz_Temp.Climate 12345|05:30|22 67|06:00|22 12345|22:00|19 67|23:00|19 set @ desired-temp %

Bedeutung: An Wochentagen wird die Solltemperatur um 5:30 Uhr auf 22 gesetzt (am Wochenende um 6:00 Uhr) und um 22:00 Uhr wieder auf 19 Grad runter gesetzt (am Wochenende um 23:00 Uhr).


Für die anderen Räume definierst du dir dann jeweils ein HC_...-Modul für jeden Raum passend.

Damit bleibt die Sache modular und übersichtlich - und man versteht auch Jahre später was man gemacht hat;)

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Rechi

Damian.

Klasse und vielen Dank. Noch zwei letzte Kniffe:
Ich habe noch einen Schalter mit dem ich definiere dass ich ausserplanmäsig zu Hause bin. Wie kann ich die condizion einbinden?
Die commandref lese ich so:

define HC_mz Heating_Control mz_Temp.Climate 12345|05:30|22 67|06:00|22 12345|22:00|19 56|23:00|19 (schalter01.) set @ desired-temp %

Kann ich ebenso die Bayern holidays in das Profil einbinden?

VG

Thomas

Damian

Zitat von: Rechi schrieb am Mi, 25 September 2013 18:23Damian.

Klasse und vielen Dank. Noch zwei letzte Kniffe:
Ich habe noch einen Schalter mit dem ich definiere dass ich ausserplanmäsig zu Hause bin. Wie kann ich die condizion einbinden?
Die commandref lese ich so:

define HC_mz Heating_Control mz_Temp.Climate 12345|05:30|22 67|06:00|22 12345|22:00|19 56|23:00|19 (schalter01.) set @ desired-temp %

Kann ich ebenso die Bayern holidays in das Profil einbinden?

VG

Thomas


Zusätzliche Konditionen könntest du z. B. wie folgt einbauen:

define HC_mz Heating_Control mz_Temp.Climate 12345|05:30|22 67|06:00|22 12345|22:00|19 56|23:00|19 {if (flag_gesetzt) fhem("set @ desired-temp %")}

Du kannst ebenso zusätzliche Konditionen im THRESHOLD-Modul angeben:

define mz_Heizung THRESHOLD mz_Temp_Weather:measured-temp:1.0:mz_Temp_Climate:desired-temp AND dummy_sonstwas:state:on mz_Heizkreis01
Gruß

Damian


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Rechi

Danke Damian.

Vielen Dank! Bin den Rest der unterwegs. Werde es am we probieren.

Klass Sache dieses Forum mit den Experten!!!

VG

Thomas

Rechi

Hallo Damian.

folgender Befehl
define wz_Heizung1 THRESHOLD wz_Temp_Weather:measured-temp:1.0:wz_Temp_Climate:desired-temp AND vactor_Btn5:state:off wz_Heizkreis_01

liefert die Fehlermeldung:
wz_Heizung1: value:wz_Temp_Climate:desired-temp, init_desired_value needs a numeric parameter

Das Thermostat ist sauber gepaired und gepeert.

Was mache ich hier falsch?

VG

Thomas