ZXT-120 Aircon zwcfg file help

Hi,
can anyone please help with ZXT-120 zwave climate controller zwcfg config?
i have done some reading, and this is a known issue it seems…

i have got the device configured, and can only get it to turn the aircon on by issuing a ‘temperature’ command.
i can set any temp, and it will go hot or cold based on the temp i set.
im sending the commands using a simple script, however only the temperature ones are being accepted, which is enough to turn it on and set temp only.

alias: “Heat ON”
sequence:

  • service: climate.set_operation_mode
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    operation mode: heat
  • service: climate.set_temperature
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    temperature: 27

The problem is i cant get it to turn OFF, or issue ANY command mode controls, they all fail.(required key not provided) ?
here is the bit from my zwcfg file, which lists these commands and the settings, and below that i will paste my log entries that show the commands failing.
Is there someone with experience deciphering these cfg files able to lend some assistance on what i may be able to change, or input to achieve these commands?

zwcfg file…

log file…

2018-07-19 20:13:52 ERROR (MainThread) [homeassistant.core] Invalid service data for climate.set_operation_mode: extra keys not allowed @ data[‘operation mode’]. Got ‘heat’
required key not provided @ data[‘operation_mode’]. Got None

thanks in advance!

@JasonGrigg
It looks like your formatting is wrong.
Hard to know as you haven’t formatted it in the post properly but in your YAML file it should look more like this:

- service: climate.set_operation_mode
  data:
    entity_id: climate.remotec_zxt120au_heating_1
    operation mode: heat
- service: climate.set_temperature
  data:
    entity_id: climate.remotec_zxt120au_heating_1
    temperature: 27

That said, I would do it with just one command like this

- service: climate.set_temperature
  data:
    entity_id: climate.remotec_zxt120au_heating_1
    operation mode: heat
    temperature: 27

The climate.set_temperature service supports operation_mode.

Test it in the “services” section of your developers tools :slight_smile:

I had issues with the ZXT-120 initially. It can be temperamental. I had to play around with some settings. I really don’t know which one fixed it in the end, but it worked after removing some comments and having the top part of my options.xml file look like this.

<Options xmlns='http://code.google.com/p/open-zwave/'>
  <Option name="logging" value="true" />
  <Option name="Associate" value="true" />
  <Option name="NotifyTransactions" value="true" />
  <Option name="DriverMaxAttempts" value="5" />
  <Option name="SaveConfiguration" value="true" />
  <Option name="RetryTimeout" value="40000" />

Could you please confirm that changing options.xml fixes long discussed zxt12 issue? Does everything still work after a while?

I am unsure if it is a long-term fix, but so far it is the only one that has worked beyond 5 minutes.

Also had another user on a different thread confirm that it works.

Let’s observe it for the time being I bought broad links and they work :100: % without delay and outtakes I also checked xiaomi ac partner and lots of stuff Well broad link still fits best to my needs and I can use it to control my media in the room in the same time

The broadlink is a nice device. It is slightly different device than the ZXT-120 though as it works on WiFi instead of Z-Wave.
Xiaomi stuff is ZigBee as far as I recall and that can be a bit tricky to get working also, but it is getting better.

So far setting the Options have worked. I’ll let you know if it stops again :slight_smile:

I can confirm, after a week, that the ZXT-120 is stable with the changes made to the options.xml file, for those that want to continue using it. Obviously there are other options, but if you want to stick to Z-Wave this is one of the more economic and, when working, simpler options.

Hi @brendan thanks for helping out, I have checked my formatting, its ok, just doesn’t copy here properly…
my issue seems to be it wont accept any operation mode commands, either to set_temperature or set_operation mode…
this…
sequence:

  • service: climate.set_operation_mode
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    operation mode: heat
  • service: climate.set_temperature
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    temperature: 27

gives this error…
2018-08-10 09:02:17 ERROR (MainThread) [homeassistant.core] Invalid service data for climate.set_operation_mode: extra keys not allowed @ data[‘operation mode’]. Got ‘heat’
required key not provided @ data[‘operation_mode’]. Got None

and this…
alias: “Aircon OFF”
sequence:

  • service: climate.set_temperature
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    operation mode: ‘Off’

gives this error…
2018-08-10 09:02:22 ERROR (MainThread) [homeassistant.core] Invalid service data for climate.set_temperature: must contain one of temperature, target_temp_high, target_temp_low… Got {‘entity_id’: ‘climate.remotec_zxt120au_heating_1’, ‘operation mode’: ‘Off’}

or even this…

alias: “Aircon OFF”
sequence:

  • service: climate.set_operation_mode
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    operation mode: ‘Off’

gives this error…

2018-08-10 09:08:44 ERROR (MainThread) [homeassistant.core] Invalid service data for climate.set_operation_mode: extra keys not allowed @ data[‘operation mode’]. Got ‘Off’
required key not provided @ data[‘operation_mode’]. Got None

i think I can see why its not working, I just don’t know how to fix it!

on a positive note, sending a termperature value to the set_temperature DOES work, and will turn on the aircon. but I cannot get it to turn off. I cant get it to accept any value to set_operation_mode.

thoughts?

cheers

nb: I did try what you suggested about sending the heat or off command to set_temperature, and got this…

2018-08-10 08:54:14 ERROR (MainThread) [homeassistant.core] Invalid service data for climate.set_temperature: extra keys not allowed @ data[‘operation mode’]. Got ‘heat’

@JasonGrigg:
I am not at home at the moment, but when I get home I will run a couple of tests in the Services Dev area of Home Assistant and paste some JSON to add to it for you to try.
Your issue does seem to be a formatting issue of some kind.

When you paste code, use the </> icon to change it to the right format. You select the code, click that icon and it should format it correctly…

I had issues with my ZXT-120 with timeout errors, but I have solved that all now.

Also, are you running Sequence in Automation or as a Script. I have a feeling Sequence only works in scripts.

I usually write a Script to perform everything then call the Script in automation. Not sure if this is the best way, but for me it seems the easiest.

@JasonGrigg:

Can you go to Developers section and use Services to call the Service climate.set_temperature with the following data:

{
  "entity_id": "climate.remotec_zxt120au_heating_1",
  "operation_mode": "Heat",
  "temperature": "25"
}

What is the result? Does the red LED on the top of the ZXT-120 flash to indicate a response?

If no response, can you check the ozwlog.txt file in the config folder and see if there is a send and receive responses or if there is a “timeout” message.

Also try this code in the Service Call using service climate.set_operation_mode and see if it turns off from there.

{
"entity_id": "climate.remotec_zxt120au_heating_1",
"operation_mode": "Off"
}

Just trying to see if the device responds manually, then will try the automation again.

hi @brendan ,
that actually worked!
I hadn’t tried it directly from the service call like that before…
both of those commands worked perfectly with no errors at all recorded.
that was actually the first time I have ever had it turn off!
so it seems the problem is somewhere in the script…?
just to be clear, I have just been trying this from a script so far…

test_script:
alias: “Heat ON”
sequence:

  • service: climate.set_operation_mode
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    operation mode: heat
  • service: climate.set_temperature
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    temperature: 27

and that doesn’t work.
seems to be an issue with the yaml, as the JSON works fine…

cheers,
Jas.

I have a script that I call from automation when I leave home.
The script is as follows:

leave_home:
  sequence:
    # Turn off front door
    - service: homeassistant.turn_off
      data:
        entity_id: light.door_lamp_1
        transition: 5
    - delay:
        seconds: 2
    # Turn off living_room
    - service: homeassistant.turn_off
      data:
        entity_id: light.living_room
        transition: 5
    - delay:
        seconds: 2
    # Turn off bedroom main light
    - service: homeassistant.turn_off
      data:
        entity_id: light.bedroom
        transition: 5
    # Turn Off Climate
    - delay: 
        seconds: 10
    - service: climate.set_operation_mode
      data:
        entity_id: climate.remotec_zxt120au_heating_1
        operation_mode: 'Off'

I have that in my script.yaml file.
I then call that script from automation.yaml
I added the delays just as a precaution to ensure no commands collided. They are likely not really necessary with the speed that z-wave works at now.

I then have this as the automation:

 # All off when leaving home
- id: '1531747380622'
  alias: Leaving Home
  trigger:
  - platform: zone
    entity_id: device_tracker.galaxynote_galaxynote
    event: leave
    zone: zone.home
  condition: []
  action:
  - service: script.turn_on
    entity_id: script.leave_home

Maybe that will help you with your yaml.

Just a thought. Try removing the alias line from your script.
See if the below code works for you.

test_script:
  sequence:
    - service: climate.set_operation_mode
      data:
        entity_id: climate.remotec_zxt120au_heating_1
        operation mode: heat
    - service: climate.set_temperature
      data:
        entity_id: climate.remotec_zxt120au_heating_1
        temperature: 27

thanks again for your help, however I still have the same issue when trying to run the command from a script.

heat_off:
sequence:

  • service: climate.set_operation_mode
    data:
    entity_id: climate.remotec_zxt120au_heating_1
    operation mode: “Off”

gives the following…
2018-08-11 08:45:26 ERROR (MainThread) [homeassistant.core] Invalid service data for climate.set_operation_mode: extra keys not allowed @ data[‘operation mode’]. Got ‘Off’
required key not provided @ data[‘operation_mode’]. Got None

I’ve tried single and double inverted commas around ‘off’, and also none.

I do not get this error if I run the command in JSON directly to the service call as you suggested.
So it does appear to be an issue in the yaml script. My formatting is correct, it just gets changed in the paste to here, im not sure how you paste it to keep the formatting in this window to show you.
Its only a problem for the ‘operation_mode’ service, the set_temperature works fine, it’s like it’s not getting exactly the correct string that its looking for in the command from the script.
weirdly enough, it’s happy with the string that comes in via JSON using service call.

can you suggest another method of creating an entity I can use to manually turn this aircon off?
that’s all im really trying to achieve at the moment, manual control.
automation can come later.

cheers

ok… update… I had a think over breakfast…
thought id try simply adding the entity to my front end.
(I hadn’t actually tried that before)
and that gave me full control via drop down, and all functions worked perfectly from there.
so the problem I was having is indeed with that script messing up the command somehow.
ill try it in some automation later and see if it works that way.
cheers!

Just as a thought. Not sure if it is the cut and paste, but make sure the OFF is in single quotes, like ‘Off’ not “Off”.
Also with Operation Mode, again, may be the cut and paste, but make sure it is operation_mode and not a space. I can see that I overlooked that when I pasted and reformatted your code also… My bad.

YAML is very fussy with spacing. A space in the wrong spot can upset a whole page and the error may not always be where the log states it is, it could be higher up.

I put an extra space in one line of code once, took me a good 20 to 30 minutes to finally find it :).

@brendan … you were spot on, thanks!
the ‘off’ was ok, but I didn’t have the underscore in operation_mode
I cant believe I missed that the whole time.
Seems to be working ok now.
still appears a little fiddly with the temp settings, but ill keep playing with it.
thanks again for persevering with this one!
cheers,
Jas.