Announcement

Collapse
No announcement yet.

poolController Homeseer interface with mcsMQTT

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #31
    pool/state/chemControllers/1/chemcontroller1/pHSetpoint
    {"id":1,"pHSetPoint":$$value:}

    Issue with this payload is, It changes the displayed setting (7.5 to 7.2), but after two seconds reverts to the controller setting (7.5).
    monitoring the settings on the webClient window never shows a change to 7.2
    This indicates that the topic being send is not recognized by the controller and on its next status update the controller value shows in HS.

    What I had shown above is
    pool/state/chemControllers/1/chemcontroller1/orpSetpoint/setPoint
    for the PH it would be
    Code:
    pool/state/chemControllers/1/chemcontroller1/pHSetpoint/setPoint
    Note that the suffix "setPoint" is needed so the controller recognizes it as a command. This is like needing the "setState" suffix to control the On/Off

    I understand that the HS UI for the text box was refreshing. I do not know what HS is doing in this area. Can you clarity if changing "Set Does Not Change Last Change" with checkbox "fixed/masked" the refresh problem or with the checkbox did it "create/enable" the problem?

    Comment


      #32
      Now my computer keeps rebooting...

      I tried "setPoint", I will attach my list of attempts, lost the notes due to computer reboot.
      Attempts.txt

      The HS UI text box was refreshing every 2 seconds, I could not make an entry. I had to try something so I checked the "Set Does Not Change Last Change" checkbox, and after that I was able to enter a amount and press submit. I hope it is fixing the refresh problem, but I do not know ??

      Again the problem of mad refreshing of Chemical Controller items (Yes, more then one item has this 2 second refresh) is there when the "Set Does Not Change Last Change" box is not checked.

      Items that still are refreshing every 2 seconds (Even with the pool off);
      Salt level
      PH Reading
      ORP Reading
      ORP Setpoint

      Thanks for your help...

      EDIT

      This payload
      {"pHSetpoint":$$value:}
      acts the same as
      {"id":1,"pHSetPoint":$$value:}

      I enter 7.2 it accepts for a second and then back to 7.5

      adding "setPoint" causes no response. (pool/state/chemControllers/1/chemcontroller1/pHSetpoint/setPoint)
      Attached Files

      Comment


        #33
        I looked back at the History database you have previously sent. The pool controller is sending a continuous stream of data which is way excessive and it could be the reason why you are having refresh/reboot issues. I will go back to your original post and see if I can install it on one of my RPis. While I do not have a pool interface I may still be able to work at the interface level to perhaps get some additional insight.

        Comment


          #34
          I posted a request on the Github poolController webpage asking about PH and ORP commands. This was 5 days ago and no response, normally they are very responsive.

          I notice on the MQTT bindings page that PH and ORP are not listed;
          https://github.com/tagyoureit/nodejs...ns-in-2.0#mqtt

          Click image for larger version  Name:	MQTT Bindings listen for.JPG Views:	0 Size:	96.0 KB ID:	1427526
          Also on the Lobby discussion page;
          https://gitter.im/nodejs-poolController/Lobby
          There is discussion about what is working with MQTT (Between Aug 26 and Sept 3) and PH and ORP are not mentioned.

          So this is going into a back burner project position for me, until more MQTT items are implemented at the poolController level.

          Comment


            #35
            I received my RS485 USB controller and have the pool controller running on RPi. What I have not had success with is trying to follow the instructions for adding the mqtt binding/integration. The instructions indicate to place the outputSocketToMQTT.js file in /src/integrations folder with the implication that this folder already exists. I created it but when running no MQTT traffic exists. It was also not clear where in the config.json file the mqtt information should be placed. Can you post your config.json and package.json files and confirm where outputSocketToMQTT.js is located on your system?

            A also tried to find more info about the ChemController at https://tagyoureit.github.io/nodejs-poolcontroller-api/ and it shows that the options to set it are setup in poolConfig.json. When I look at /data/poolConfig.json the chemControllers section has a empty specification. It was also empty for many others so it is not clear to me the relationship between the API and what is actually working.

            Click image for larger version

Name:	Capture1.PNG
Views:	46
Size:	31.1 KB
ID:	1428331

            Click image for larger version

Name:	Capture.PNG
Views:	67
Size:	13.7 KB
ID:	1428330

            As I was editing outputSocketToMQTT.js for my Broker address I observed only three socket messages that is was processing
            'temperature', 'circuit' and 'error'. In the control direction the only topics that it is subscribing to are 'pool/circuit/+/status' but we know that you are able to set the pool setPoint so I do not understand how outputSocketToMQTT.js get the command from mcsMQTT since it does not seem to be subscribed to it. Perhaps I have downloaded the wrong mqtt binding.

            Comment


              #36
              I believe you most be using the wrong instructions, I have no idea what outputSocketToMQTT.js is ??
              OK, I see you were following; https://github.com/crsherman/nodejs-poolController-mqtt
              I did not do Crsherman version, I do understand that he has more items working.

              The most current method to enable MQTT (Or Hubitat support) is to follow these instructions;
              https://github.com/tagyoureit/nodejs...ns-in-2.0#mqtt

              Update, I installed a Hubitat Elevation and got it reporting items to Homeseer. I used your Hubitat Elevation plugin and Brad Sileo Hubitat plugin, see;
              https://github.com/bsileo/hubitat_poolcontroller
              The Hubitat plugin is reported to interface with the intellichem ??

              GUESS WHAT ??

              My Intellichem does not appear to be communicating, (funny that I am getting PH and ORP reading), something is out of place for sure. Hope to get out there this week and install a new com port expansion module (My suspect, I have a homemade one now).

              Comment


                #37
                I still do not get any MQTT traffic with the link in post #36. Maybe because I have no hardware connected to the RS485.

                I did notice in mqtt.json the following which may be the reason you are being flooded with MQTT traffic. You can try to set the enable false.

                Code:
                "events": [
                {
                "name": "config",
                "description": "Don't flood the MQTT bus.",
                "enabled": false
                },
                In web\interfaces are the set of command topics. It seems that this list could be extended to include the chemController topics and using the pattern of "case setpoint" logic to service it. To play at this level would require the pool hardware.

                Code:
                private subscribe = () => {
                let topics = [
                `${this.rootTopic()}/state/+/setState`,
                `${this.rootTopic()}/state/+/setstate`,
                `${this.rootTopic()}/state/+/toggleState`,
                `${this.rootTopic()}/state/+/togglestate`,
                `${this.rootTopic()}/state/body/setPoint`,
                `${this.rootTopic()}/state/body/setpoint`,
                `${this.rootTopic()}/state/body/heatMode`,
                `${this.rootTopic()}/state/body/heatmode`,
                `${this.rootTopic()}/state/+/setTheme`,
                `${this.rootTopic()}/state/+/settheme`,
                `${this.rootTopic()}/state/chlorinator`
                ];
                
                case 'setpoint':
                {
                try {
                let body = sys.bodies.findByObject(msg);
                if (topics[topics.length - 2].toLowerCase() === 'body') {
                if (typeof body === 'undefined') {
                logger.error(new ServiceParameterError(`Cannot set body setPoint. You must supply a valid id, circuit, name, or type for the body`, 'body', 'id', msg.id));
                return;
                }
                let tbody = await sys.board.bodies.setHeatSetpointAsync(body, parseInt(msg.setPoint, 10));
                }
                }
                catch (err) { logger.error(err); }
                
                break;
                }

                Comment


                  #38
                  Michael

                  I repair and upgrade these Easytouch motherboards, if you would like I can send you a motherboard wired to a wall power supply, then you would have communication. There are led's for each switch and an LCD screen which would show many functions, but no intellichem or chlorinator equipment.

                  Or possibly a serial connection thru a open port/website, that way you could see more components (Beyond my brain power)

                  I am only getting the flooding messages from the intellichem, which the hubitat pool controller shows as no present. I hope I crossed a com wire and can straighten that out with the expansion port.

                  Comment


                    #39
                    I did some searching for interface documentation and became aware this project is a reverse engineering endeavor and the reason the chem controller is not controllable now is that nobody has done snooping and analysis. It is not a MQTT interface deficiency, but a lack of data for the low level protocol. The pcl100pl appears to have abstracted it for an easy ip interface. I also get the impression that this aspect of the nodejs project is not on the radar screen, but I could be totally wrong since my search was pretty limited.

                    I suspect that once the chem protocol is decoded then the nodejs project will be updated by the existing contributors and I will not need any equipment to support the integration with HS. SSH connection to the RPi that has the hardware interface is typically the easiest if a need occurs.

                    Comment


                      #40
                      Here is what is spamming the MQTT communication;

                      Click image for larger version

Name:	image_94855.jpg
Views:	46
Size:	30.3 KB
ID:	1428967


                      Thanks to your plugin....

                      Comment


                        #41
                        You can mask the effect of this spam by rejecting this topic in the current version of mcsMQTT that is in the Updater. On the General tab, Inbound Management, Reject Topic row, enter easytouch2-8/state/chlorinators/1/intellichor--60/virtualControllerStatus in the text box. It will then firewall this topic and not affect the realtime response of HS/mcsMQTT. I suspect the other way to overcome it is to do what is necessary to get virtualControllerStatus to no longer be Stopped.

                        Comment


                          #42
                          I got poolController changing settings on the intellichem today, for a few minutes. This was from the dashPanel

                          Watching poolControler running in terminal,
                          when I request a PH setpoint of 7.2 in dashPanel,
                          This is what shows in the poolControl terminal window;

                          [10/28/2020, 10:18:54 AM] info: [10:18:54 AM]
                          192.168.0.106
                          PUT /state/chemController {"id":1,"pHSetpoint":7.200000000000001,
                          "orpSetpoint":700,"alkalinity":25,"calciumHardness":25," cyan uricAcid":0,"saturationIndex":-0.99,
                          "acidTankLevel":0,"orpTankLevel":0}

                          requesting PH of 7.5 shows;

                          10/28/2020, 10:29:40 AM] info: [10:29:40 AM]
                          192.168.0.106 PUT /state/chemController {"id":1,"pHSetpoint":7.599999999999999,
                          "orpSetpoint":660,"alkalinity":25,"calciumHardness":25," cyan uricAcid":0,"saturationIndex":-0.99,
                          "acidTankLevel":0,"orpTankLevel":0}
                          [10/28/2020, 10:29:42 AM] info: [10:29:42 AM]
                          192.168.0.106 PUT /state/chemController {"id":1,"pHSetpoint":7.5,
                          "orpSetpoint":660,"alkalinity":25,"calciumHardness":25," cyan uricAcid":0,"saturationIndex":-0.99,
                          "acidTankLevel":0,"orpTankLevel":0}


                          and requesting 660 ORP shows;

                          [10/28/2020, 10:26:45 AM] info: [10:26:45 AM]
                          192.168.0.106 PUT /state/chemController {"id":1,"pHSetpoint":7.2,"orpSetpoint":660,
                          "alkalinity":25,"calciumHardness":25,"cyanuricAcid":0,"s atur ationIndex":-0.99,
                          "acidTankLevel":0,"orpTankLevel":0}

                          Then it broke again, seems to be a RS485 communication issue. Intellichlor surge board quit completely yesterday, and there appears to be an issue also with the intellichem comunications. (Interesting that Autelis can change setpoints after dashPanel can not, but Autelis needs multiple tries)

                          Bottomline poolController can command PH and ORP setpoints

                          Comment


                            #43
                            Have not tried it via MQTT command?

                            I assume what is showing in your post is an HTTP post request to IP 192.168.0.106/state/chemController with JSON-encoded body. Preferred solution is that the MQTT binding covers this, but if it does not then it is possible for provisions included in mcsMQTT for HTTP just as was done for WLED segments.

                            Comment


                              #44
                              It is too flaky to try MQTT.

                              Was researching how to troubleshoot RS485 signals. Says to connect oscilloscope to the two channels; A-gnd and B-gnd for 5v differential.

                              That might be a clue to the problem, the "JBtek USB to RS485 Converter Adapter ch340T" does not have a ground terminal ??

                              Comment


                                #45
                                Hi, I'm new to Mqtt. I don't have any knowledge on MQTT. I had raspberry pi install aqualinkd so far work very well. I want configure the raspberry pi to homeseer mqtt plugin. So far I'm able communicate from the pi to the plugin that is farthest I can go. Can someone guide me through or give me few sample such as publish temp and turn the pump on and off. Thanks.

                                Comment

                                Working...
                                X