john30 / ebusd

daemon for communication with eBUS heating systems
GNU General Public License v3.0
592 stars 136 forks source link

DTM datatype for thermostat #1172

Closed nalonsor1 closed 10 months ago

nalonsor1 commented 10 months ago

Description

Hello: I think there should be a bug in https://github.com/john30/ebusd/blob/e3fb45b6573f31c4afca529f23fe61ce68146752/src/lib/ebus/datatype.cpp (https://github.com/john30/ebusd/issues/381)

with the DTM format. // date+time in minutes since 01.01.2009, 01.01.2009 - 31.12.2099 add(new DateTimeDataType("DTM", 32, REQ, 0x100, true, true, 0));

It fails when writing 2024 dates (reading is ok). It is working fine using 2023 dates. still working fine when writing in HEX:4 format.

Example: 2ad9b828-ebusd:/# ebusctl r -c e7f_2 "time&date" 26.01.2024 21:29 2ad9b828-ebusd:/# ebusctl r -c e7f_2 HeatingOverrideEndTime 26.01.2024 12:50 2ad9b828-ebusd:/# ebusctl w -c e7f_2 HeatingOverrideEndTime "26.01.2024 21:30" ERR: argument value out of valid range 2ad9b828-ebusd:/# ebusctl w -c e7f_2 HeatingOverrideEndTime "26.01.2023 21:30" done 2ad9b828-ebusd:/# ebusctl r -c e7f_2 HeatingOverrideEndTime 26.01.2023 21:30

Actual behavior

2ad9b828-ebusd:/# ebusctl w -c e7f_2 HeatingOverrideEndTime "26.01.2024 21:30" ERR: argument value out of valid range

Expected behavior

2ad9b828-ebusd:/# ebusctl w -c e7f_2 HeatingOverrideEndTime "26.01.2024 21:30" done

ebusd version

23.2

ebusd arguments

ebusd --foreground --mqtthost=core-mosquitto --mqttport=1883 --mqttvar=filter-direction=r|u|^w --accesslevel="*"

Operating system

other

CPU architecture

arm64

Dockerized

latest

Hardware interface

Adapter v3 USB

Related integration

TCP (cmdline client like ebusctl or netcat)

Logs

look at description

john30 commented 10 months ago

good spot, indeed not working as desired

nalonsor1 commented 10 months ago

Thank you!!!