Supergiovane / node-red-contrib-knx-ultimate

Control your KNX intallation via Node-Red! A bunch of KNX nodes, with integrated Philips HUE control and ETS group address importer.
https://youtu.be/egRbR_KwP9I
MIT License
147 stars 34 forks source link

Fallback for unknown datapoints #206

Closed ColdFireIce closed 2 years ago

ColdFireIce commented 2 years ago

Hi @Supergiovane ,

thank you for your tremendous effort with this project. One thing I'm using the plugin is to write the bus data to an InfluxDB.

Now I'm using some MDT heating controllers and they have a proprietary datapoint for their HVAC Status. I have no problem with parsing the data my self. I set the datapoint within the ETS to: 21.000 which is a "generic status" as the value is a 8-Bit mask.

I recieve the following object from the universalmode node:

{"topic":"3/1/5","payload":"UNKNOWN: ERROR dptlib.resolve:undefined","devicename":"(Klima->OG) Klima OG Büro Heizung HVAC Status","payloadmeasureunit":"","payloadsubtypevalue":"","knx":{"event":"GroupValue_Write","dpt":"unknown","dptdesc":"","source":"1.0.100","destination":"3/1/5","rawValue":[40]},"_msgid":"9325712237dbaaf2"}

Am I not aware of some setting that I should use for generic datapoints or Can I fix this somehow? Sure I can check for the "payload" and use the rawValue, but It seems as if it would be nice to have the option to say: "Use rawValue" if unknown datapoint?

best regards Daniel

Supergiovane commented 2 years ago

Hi Daniel That MDT devices often uses such as non "standard" DPTs and that drives me crazy. For HVAC status there are datapoints that do exactly that an HVAC system is supposed to do. Anyway. There are many 8bit DPTs out there, so the universal node is unable to know witch datapoint has to be used for decoding the raw value. If you think that's better for you, i can add the 21.xxxx datapoint set. Please let me know and... thank you for enjoying my node!

ColdFireIce commented 2 years ago

Hi,

what ever works best for you and your plan for this project. I thought, that a generic fallback for unknown datapoints could be nice. This way, anyone could use it for those pesky proprietary datapoints. Maybe in the future there is a 2 or 3 bit datapoint that is non standard. If the universal node could have an option like "output unknown/unsupported datapoints as raw value" I think this could be nice. In my opinion `"dpt":"unknown" would even suffice to identify such cases.

best regards Daniel

Supergiovane commented 2 years ago

I'm doing both things you're writing for. Adding 21.001 and adding "unknown"

Supergiovane commented 2 years ago

Hi Daniel 1.4.2 is out in minutes with DPT 21.001. The "unknown" thing cannot unfortunately be done, because if no ETS file has been imported, KNX-Ultimate tries to figure out the right datapoint before proceeding, so you could have a wrong payload. You should should either save in the DB always the raw value or import the ETS file (the simplest way).

ColdFireIce commented 2 years ago

Hi,

wow, that was a quick fix. Thanks a lot. For me this seems to work great.