Skip to content
This repository has been archived by the owner on Oct 4, 2021. It is now read-only.

detailed information about type 0x35 (flags)? #195

Closed
SpaceTeddy opened this issue Oct 5, 2019 · 18 comments
Closed

detailed information about type 0x35 (flags)? #195

SpaceTeddy opened this issue Oct 5, 2019 · 18 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@SpaceTeddy
Copy link
Contributor

SpaceTeddy commented Oct 5, 2019

dear community,

one of my wishes would be to have control about the warm water one-time loading of the ww buffer. This function can be activated by the water tap symbol of the RC20(RF) / ES73 / RC3x controller...
my logging shows, that my RC20RF sends every minute a status command to the boiler which is usually

(19:37:19.169) 0x18 -> Boiler, type 0x35, telegram: 18 08 35 00 00 00 (CRC=1A) #data=2

if I press the water tap button the message changes to:

(19:12:20.932) 0x18 -> Boiler, type 0x35, telegram: 18 08 35 00 22 22 (CRC=7C) #data=2

if I press again to stop the ww heating it sends:

(19:36:18.042) 0x18 -> Boiler, type 0x35, telegram: 18 08 35 00 02 00 (CRC=1E) #data=2

... but sometimes ...

(07:25:42.224) 0x18 -> Boiler, type 0x35, telegram: 18 08 35 00 02 22 (CRC=3C) #data=2

it seems to me, that the first databyte enables or disables the function 0x22=enable, 0x02=disable, but I do not really understand the second databyte, which is sometimes 0x22 and sometimes 0x00?

has someone detailed information about type 0x35?

thanks

@SpaceTeddy SpaceTeddy added the question Further information is requested label Oct 5, 2019
@proddy
Copy link
Collaborator

proddy commented Oct 6, 2019

@SpaceTeddy this was on my feature todo list to implement next. See #94. Perhaps work together with vanbogaertetienne

@SpaceTeddy
Copy link
Contributor Author

SpaceTeddy commented Oct 7, 2019

hi proddy,
I try to create a demo version with the OneTime water heating command, but I fail to add an extra mqtt boiler_cmd Topic. I tried to use the same way like the wwactivation, but in telnet mode, I never receive a mqtt command.
With mqttlog telnet command I see the new Topic:home/ems-esp/boiler_cmd_wwonetime MQTT subscription, but seems that it is not received.
I added also

        // wwOneTime
        if (strcmp(topic, TOPIC_BOILER_CMD_WWONETIME) == 0) {
            if (message[0] == '1' || strcmp(message, "on") == 0) {
                ems_setWarmWaterOnetime(true);
            } else if (message[0] == '0' || strcmp(message, "off") == 0) {
                ems_setWarmWaterOnetime(false);
            }
            return;
        }

in the ems-esp.cpp, but no success.

ems.cpp

/**
 * Activate / De-activate One Time warm water 0x35
 * true = on, false = off
 */
void ems_setWarmWaterOnetime(bool activated) {
    myDebug_P(PSTR("Setting boiler warm water OneTime loading %s"), activated ? "on" : "off");

    _EMS_TxTelegram EMS_TxTelegram = EMS_TX_TELEGRAM_NEW; // create new Tx
    EMS_TxTelegram.timestamp       = millis();            // set timestamp
    EMS_Sys_Status.txRetryCount    = 0;                   // reset retry counter

    EMS_TxTelegram.action        = EMS_TX_TELEGRAM_WRITE;
    EMS_TxTelegram.dest          = EMS_Boiler.device_id;
    EMS_TxTelegram.type          = EMS_TYPE_UBAFlags;
    EMS_TxTelegram.offset        = EMS_OFFSET_UBAParameterWW_wwOneTime;
    EMS_TxTelegram.length        = EMS_MIN_TELEGRAM_LENGTH;
    EMS_TxTelegram.type_validate = EMS_ID_NONE;               // don't validate
    EMS_TxTelegram.dataValue     = (activated ? 0x22 : 0x02); // 0x22 is on, 0x02 is off for RC20RF

    EMS_TxQueue.push(EMS_TxTelegram);
}

Any idea what else to add to create an additional boiler_cmd?
thx

@proddy
Copy link
Collaborator

proddy commented Oct 8, 2019

did you subscribe to it? Look at function MQTTCallback() in ems-esp.cpp

@SpaceTeddy
Copy link
Contributor Author

SpaceTeddy commented Oct 8, 2019

yes, sure. You can check it in my fork.
https://github.com/SpaceTeddy/EMS-ESP/blob/master/src/ems-esp.cpp

myESP.mqttSubscribe(TOPIC_BOILER_CMD_WWONETIME);

@proddy
Copy link
Collaborator

proddy commented Oct 8, 2019

looked briefly at your code additions and it should work. Add some more debug statements, like comment out line 347 in MyESP.cpp

@SpaceTeddy
Copy link
Contributor Author

already done this, but also here no incomming message. It is strange to me, because the other commands like wwactivate work well with raspi mosquitto and MQTT.fx.
Anyhow, I will start a pull request in the next days and hopefully you can xcheck it with your hardware/software setup.

thx

@proddy
Copy link
Collaborator

proddy commented Oct 8, 2019

ok. You could also test with MQTT Explorer (which is what I do) and force a Publish

@SpaceTeddy
Copy link
Contributor Author

checked, but still no success. :(

@proddy
Copy link
Collaborator

proddy commented Oct 9, 2019

I'm testing with your branch and found the problem - not in your code - the number of subscriptions is limited. I'll looking into a fix

@proddy
Copy link
Collaborator

proddy commented Oct 9, 2019

the problem is that there are too many Subscribes filling up the TCP stack on the ESP8266. A workaround for now is to comment on the loop in MQTTCallback() which subscribes to all the Heating Circuits. Until I've fixed #204

@SpaceTeddy
Copy link
Contributor Author

after comment on the mqtt HC loop, the OneTime water loading mqtt commands works fine.
many thanks for your quick check. 👍

@proddy proddy added the enhancement New feature or request label Oct 11, 2019
@proddy
Copy link
Collaborator

proddy commented Oct 13, 2019

beware @SpaceTeddy I made some changes to the MQTT in dev that will break your code. It should be relatively easy to figure out. Let me know if you need help porting it over.

@SpaceTeddy
Copy link
Contributor Author

SpaceTeddy commented Oct 14, 2019

noticed. with the next master release, I will update my fork and my HomeAutomation (fhem). no worries.
thanks again for your strong effort help us all to control our heating systems. Hope thats eats not all your time :) 👍

@proddy
Copy link
Collaborator

proddy commented Oct 14, 2019

np. Please use the dev branch and post your PRs on that instead of master. I looked through your code its looks good. It'll be good if you can push the PR soon so I can finalize the 1.9.2 or even call it 1.10.0 because of your new feature addition.

@proddy
Copy link
Collaborator

proddy commented Oct 28, 2019

@SpaceTeddy how's this feature coming along? It'll be good to add it to the next release as more people are asking.

@SpaceTeddy
Copy link
Contributor Author

SpaceTeddy commented Oct 28, 2019

well, for my system it is working fine since weeks, but I have really some trouble with Git to stay updated with your master or dev branch. If you could tell me a version, I would like to delete my actual fork, will create a new fork and start a pull request. This is based for the RC20RF controller and I would like to double check first, if there is a different behavior, if I press the tap water button at my es73 / RC30.
Hope to init a pull request in the next 2 days...

@proddy
Copy link
Collaborator

proddy commented Oct 28, 2019

you should always fork the dev branch (not a specific version or tag) and keep it in sync with the updates as frequently as you can.

proddy added a commit that referenced this issue Oct 28, 2019
@proddy
Copy link
Collaborator

proddy commented Nov 13, 2019

this was implemented in 1.9.3. If it needs more work please re-open

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants