Thanks for your suggestions, I have created a package[1] that breaks down all values. Unfortunately I need an additional variable (_raw
values) for some values. I haven’t found a way to automatically hide these values. Suggestions and PRs are welcome.
Awesome work, thank you so much! I struggled so much with the correct interpretation of the data returned by these modbus registers…
This is such amazing work. Thank you for that! That package feels almost like a full integration and it’s definitely worthy of one. It feels like there only those 10% left to do to make it a full integration now.
Is there anyone feeling able to give it a shot or lay down the ground work so all of us can jump in and integrate all the functionality?
Is it possible to change prmBypassTmax by modbus? I’d like to change temperature between summer and winter.
Or is it possible to disable bypass by modbus?
Then I could stop the bypass in winter, when heating is enabled.
Took the idea from an other topic:
fan:
- platform: template
fans:
pluggit_fan:
unique_id: "pluggit_fan_id"
friendly_name: "Pluggit AP 310"
value_template: "{{ int(states('sensor.pluggit_speed_level_of_fans_in_manual_mode_raw'), 3) > 0 }}"
percentage_template: "{{ int(states('sensor.pluggit_speed_level_of_fans_in_manual_mode_raw'), 3) * 25 }}"
preset_mode_template: "{{ states('select.pluggit_active_unit_mode') }}"
turn_on:
service: script.pluggit_set_speed_level_of_fans_in_manual_mode
data:
speed_level: "{{ 2 }}"
target:
entity_id: sensor.pluggit_speed_level_of_fans_in_manual_mode_raw
turn_off:
service: script.pluggit_set_speed_level_of_fans_in_manual_mode
data:
speed_level: "{{ 0 }}"
target:
entity_id: sensor.pluggit_speed_level_of_fans_in_manual_mode_raw
set_percentage:
service: script.pluggit_set_speed_level_of_fans_in_manual_mode
data:
speed_level: "{{ percentage / 25 }}"
target:
entity_id: sensor.pluggit_speed_level_of_fans_in_manual_mode_raw
set_preset_mode:
service: script.pluggit_set_active_unit_mode
data:
unit_mode: "{{ preset_mode }}"
#set_oscillating:
# service: script.fan_oscillating
# data:
# oscillating: "{{ oscillating }}"
#set_direction:
# service: script.fan_direction
# data:
# direction: "{{ direction }}"
speed_count: 4
preset_modes:
- "Manual"
- "WeekProgram"
Pluggit has released a new firmware late september, version 3.14
To install it, the also new V3 of Pluggit iFlow must also be installed on your computer, and previous iFlow versions MUST be uninstalled prior to upgrading the firmware.
A new Modbus documentation has also been released. Everything can be downloaded after registering an account on https://inside.pluggit.com
To find the updated Modbus documentation, go to Pluggit Inside and search for “Modbus”.
The changes since V2.68 are:
- the following parameters have now write access:
- prmDHCPEN
- prmCurrentIPAddress
- prmCurrentIPMask
- prmCurrentIPGateway
- prmBypassTmin
- prmBypassTmax
- prmRamIdxBypassManualTimeout
- prmRomIdxRhSetPoint
-
In the filter surveillance section, Servoflow has been added.
-
Alarm list updated.
-
Following parameters added:
- prmBypassTmaxSummer
- prmBypassTminSummer
- prmRHSetpointSummer
The most interesting changes for me are that we can now modify the manual timeout duration and the Tmin and Tmax values for piloting the summer bypass. Also, there are now different Tmin and Tmax values for Summer and Winter times. Sounds cool!
Hi I upgrade to version 3.14
After I like to to change this new writable float32 registers.
Try to set prmBypassTmaxSummer register, first try use a “call service” in developer tools
service: modbus.write_register
data:
hub: pluggit
address: 764 or 765
value: [30,0] or [0,30] or [11110,0] or [0,11110]
any combination but only write a 0 to register
I found only this: Write a Modbus R32 (word-swapped float32) register and use binary value, but not helped.
After can connect to iFlow3 tool to reset to default.
It’s a Settings → Accessory → select bypass ->save.
0 (wrong) value change to deselect bypass any time.
How to write a float32 register in modbus service?
Regards
Pimpalavista
Hi, I think I could need some help.
I must have made a mistake with the registers and now my pluggit is confused with its bypass-state. Wenn bypass is open it thinks it’s closed and when it’s closed it thinks it is open. I can open and close bypass via Home Assistant or the phone-app, but it ist always the wrong way. I tried to get rid of this error by restarting the pluggit and even by physical deinstallation and reinstallation of the bypass, but the error still is there. Has anyone an idea of how to tell the pluggit, that the bypass is open when it really is open?
Regards
Titansalat
connect to iFlow[2|3] tool to reset to default.
Settings → Accessory → deselect bypass ->save.
and after
Settings → Accessory → select bypass ->save.
So far I have only managed to edit values for prmBypassTmax (Tmax winter) - trying to write to the other 3 registers Tmin (winter), TmaxSummer and TminSummer always fails and sets them to 0 or the lowest possible value.
The example below is an automation triggered by a slider (input_number) entity to change values of Tmax winter:
- id: "4cd0083a-53bc-4587-afff-315ffb016e86"
alias: Pluggit - Set ByPass Tmax Winter via slider
description: "Uses input_number entity to update Tmax Winter value"
mode: single
trigger:
- platform: state
entity_id: input_number.pluggit_bypass_tmax_winter
action:
- service: modbus.write_register
data:
address: 447
unit: 255
value: >
[ {{ '0x%04x' % unpack(pack(states('input_number.pluggit_bypass_tmax_winter') |float(0), '>f'), '>h') |abs }}, 0 ]
hub: pluggit
I haven’t been able to do the same for the 3 other registers mentioned above, and I don’t understand the reason why…
Here are the details of the input_number
Unfortunately the settings in accessories don‘t change anything. If you deselect Bypass you just can’t activate it via the App. You still can activate it via modbus, even if it is deactivated in the settings. But I found the solution. If you log into iFlow 3 as admin you find an endless register of values. One is called „prmNeedInverseBypassState“. This was set to 1. I changed it to 0 and now it works perfectly.
I happened to stumble upon this thread and noticed a striking similarity between the Modbus descriptions in both this threads and this one.
As the author of the Dantherm integration, I don’t see any reason why it shouldn’t also work with Pluggit units as well as the Dantherm units. Even the apps from both brands show a noticeable resemblance.
Check out the linked discussion, and if anyone is interested in testing the integration, I’m considering creating a separate Pluggit integration using the same code.
I can confirm that my Pluggit AP310 is running with your Dantherm integration. It is recognized as WG300
Hi neotigger,
Thank you for confirming. Would it make sense to adapt the integration for Pluggit, or is there already an existing solution for Home Assistant? I have tried looking around, but didn’t find anything.
I also only know of this solution here
No, there is nothing else in existence for Pluggit and Home Assistant. Great to hear that Dantherm and Pluggit are mostly the same thing.
Can we do anything to help adapting your integration for Pluggit? You can have me (and most likely neotigger) for real-life, real-device tests. I also happily provide you pcapng packet captures from the Pluggit App and the Pluggit AP310 device, if needed.
If anyone is interested, there is a Pluggit integration here. If something doesn’t work or is missing, please let me know.
Very cool, thanks for your work on it! I will try it out when I have some spare time.
Can you confirm that manually setting TmaxSummer and TminSummer works?
I have never been able to set these 2 particular settings via modbus…
Thank you!
Hello juskalalie. Yes, that works. If the values are set using HA, they are read correctly in the iFlow software and vice versa.
Just to clarify. Summer means the values apply to summer time and the two values without summer mean winter time.
Hope that helps.
Fantastic news, thank you very much!!
Out of curiosity, could you point me to this functionality in the code? I’d really like to see how it’s done.