HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

chrisba
Beiträge: 30
Registriert: 28.05.2008, 15:40

HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von chrisba » 04.08.2016, 22:36

Hallo zusammen

Wie funktioniert eigentlich das auslesen der aktuellen Temperatur von einem Funk-Wandthermostaten?
Ich meine nicht wie ich das als Anwender tue, sondern was macht HPCL intern.

Mein Verständnis war bisher, das der Thermostat zyklisch seine Daten schickt und HPCL diese Werte intern ablegt. Wenn ich jetzt aus einem
Makro diese Werte anfrage, greift HPCL auf die intern gespeicherten Werte zurück und schickt nicht jedesmal einen Funkbefehl an das entsprechende Gerät.
Dieses ist wohl bei dem Funk-Wandthermostaten HM-CC-TC auch so.
Nur bei dem Funk-Heizkörperthermostaten HM-CC-RT-DN ist es anders. Hier wird scheinbar bei jedem Anfragen eines Wertes ein Funkbefehl
zum Gerät geschickt.
Ich hatte die Werte der Thermostaten in einem 60-Sekunden Makro zyklisch angefragt. In dem LogFile der CCU2 konnte man sehen das
ständig Kommunikation mit den HM-CC-RT-DN war. Das hat dazu geführt das nach kurzer Zeit der DutyCycle bei über 90% war.
Jetzt reagiere ich nur auf die zyklischen Meldungen vom Thermostaten und verwalte die Werte in einem eigenen Objekt, schon läuft alles ohne
Kommunikationsprobleme.

Gruß Christian

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 35 Mal

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von Familienvater » 05.08.2016, 01:15

Hi,

solange Du nicht mit Sende() bzw. Abfrage() hantierst, sollte AFAIK HPCL keinen extra Funkverkehr zum Aktor produzieren, weil die Exec-Engine eigentlich auch nur ein Abonnent der Funk- und wired-Events ist (wenn die CCU was empfängt, wird das an die ExecEninge weitergeleitet, und die merkt sich den aktuellen Zustand des Aktors/Sensors).

Und mit einer (falschen) Abfrage im 60-Sekunden-Takt sollte sich eigentlich bei einem WT noch kein DC von 90% einstellen, dazu braucht es mehr Funk (wobei das WT geweckt werden will, das braucht schon mehr Funkzeit, aber soviel???).

Im Zweifelsfall poste halt mal Dein HPCL-Makro, vielleicht sieht man da mehr.

Der Familienvater

contronics-RK
Beiträge: 954
Registriert: 18.07.2006, 15:58

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von contronics-RK » 05.08.2016, 11:57

Hallo,

bei der Abfrage wird ein getValue an den BidCoS-Service geschickt.
Ob dann das Gerät tatsächlich mit einer Funkmeldung abgefragt wird oder ob der BidCoS einfach den Wert meldet den er gerade hat hängt vom BiodCoS ab und ist letztlich auch geräteabhängig.

Grundsätzlich sollte man die Anweisung ABFRAGE nur sparsam in spezielllen Fällen einsetzen wenn der Verdacht besteht, dass ein Wert falsch ist oder lange nicht gekommen ist.
Normalerwesie kommt ja die Meldung vom Sensor regelmässig. Da Temperaturmeldungen meistens in grösserem Abstrand als 1 Minute kommen sollte man nicht im Minutenabstand abfragen da der BidCoS dann noch keinen neuen Wert hat und evtl. unnötige Funmeldungen erzeugt werden, die das Duty-Cylcle Konto füllen.
Mit freundlichem Gruss
CL-control - Ralph Krapoth
http://www.cl-control.de
Bei Fragen bitte keine PMs, sondern mail an technik@cl-control.de
PMs werden nicht regelmässig kontrolliert und und können unbeantwortet bleiben.

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von Herbert_Testmann » 05.08.2016, 12:26

Hallo

die Frage nach dem Makro ist ja noch offen.
Ich bin genau der Meinung, die auch Familienvater schon geäussert hat. Da die Temperaturwerte alle 3 min angeliefert werden, reicht es "bei Empfang" oder "bei Aktualisierung" ein Makro ausführen zu lassen.
Wird aus einem anderen Makro auf das Objekt zugegriffen, also z.B
Wenn TempWZ > 20 dann ...
so wird der letzte bekannte Wert von TempWZ genommen. Der ist dann max 3 min alt.

Was gibt es denn für eine Anwendung, wo genau zu einem bestimmten Zeitpunkt die Temperatur vom Heizungsthermostat abgefragt werden muss und nicht auch der Zustand von vor 3 min reichen würde? Und wie RK schon schreibt, ist es Geräteabhängig, ob überhaupt die Temp vom gerät abgefragt wird oder der letzte Wert aus der CCU geliefert wird.
Den Heizungsthermostaten alle 60 sec zu wecken (wenn es denn geht) bedeutet ja auch einen Haufen Batterien vorrätig zu haben :)
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Daimler
Beiträge: 9118
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 286 Mal

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von Daimler » 05.08.2016, 12:49

Hi,
Herbert_Testmann hat geschrieben:die Frage nach dem Makro ist ja noch offen.
Würde mich jetzt aber auch interessieren.

Insbesondere, da mich diese Aussage von RK etwas stutzig macht - wenn sie sich nicht ausschließlich auf die Anweisung 'Abfrage' bezieht.
contronics-RK hat geschrieben:Ob dann das Gerät tatsächlich mit einer Funkmeldung abgefragt wird oder ob der BidCoS einfach den Wert meldet den er gerade hat hängt vom BiodCoS ab und ist letztlich auch geräteabhängig.
Was geschieht also bei:
Herbert_Testmann hat geschrieben:Wird aus einem anderen Makro auf das Objekt zugegriffen, also z.B
Wenn TempWZ > 20 dann ..
:?:
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von Herbert_Testmann » 05.08.2016, 12:57

Hallo

ich gehe mal fest davon aus, dass sich die Erläuterungen von Herrn Krapoth allein auf den Befehl "ABFRAGE" beziehen.
Die Problematik dabei ist in der Hilfe zu HPCL aber auch schon eindeutig erläutert.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

chrisba
Beiträge: 30
Registriert: 28.05.2008, 15:40

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von chrisba » 05.08.2016, 14:54

Hallo zusammen

erstmal danke für eure Rückmeldungen.
Die Frage nach den Makros... nun ja, die habe ich alle umgeschrieben. Ich muss mal in meinen Backups suchen ob ich den alten Stand noch finde.

Auf die Frage warum ich im 60 Sekundentakt die Thermostate angesprochen hatte, kann ich nur sagen, als ich vor 8 Jahren damit angefangen hatte habe ich es nicht besser gewusst. Mit der CCU1 hat es die ganzen Jahre über funktioniert, da war kein Grund etwas anzupassen. Nur mit der CCU2, seitdem der DutyCylle-Bug behoben wurde, bin ich auf die Nase gefallen.
Ich versuche das Ganze nochmal nachzuvollziehen und melde mich wieder.

Gruß Christian

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von Herbert_Testmann » 05.08.2016, 23:30

chrisba hat geschrieben:Hallo zusammen

Die Frage nach den Makros... nun ja, die habe ich alle umgeschrieben. Ich muss mal in meinen Backups suchen ob ich den alten Stand noch finde.
als ich vor 8 Jahren damit angefangen hatte habe ich es nicht besser gewusst.

Gruß Christian
Hallo

aber Du wirst doch noch wissen, ob Du die letzten 8 Jahre den Befehl "Abfrage" benutzt hast, zumal Du grade erst alle makros editiert hast, wie Du schreibst.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

chrisba
Beiträge: 30
Registriert: 28.05.2008, 15:40

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von chrisba » 06.08.2016, 00:29

Hallo

Nein, den Befehl Abfrage wurde von mir noch nie verwendet.

chrisba
Beiträge: 30
Registriert: 28.05.2008, 15:40

Re: HM-CC-RT-DN treibt DutyCyle in die Höhe ???

Beitrag von chrisba » 06.08.2016, 14:15

Hallo zusammen

Also Problem erkannt. Hier ein kleines Testmakro. Nicht besonderes, es wird ein Sollwert in der VisuWin-Oberfläche eingegeben und im 10-Sekunden Takt an einen HM-CC-RT-DN gesendet.

Code: Alles auswählen

// ============================================================
// OBJEKT makSchreibeZuThermostat
// ============================================================
// OBJEKT-TYP              : Makro
// BEZEICHNUNG             :
// STARTWERT               :
// ------------------------------------------------------------
// AUSFÜHRUNGSINTERVALL    : 10 Sek
// AUSFÜHRUNG BEI EINGABE  : nein
// AUSFÜHRUNG BEI EMPFANG  : nein
// AUSFÜHRUNG BEI ÄNDERUNG : nein
// DEAKTIVIERT BEIM START  : ja
// ------------------------------------------------------------
// BESCHREIBUNG:
//
//
//   Übertragen einer Soll-Temperatur zum Thermostaten
//   Die Soll-Temperatur kann über VisuWin eingegeben werden
// ============================================================
// VARIABLENDEFINITIONEN
// ============================================================
// NAME              TYP         STARTWERT
// ------------------------------------------------------------
// SollWert           Zahl        0,0
// count              Zahl        0
// ============================================================
//
count := count + 1

SollWert := inpSollTemperatur
aktThermostat_Küche := SollWert  //HM-CC-RT-DN

//aktThermostat_WZ := SollWert     //HM-CC-TC


AnzDebugWerte.Value := SollWert
AUFRUFEN(AnzDebugWerte)
Was passiert?
Sende ich einen Sollwert von z.B. 23,5 wird der Wert einmal zum Thermostaten übertragen. Was auch zu erwarten war.
Ist der Sollwert aber 0,0 - ich verwende den Wert wenn ein Fenster geöffnet wurde - wird der Wert 4,5 übertragen. Da jetzt Sollwert und übertragener Wert nicht übereinstimmen wird die Übertragung im Takt des Makros wiederholt.
Das gleiche passiert wenn der Sollwert nicht durch 5 teilbar ist (z.B. 11,8) oder wenn er größer als 31 ist.
Siehe Logfile:

Code: Alles auswählen

2016-08-06 13:43:11 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 61.5, 61.5 ) = 0\n
2016-08-06 13:43:20 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 61.5, 61.5 ) = 0\n
2016-08-06 13:43:30 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 61.5, 61.5 ) = 0\n
2016-08-06 13:43:40 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 61.5, 62.0 ) = 0\n
2016-08-06 13:43:50 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 62.0, 64.0 ) = 0\n
2016-08-06 13:44:00 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 64.0, 64.0 ) = 0\n
2016-08-06 13:44:07 console.notice localhost  Sollwert 23,5
2016-08-06 13:44:10 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 64.0, 44.0 ) = 0\n
2016-08-06 13:44:20 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 44.0, 44.0 ) = 0\n
2016-08-06 13:44:22 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=23.500000\n
2016-08-06 13:44:30 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 44.0, 45.0 ) = 0\n
2016-08-06 13:44:40 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 45.0, 45.0 ) = 0\n
2016-08-06 13:44:50 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 45.0, 45.0 ) = 0\n
2016-08-06 13:45:00 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 45.0, 45.0 ) = 0\n
2016-08-06 13:45:10 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 45.0, 45.0 ) = 0\n
2016-08-06 13:45:20 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 45.0, 45.0 ) = 0\n
2016-08-06 13:45:27 console.notice localhost  Sollwert 0,0
2016-08-06 13:45:30 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 45.0, 45.0 ) = 0\n
2016-08-06 13:45:32 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=4.500000\n
2016-08-06 13:45:40 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=4.500000\n
2016-08-06 13:45:41 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 45.0, 46.0 ) = 0\n
2016-08-06 13:45:42 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=4.500000\n
2016-08-06 13:45:50 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 46.0, 47.0 ) = 0\n
2016-08-06 13:45:52 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=4.500000\n
2016-08-06 13:46:00 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 47.0, 48.0 ) = 0\n
2016-08-06 13:46:02 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=4.500000\n
2016-08-06 13:46:10 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 48.0, 49.5 ) = 0\n
2016-08-06 13:46:12 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=4.500000\n
2016-08-06 13:46:20 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 49.5, 50.5 ) = 0\n
2016-08-06 13:46:22 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=4.500000\n
2016-08-06 13:46:30 console.notice localhost  Sollwert 7,5
2016-08-06 13:46:30 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 50.5, 51.5 ) = 0\n
2016-08-06 13:46:32 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=4.500000\n
2016-08-06 13:46:40 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 51.5, 52.5 ) = 0\n
2016-08-06 13:46:42 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=7.500000\n
2016-08-06 13:46:50 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 52.5, 53.5 ) = 0\n
2016-08-06 13:47:00 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 53.5, 53.5 ) = 0\n
2016-08-06 13:47:10 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 53.5, 53.5 ) = 0\n
2016-08-06 13:47:21 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 53.5, 53.5 ) = 0\n
2016-08-06 13:47:31 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 53.5, 53.5 ) = 0\n
2016-08-06 13:47:33 console.notice localhost  Sollwert 11,8
2016-08-06 13:47:41 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 53.5, 53.5 ) = 0\n
2016-08-06 13:47:50 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 53.5, 53.5 ) = 0\n
2016-08-06 13:47:52 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=12.000000\n
2016-08-06 13:48:01 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 53.5, 54.5 ) = 0\n
2016-08-06 13:48:02 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=12.000000\n
2016-08-06 13:48:11 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 54.5, 55.5 ) = 0\n
2016-08-06 13:48:12 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=12.000000\n
2016-08-06 13:48:21 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 55.5, 56.5 ) = 0\n
2016-08-06 13:48:22 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=12.000000\n
2016-08-06 13:48:31 user.debug multimac: SubsystemBidcos::CheckDutyCycleEventThreshold( 56.5, 57.5 ) = 0\n
2016-08-06 13:48:32 user.debug rfd: Event: MEQ1552228:4.SET_TEMPERATURE=12.000000\n
2016-08-06 13:48:36 console.notice localhost  Sollwert 15,0
Gruß Christian

Antworten

Zurück zu „homeputer CL“