-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New eep A5-20-01 #44
Comments
I'm currently in the middle of a complete rewrite of node-enocean, making it more modular and easier to use. Working with the old version, the new version will definitely not be backwards compatible and ultimately break the code you write right now. It seems like it is allready tought in correctly. What exactly do you want to do and what does your code look like so far? |
Hi, I've just used this code: enocean.eepResolvers.push(function(eep,data){ I would like to be able to parse the data and send action. |
you don't need to push your own resolver because a5-20-01 is allready supported out of the box.
packet content is specified in the Enocean Equipment Profile Specification (EEP) |
Thanks for the tips but I stil have no idea how to send any command to the device :( |
ohhhh, ok. sorry. misunderstood. yes i can help you bringing it into life. the current state of node-enocean however is so bad that you might have to wait for the rewrite... sending data is a bit more involved... but i realize that the current resolver is also broken, so:
ok, so these are the 4 Bytes of data send in a 4BS Telegram. so split this value in 4 Bytes
In the case actuator to controller: byte3 is the current valve position. byte1 is the temperature where 0x00 to 0xff map to 0 to 40 degrees which maps to (byte1/255)*40 = 20°C (byte1 = 0x7f = 127) byte2 contains some bits.
so your resolver may look like this:
let me know if this works... |
Data Telegramgenerating the payloadagain byte0 is "08" data telegram. composing a teach in telegram is a different matter... more on that later
for setting these bits you can write the bit positions in binary and store it somewhere, and when you want to activate a bit just add the value:
byte3 Valve position or Temperature set point (linear); selection with byte1 bit 2 if byte1 bit 2 is 0, byte3 can be between 0 and 100 (Valve position)
if byte1 bit 2 is set, you can send a temperature setpoint wich again should be maped from
byte2 with byte2 you can send an actual temperature. if you have a room control unit(RCU) and you want to use its temperature set byte2 to 0. If you don't have an RCU or want overwrite its value, send a temperature. Be carefull, here the mapping is reversed. a value of 255 means 0 °C and a value of 0 means 40 °C.
if you have that, you can combine these bytes
telegram constructionnow we have to construct the telegram. first we construct the data part, for this we need the RORG wich is
now we can combine all this to the data part of our telegram:
now we need the optional data. in this case we don't need to calculate anything for this. its:
now we have to pack oll this to an actual telegram. use the code from this gist https://gist.github.com/Holger-Will/18ae06a997a83c54cd9fe2407650012d
now we are ready to send.
But this will most likely not work :-( because we have to first generate a teach in telegram to teach our valve about our virtual device.
now we are good to go, set your actuator to learn mode, send the teach in telegram, and after that you can control your valve from your computer ;-) the whole process will be much much much simpler with the next version... there is still a lot to do though, it would be fantastic if you would be willing to help. any help is greatly appreciated! |
Big thanks for all those informations ! I better understand how building packets is working now. Should I always send bytes1 if I want to just send a new temperature set point (bytes3) ? If so, it means I have to remember the last values I've set on bytes1 ... i'm a bit consufed. Moreover, I didn't understood the purpose of RCU values and how is it working.. Thanks again, I have been able to implement the first part, the communication from the device to the controller by the way :) Edit: Ok I think I understand. In fact, each time I send a packet, I need to send the whole configuration, I can not just update a "field" |
Hello,
I've just bought a new ubiwizz device which isa self-powered iTRV.
I've pushed as you described in the README the new eep in enocean eepResolver but I have no idea how to parse data received.
here it is whatis print when I try to learn the device :
Do you think you could help me to bring this device alive ? :)
The text was updated successfully, but these errors were encountered: