Hallo Andi,
anbei die Daten für einen DPT 20.102, den ich für meine Heizungssteuerung benötige.
Bitte um Aufnahme ;-)
Habs soweit getestet, der Heizungsaktor meldet auch schön den Wechsel zurück. Der Gira Homeserver und MDT-Aktoren nutzen die selben Werte,
lediglich 0 (Auto) fällt bei beiden weg. Da ETS es jedoch anbietet, habe ich das mit dazu aufgenommen....
--- FHEM/10_KNX.hvac.pm 2018-09-26 11:30:04.528963931 +0200
+++ FHEM/10_KNX.pm 2018-09-26 11:30:30.632799638 +0200
@@ -216,6 +216,9 @@
#date and time
"dpt19" => {CODE=>"dpt19", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(((3[01]|[0-2]?[0-9]).(1[0-2]|0?[0-9]).(19[0-9][0-9]|2[01][0-9][0-9]))_((2[0-4]|[0?1][0-9]):(60|[0?1-5]?[0-9]):(60|[0?1-5]?[0-9])))|(now)/i, MIN=>undef, MAX=>undef},
+ # HVAC mode, 1Byte
+ "dpt20.102" => {CODE=>"dpt20", UNIT=>"", FACTOR=>1, OFFSET=>0, PATTERN=>qr/((auto)|(comfort)|(standby)|(economy|night)|(protection|frost|heat))$/i, MIN=>undef, MAX=>undef, SETLIST=>"Auto,Comfort,Standby,Economy,Protection"},
+
# Color-Code
"dpt232" => {CODE=>"dpt232", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/[0-9a-f]{6}/i, MIN=>undef, MAX=>undef, SETLIST=>"colorpicker"}
);
@@ -1865,6 +1868,20 @@
$numval = 0;
}
+ # HVAC 1Byte
+ elsif ($code eq "dpt20")
+ {
+
+ $numval = "00" if ($value =~ m/Auto/i);
+ $numval = "01" if ($value =~ m/Comfort/i);
+ $numval = "02" if ($value =~ m/Standby/i);
+ $numval = "03" if ($value =~ m/Economy/i);
+ $numval = "04" if ($value =~ m/Protection/i);
+
+ #get hex representation
+ $hexval = sprintf("00%.2x",($numval));
+ }
+
#RGB-Code
elsif ($code eq "dpt232")
{
@@ -2114,6 +2131,19 @@
$state = sprintf("%02d.%02d.%04d_%02d:%02d:%02d", $day, $month, $year, $hours, $mins, $secs);
}
+ elsif ($code eq "dpt20")
+ {
+ #recive from bus
+ #get numeric value
+ $numval = hex ($value);
+
+ $state = "Auto" if ($numval >=0);
+ $state = "Comfort" if ($numval >=1);
+ $state = "Standby" if ($numval >=2);
+ $state = "Economy/Night" if ($numval >=3);
+ $state = "Protection/Frost/Heat" if ($numval >=4);
+ }
+
#RGB-Code
elsif ($code eq "dpt232")
sG
Joe
Abend!
Das will ich nicht aufnehmen. Mit den Aufzählungs-DPT steh ich auf Kriegsfuß. Das ist jede Menge Code und ich hab eh schon Sorgen mit der Lesbarkeit...
Da würd ich Dich bitten, bei der Patchvariante zu bleiben oder aber nen DPT5 als Basis herzunehmen, auf die numerischen Werte zu steuern, und die Belegung mit Bedeutungen erst im letzten Arbeitsschritt zu machen.
Geht auch Prima, wenn Du Dir das als eigene Funktion in den myUtils anlegst.
puh..... das vermundert mich jetzt.
Das ist ein ofizieller DPT aus dem Standard, also nichts besonderes. Warum soll es im Fronten komplex werden, nur damit im Backend einmalig ein paar fertig geschriebene Codezeilen weniger enthalten sind? Außerdem ist das ja ein sehr abgekapselter Codebereich, also keine komplexe Änderung an verschiedenen Codeteilen...
Ich nutze die myUtils aus Grundsatz nicht, denn die macht das Synchronisieren zwischen mehreren Installationen schrierig. Mein Ansatz ist, dass alles Wichtige in der fhem.cfg enthalten sein soll, und damit fahre ich ziemlich gut!
Ich hoffe also weiterhin auf Aufnahme. Zumal es auch ggf. weitere Anfragen von anderen Usern unterbinden kann, die sich fragen, warum es diesen DPT nicht gibt....
sG Joe
Hallo Andi,
habe die MDT-Glastaster. Diese nutzen auch den DPT 20.102.
Bin da Joes Meinung. Würde mich freuen, wenn du das mit aufnimmst. ::)
Gruß Jens
Hallo auch Andi!
Bin zwar neu hier und mache gerade erst meine ersten Schritte mit FHEM - tolles System was Du/Ihr da gebaut habt! Danke.
Ich schließe mich der Meinung von Joe und Jens an, bitte füge den DPT-20 hinzu.
Nutze auch gerade die Raumthermostate von Merten und nutze den Workaround wie von Dir beschrieben mit DPT-5. Habe dabei aber das Problem, dass ich Fehler im Log bekomme. Siehe auch im anderen Thread: https://forum.fhem.de/index.php/topic,92117.msg848485.html#msg848485 (https://forum.fhem.de/index.php/topic,92117.msg848485.html#msg848485)
Zudem ist die Lesbarkeit in der fhem.cfg so auch nicht so toll.
Grüße
Matthias
Dafür wird halt die Lesbarkeit im Modul schlechter - aber das ist ja nur mein Problem :-)
Seufz...Ja, mach ich irgendwann...
Zitat von: Andi291 am 23 Oktober 2018, 20:19:39
Dafür wird halt die Lesbarkeit im Modul schlechter - aber das ist ja nur mein Problem :-)
Seufz...Ja, mach ich irgendwann...
Gibt es schon etwas neues wann das sein wird?
Gruß aus Aachen
Is there any news regarding this patch ?
latest version does not seems to support it ?
it would be very useful.
Hallo Andi
ich würde mich auch freuen wenn der DPT20.102 im Modul wäre und ich den exclude_from_update für dein KNX Modul wieder löschen könnte.
Danke und Gruss
Remo
Ich fände es auch schön ;-)
wäre echt toll! Ich würde gerne ein Device von EinEinfach nachbauen:
Internals:
DEF 2/1/4:dpt5.001:ventilpostion:get
2/2/4:dpt9.001:ist_temperatur:get
2/4/4:dpt9.001:soll_temperatur
2/3/4:dpt9.001:soll_temperatur_status:get
2/5/4:dpt20.102:soll_bet:riebsart
2/6/4:dpt20.102:ist_betriebssart:get
2/7/4:dpt16.000:diagnose:get
2/0/4:dpt1.003:zwangsstellung
DEVNAME BZ.Heizung
FIRSTGADNAME ventilpostion
FUUID 5d8e0112-f33f-80cb-7cc8-499bfa1b8a95e304
GETSTRING ist_temperatur:noArg soll_temperatur:noArg soll_temperatur_status:noArg soll_betriebsart:noArg zwangsstellung:noArg ventilpostion:noArg ist_betriebssart:noArg diagnose:noArg
IODev KNX
KNX_MSGCNT 328
KNX_RAWMSG C0110ew0210400
KNX_TIME 2020-07-09 13:24:32
LASTInputDev KNX
MSGCNT 328
NAME BZ.Heizung
NR 94
NTFY_ORDER 50-BZ.Heizung
SETSTRING soll_temperatur:slider,-670760,13415,670760 soll_betriebsart:Auto,Comfort,Standby,Economy,Protection zwangsstellung:disable,enable
STATE Ist: 22.10 °C Soll: 20.00 °C Ventilposition: 0 %
TYPE KNX
GADDETAILS:
diagnose:
CODE 02704
GROUP 2/7/4
MODEL dpt16.000
NO 7
OPTION get
RDNAMEGET diagnose-get
RDNAMEPUT diagnose-put
RDNAMESET
SETLIST
ist_betriebssart:
CODE 02604
GROUP 2/6/4
MODEL dpt20.102
NO 6
OPTION get
RDNAMEGET ist_betriebssart-get
RDNAMEPUT ist_betriebssart-put
RDNAMESET
SETLIST :Auto,Comfort,Standby,Economy,Protection
ist_temperatur:
CODE 02204
GROUP 2/2/4
MODEL dpt9.001
NO 2
OPTION get
RDNAMEGET ist_temperatur-get
RDNAMEPUT ist_temperatur-put
RDNAMESET
SETLIST :slider,-670760,13415,670760
soll_betriebsart:
CODE 02504
GROUP 2/5/4
MODEL dpt20.102
NO 5
OPTION
RDNAMEGET soll_betriebsart-get
RDNAMEPUT soll_betriebsart-put
RDNAMESET soll_betriebsart-set
SETLIST :Auto,Comfort,Standby,Economy,Protection
soll_temperatur:
CODE 02404
GROUP 2/4/4
MODEL dpt9.001
NO 3
OPTION
RDNAMEGET soll_temperatur-get
RDNAMEPUT soll_temperatur-put
RDNAMESET soll_temperatur-set
SETLIST :slider,-670760,13415,670760
soll_temperatur_status:
CODE 02304
GROUP 2/3/4
MODEL dpt9.001
NO 4
OPTION get
RDNAMEGET soll_temperatur_status-get
RDNAMEPUT soll_temperatur_status-put
RDNAMESET
SETLIST :slider,-670760,13415,670760
ventilpostion:
CODE 02104
GROUP 2/1/4
MODEL dpt5.001
NO 1
OPTION get
RDNAMEGET ventilpostion-get
RDNAMEPUT ventilpostion-put
RDNAMESET
SETLIST :slider,0,1,100
zwangsstellung:
CODE 02004
GROUP 2/0/4
MODEL dpt1.003
NO 8
OPTION
RDNAMEGET zwangsstellung-get
RDNAMEPUT zwangsstellung-put
RDNAMESET zwangsstellung-set
SETLIST :disable,enable
GADTABLE:
02004 zwangsstellung
02104 ventilpostion
02204 ist_temperatur
02304 soll_temperatur_status
02404 soll_temperatur
02504 soll_betriebsart
02604 ist_betriebssart
02704 diagnose
Helper:
DBLOG:
ist_betriebssart-get:
SYS.DBLog:
TIME 1594291664.65899
VALUE Standby
ist_temperatur-get:
SYS.DBLog:
TIME 1594293256.79397
VALUE 22.10
last-sender:
SYS.DBLog:
TIME 1594293872.3699
VALUE 1/1/14
soll_temperatur:
SYS.DBLog:
TIME 1594293736.75793
VALUE 20.00
soll_temperatur-get:
SYS.DBLog:
TIME 1594290772.77955
VALUE 22.00
soll_temperatur_status-get:
SYS.DBLog:
TIME 1594290772.72992
VALUE 20.00
soll_ventilposition:
SYS.DBLog:
TIME 1594293256.79397
VALUE 40
state:
SYS.DBLog:
TIME 1594293872.3699
VALUE 0
ventilpostion-get:
SYS.DBLog:
TIME 1594290592.74442
VALUE 0
READINGS:
2020-07-09 09:18:59 diagnose-get Wi H Standby 0
2020-07-09 13:17:32 ist_betriebssart-get Standby
2020-07-09 09:18:59 ist_betriebssart_alt Standby
2020-07-09 13:24:16 ist_temperatur-get 22.10 °C
2020-07-09 13:24:32 last-sender 1/1/14
2020-07-09 09:18:59 soll_betriebsart-set Standby
2020-07-09 13:24:32 soll_temperatur 20.00 °C
2020-07-09 13:22:32 soll_temperatur-get 22.00 °C
2020-07-09 09:18:59 soll_temperatur-set 22.00 °C
2020-07-09 13:22:32 soll_temperatur_status-get 20.00 °C
2020-07-09 13:24:32 soll_ventilposition 40
2020-07-09 13:24:32 state 0 %
2020-07-09 13:24:32 ventilpostion-get 0 %
2020-07-09 09:18:59 zwangsstellung-set enable
Attributes:
IODev KNX
alexaName Heizung Badezimmer
alexaRoom Badezimmer
alias Heizung Badezimmer
event-min-interval .*:3600
event-on-change-reading .*
genericDeviceType thermostat
group Heizung
homebridgeMapping CurrentTemperature=ist_temperatur-get
TargetTemperature=soll_temperatur::soll_temperatur,minValue=16,maxValue=26,minStep=0.5,nocache=1
CurrentHeatingCoolingState=ist_betriebsart-get,values=Protection/Frost/Heat:0;;Standby:0;;Comfort:1;;Economy/Night:1;;cool:2,valud=off
TargetHeatingCoolingState=soll_betriebsart-set,values=Protection/Frost/Heat:0;;Standby:0;;Comfort:1;;Economy/Night:1;;cool:2;;Auto:3,cmds=OFF:soll_betriebsart+Protection;;HEAT:soll_betriebsart+Comfort;;AUTO:soll_betriebsart+Auto;;COOL:soll_betriebsart+Standby
mqttName Heizung
mqttRoom Badezimmer
room 15_Badezimmer,80_Homekit,KNX
stateFormat {'Ist: '.ReadingsVal($name, "ist_temperatur-get","").
' Soll: '.ReadingsVal($name, "soll_temperatur_status-get", "").
' Ventilposition: '.ReadingsVal($name, "ventilpostion-get", "")}
userReadings soll_temperatur
{
ReadingsVal($NAME,"soll_temperatur_status-get","")
},
soll_ventilposition
{
soll_ventilposition(ReadingsNum("$NAME","soll_temperatur-get",""),ReadingsNum("$NAME","ist_temperatur-get",""))
}
webCmd soll_temperatur
widgetOverride soll_temperatur:16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22,22.5,23,23.5,24,24.5,25,25.5,26
Letzer Besuch von Andi war im Feburar 2020, da wird das wohl eher nix mit dem Patch, oder? Habe nämlich auch gerade das Problem damit bekommen.
Mag jemand seine gepatched Datei zur Verfügung stellen? Ich könnte zwar jetzt den Code komplett manuell einfügen aber vll. mag ja jemand was für die Allgemeinheit tun und seine Datei direkt zur Verfügung stellen :)
Siehe mein Beitrag hier: https://forum.fhem.de/index.php/topic,115122.msg1100325.html#msg1100325 (https://forum.fhem.de/index.php/topic,115122.msg1100325.html#msg1100325)
Ich werde wohl die Tage eine gepatchte Datei dort zur Verfügung stellen.
Edit: Ist online.