BWT - Best Water Tech­nology - Support

To my experience it takes some time. In my case I sent them a email about 3 month after first contact to ask about the time shedule of my installation. It went out that they already did it and just forgot to inform me. So I would suggest just asking BWT again…

It seems, the API https://bwt-real-smarthome-backend.azurewebsites.net/api/Perla/ is no longer accessible. Has anyone else had issues with this API lately?

Is there another viable solution to read data from perla systems with VNC?

For me is does not work as well since some days :roll_eyes:

Maybe, they will release local firmware as public rather than keeping it as beta. Maybe it is already updated on your end?

The website is offline now. Without any notice. Did anybody has contacted BWT for a statement?

Same for me - Shoud i Update the Firmare to read from the local API?
Howto?

They did the update remotely for me after asking through email, you can find more information in previous posts

thx
Now i am on 2.0209
APi works fine.

Is there a way to get the other/old values?
Like Status and Holiday Mode?

sorry fount it.
Holiday Mode is 0 for me.

  - name: "bwt_holiday"
      value_template: "{{ value_json['HolidayModeStartTime'] }}"
      icon: "mdi:water-pump"
      device_class: water

If someone need it

1 Like

OK, I have the beta installed y BWT after asking via email. What now? How do I get it into Home Assistant?

Thanks!

I started to build a custom integration for the new local API: GitHub - dkarv/hacs-bwt-perla: Custom HA integration for BWT Perla devices
It can be set up through the UI and currently exposes 9 entities:

Happy about any feedback or other entities you are missing.

4 Likes

I keep getting an Unexpected Error message when trying to set up the integration.

Thanks for the work @dkarv! It’s a great start!

Looks like this was fixed in the latest version. At least for me lookng at the logs it was that the older version of the API didn’t expect an empty error list and crashed due to that.

Btw it seems the new version still has some quirks too. For me after enabling the API through the VNC endpoint something on the BWT unit crashed and both the VNC and the API endpoints stopped working until I power-cycled the unit.

1 Like

Hello @dkarv,
I’ve been following this blog for some time as I own a BWT myself, I’ve now tried your integration and it works great. What I miss a little, however, is the flow meter (CurrentFlowrate_l_h). Maybe it would be possible for you to add it to the integration? Thank you again for your commitment. I have an operating manual for the new API with data that the BWT outputs. If anyone needs it, I can send it by email.

Hello,
it is no problem to add it. But by default HA samples new data every 30 seconds. I’m not sure how helpful the value is, even when updated more often - not sure how often it can be requested.
Maybe you can describe your use case. It might be a more accurate approach to take the difference between two readings of total_output.

I would have used this value as a monitoring tool to monitor excessive water consumption, e.g. when filling the pool.
Of course, an almost real-time evaluation must be possible for this.

Hi, thanks for the integration. It’s working great, can I ask for following entities. HolidayModeStartTime, LastRegenerationColumn1, LastRegenerationColumn2, RegenerationCounterColumn1, RegenerationCounterColumn2, WaterTreatedCurrentDay_l, WaterTreatedCurrentMonth_l, WaterTreatedCurrentYear_l. This is so I can regenerate the picture from the iOS App and make a similar card. I guess you got the API documentation to look up these values as well :slight_smile:

Hello,

I have just received version 2.0209 following the request to the email address [[email protected]] who were very responsive (less than 2 hours to receive the update)

Thank you @dkarv for your HA integration which works perfectly!

bwt

Hi @deepansteven ,
LastRegenerationColumn1, LastRegenerationColumn2, RegenerationCounterColumn1, RegenerationCounterColumn2 - these are fairly easy, I integrated them and will push a new version in a few days.

HolidayModeStartTime - I need to take a closer look and play around with it how to bring it to HA.

WaterTreatedCurrentDay_l, WaterTreatedCurrentMonth_l, WaterTreatedCurrentYear_l - as far as I understand the treated values are not the water consumption, but basically the water fully desalinated before it is mixed with untreated water, to reach the right output hardness. Not sure if this value is shown to the user (I don’t use the iOS app).
If you want to show the daily/monthly/yearly water consumption it could be possible with a Utility meter helper, calculating it based on the total_output value. I will give it a try.

Thanks @dkarv , but I couldn’t wait :slight_smile: and had a little Christmas holiday so made RESTful sensors. Any error message will be shown as a triangle below the circle diagram, when there is something wrong. I implemented a pop-up to show the full error messages when the alert triangle is clicked.


#################################################################
#                                                               #
#                BWT Perla REST API Call                        #
#                                                               #
#################################################################
rest:
  - authentication: basic
    username: !secret bwt_login_code
    password: !secret bwt_login_code
    scan_interval: 60
    resource: !secret bwt_GetCurrentData_url
  
    sensor:
      - name: "BWT Perla"
        icon: "mdi:water"
        value_template: >
          {% set codes =
            { "": "OK",
              "1": "Error - Motor / valve 1 cannot be controlled",
              "2": "Error - Motor / valve 2 cannot be controlled",
              "3": "Error - Blending motor cannot be controlled",
              "5": "Warning - Regenerative level is <= 20%",
              "8": "Error - Power consumption of motor / valve 1 is too high",
              "9": "Error - Power consumption of motor / valve 2 is too high",
              "10": "Error - Power consumption of motor / valve 3 is too high",
              "12": "Error - Power consumption at one of the sole- noid valves is too high",
              "13": "Error - AQA Stop sensor set volume exceeded",
              "14": "Error - AQA Stop sensor wired floor sensor has triggered",
              "15": "Warning - AQA Watch leakage water was detected",
              "16": "Warning - Line pressure has dropped",
              "21": "Error - Piston 1 / 2 is in an undefined position",
              "22": "Error - Error on internal electronics",
              "25": "Warning - Too little brine was sucked off during regeneration",
              "26": "Error - AQA Guard Wireless Sensor wireless floor sensor has triggered",
              "27": "Error - Regenerative level = 0%",
              "32": "Warning - Routine maintenance must be carried out by the customer",
              "33": "Warning - The inspection must be carried out by the customer",
              "34": "Warning - Expert maintenance must be carried out by customer service",
              "35": "Warning - The mineral substance container of the metering unit is nearly empty",
              "36": "Warning - The mineral substance container of the metering unit is empty",
              "43": "Error - Power consumption at one of the solenoid valves is too high",
              "44": "Error - Power consumption at one of the solenoid valves is too high",
              "45": "Error - Power consumption of the metering pump is too high.",
              "46": "Error - Power consumption of the motorised ball valve is too high",
              "54": "Warning - No pulses were counted on the water meter for 30 days",
              "55": "Warning - Repeatedly, no brine was sucked off during regeneration",
              "56": "Error - PCB 1.0 failed to initialise",
              "57": "Error - PCB 1.1 failed to initialise",
              "58": "Error - Motor 1 position faulty",
              "59": "Error - Motor 2 position faulty",
              "61": "Warning - The measured conductivity is too high",
              "62": "Warning - The measured conductivity is above limit 1",
              "63": "Warning - The measured conductivity is above limit 2",
              "64": "Warning - The measured conductivity is above the water limit",
              "65": "Error - The system has no brine available, which means that it is not functional",
              "66": "Warning - The connection between the system and the temperature sensor has been interrupted",
              "67": "Warning - The measured temperature is too high",
              "68": "Error - The motorised ball valve does not respond",
              "74": "Warning - Reminder to change/flush the external filter",
              "75": "Warning - An unsaturated brine results in lower capacity",
              "88": "Warning - There is a fault in the metering pump"                                                                                                                                          
            } %}
          {{ codes.get(value_json['ActiveErrorIDs'], 'unknown') }}
        json_attributes:
          - ActiveErrorIDs
          - BlendedWaterSinceSetup_l
          - CapacityColumn1_ml_dH
          - CapacityColumn2_ml_dH
          - CurrentFlowrate_l_h
          - DosingSinceSetup_ml
          - FirmwareVersion
          - HardnessIN_dH
          - HardnessOUT_dH
          - HolidayModeStartTime
          - LastRegenerationColumn1
          - LastRegenerationColumn2
          - LastServiceCustomer
          - LastServiceTechnican
          - OutOfService
          - RegenerationCountSinceSetup
          - RegenerationCounterColumn1
          - RegenerationCounterColumn2
          - RegenerativLevel
          - RegenerativRemainingDays
          - RegenerativSinceSetup_g
          - ShowError
          - WaterSinceSetup_l
          - WaterTreatedCurrentDay_l
          - WaterTreatedCurrentMonth_l
          - WaterTreatedCurrentYear_l

      - name: "BWT Perla State"
        value_template: "{{ value_json.ActiveErrorIDs}}"      
        json_attributes:
          - ActiveErrorIDs

      - name: "BWT Perla Current Flowrate"
        unit_of_measurement: L
        icon: "mdi:water"
        value_template: "{{ value_json.CurrentFlowrate_l_h}}"      
        json_attributes:
          - CurrentFlowrate_l_h

      - name: "BWT Perla Daily Consumption"
        unit_of_measurement: L
        device_class: water
        state_class: total_increasing
        icon: "mdi:faucet"
        value_template: "{{ value_json.WaterTreatedCurrentDay_l}}"
        json_attributes:
          - WaterTreatedCurrentDay_l

      - name: "BWT Perla Total Consumption"
        unit_of_measurement: L
        device_class: water
        state_class: total_increasing
        icon: "mdi:water"
        value_template: "{{ value_json.WaterSinceSetup_l}}"      
        json_attributes:
          - WaterSinceSetup_l

      - name: "BWT Perla Salt Level"
        icon: "mdi:shaker-outline"
        value_template: "{{ value_json.RegenerativLevel}}"      
        json_attributes:
          - RegenerativLevel

      - name: "BWT Perla Salt Level Days"
        icon: "mdi:calendar-clock"
        value_template: "{{ value_json.RegenerativRemainingDays}}"      
        json_attributes:
          - RegenerativRemainingDays