Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Week programm get/set not available #34

Closed
StephanBeutel opened this issue Jan 20, 2017 · 14 comments
Closed

Week programm get/set not available #34

StephanBeutel opened this issue Jan 20, 2017 · 14 comments
Assignees

Comments

@StephanBeutel
Copy link

StephanBeutel commented Jan 20, 2017

Hi,
I would like to read the actual used week program of my Homematic wall thermostat (HM-TC-IT-WM-W-EU) and also choose another week program. At the moment I use a direct XMP-RPC communication for that purpose, but it would be good to see the selected week program in ioBroker and also have the possibility to set another program.

These requests I use to communicate over XML-RPC with the CCU2:

To get the week program a POST request to the CCU2 XML-RPC port with this data:

<methodCall><methodName>getParamset</methodName><params><param><value><string>NEQ0935035</string></value></param><param><value><string>MASTER</string></value></param></params></methodCall>

Then I have to get the value from WEEK_PROGRAM_POINTER.

To select another configured week program I use this data in the POST request:

<methodCall><methodName>putParamset</methodName><params><param><value><string>NEQ0935035</string></value></param><param><value><string>MASTER</string></value></param><param><value><struct><member><name>WEEK_PROGRAM_POINTER</name><value><i4>2</i4></value></member></struct></value></param></params></methodCall>

The Homematic wall thermostat has 3 buildin week programs. The internal count goes from 0-2.
So to select the second week program the <i4> field must contain the '1'.

BR,
Stephan

@GermanBluefox
Copy link
Contributor

I am not sure if this rather specific feature will be implemented. That means, that adapter must extra poll for such a devices... You CCU can goes down under requests.

@Apollon77
Copy link
Contributor

An Idea would be to enhance hm-rpc or hm-rega with a "sendMessage" mechanism to allow such queries by javascript Scripts. SO each one can control when whe wants to send these requests and nothing will be automatic.
I also would like to have this for Thermostats to change between heating and cooling mode ...

What about this?
So Summary: Generic "getParamSet" und "putParamset" calls per sendTo ...

@GermanBluefox
Copy link
Contributor

Good idea. Can you implement it ? :)

@Apollon77
Copy link
Contributor

Planned when I find time for it :-)

@Apollon77 Apollon77 self-assigned this Nov 23, 2017
@GermanBluefox
Copy link
Contributor

GermanBluefox commented Nov 23, 2017 via email

@foxriver76
Copy link
Collaborator

A sendTo mechanism like this is already implemented, but we could make it more user friendly. Currently it is working, e. g. with

sendTo('hm-rpc.0', 'getParamset', {ID: 'OEQ1880303', paramType: 'MASTER'}, res => {
    log(JSON.stringify(res));
});

which results in the following response:

{"result":{"ADAPTIVE_REGULATION":2,"BACKLIGHT_ON_TIME":10,"BOOST_AFTER_WINDOW_OPEN":false,"BOOST_POSITION":80,"BOOST_TIME_PERIOD":1,"BURST_RX":true,"BUTTON_LOCK":false,"BUTTON_RESPONSE_WITHOUT_BACKLIGHT":false,"CYCLIC_INFO_MSG":true,"CYCLIC_INFO_MSG_DIS":0,"DAYLIGHT_SAVING_TIME":true,"DECALCIFICATION_TIME":630,"DECALCIFICATION_WEEKDAY":0,"DISPLAY_INFORMATION":0,"ENDTIME_FRIDAY_1":1440,"ENDTIME_FRIDAY_10":1440,"ENDTIME_FRIDAY_11":1440,"ENDTIME_FRIDAY_12":1440,"ENDTIME_FRIDAY_13":1440,"ENDTIME_FRIDAY_2":540,"ENDTIME_FRIDAY_3":1020,"ENDTIME_FRIDAY_4":1320,"ENDTIME_FRIDAY_5":1440,"ENDTIME_FRIDAY_6":1440,"ENDTIME_FRIDAY_7":1440,"ENDTIME_FRIDAY_8":1440,"ENDTIME_FRIDAY_9":1440,"ENDTIME_MONDAY_1":1440,"ENDTIME_MONDAY_10":1440,"ENDTIME_MONDAY_11":1440,"ENDTIME_MONDAY_12":1440,"ENDTIME_MONDAY_13":1440,"ENDTIME_MONDAY_2":540,"ENDTIME_MONDAY_3":1020,"ENDTIME_MONDAY_4":1320,"ENDTIME_MONDAY_5":1440,"ENDTIME_MONDAY_6":1440,"ENDTIME_MONDAY_7":1440,"ENDTIME_MONDAY_8":1440,"ENDTIME_MONDAY_9":1440,"ENDTIME_SATURDAY_1":1440,"ENDTIME_SATURDAY_10":1440,"ENDTIME_SATURDAY_11":1440,"ENDTIME_SATURDAY_12":1440,"ENDTIME_SATURDAY_13":1440,"ENDTIME_SATURDAY_2":1320,"ENDTIME_SATURDAY_3":1440,"ENDTIME_SATURDAY_4":1440,"ENDTIME_SATURDAY_5":1440,"ENDTIME_SATURDAY_6":1440,"ENDTIME_SATURDAY_7":1440,"ENDTIME_SATURDAY_8":1440,"ENDTIME_SATURDAY_9":1440,"ENDTIME_SUNDAY_1":1440,"ENDTIME_SUNDAY_10":1440,"ENDTIME_SUNDAY_11":1440,"ENDTIME_SUNDAY_12":1440,"ENDTIME_SUNDAY_13":1440,"ENDTIME_SUNDAY_2":1320,"ENDTIME_SUNDAY_3":1440,"ENDTIME_SUNDAY_4":1440,"ENDTIME_SUNDAY_5":1440,"ENDTIME_SUNDAY_6":1440,"ENDTIME_SUNDAY_7":1440,"ENDTIME_SUNDAY_8":1440,"ENDTIME_SUNDAY_9":1440,"ENDTIME_THURSDAY_1":1440,"ENDTIME_THURSDAY_10":1440,"ENDTIME_THURSDAY_11":1440,"ENDTIME_THURSDAY_12":1440,"ENDTIME_THURSDAY_13":1440,"ENDTIME_THURSDAY_2":540,"ENDTIME_THURSDAY_3":1020,"ENDTIME_THURSDAY_4":1320,"ENDTIME_THURSDAY_5":1440,"ENDTIME_THURSDAY_6":1440,"ENDTIME_THURSDAY_7":1440,"ENDTIME_THURSDAY_8":1440,"ENDTIME_THURSDAY_9":1440,"ENDTIME_TUESDAY_1":1440,"ENDTIME_TUESDAY_10":1440,"ENDTIME_TUESDAY_11":1440,"ENDTIME_TUESDAY_12":1440,"ENDTIME_TUESDAY_13":1440,"ENDTIME_TUESDAY_2":540,"ENDTIME_TUESDAY_3":1020,"ENDTIME_TUESDAY_4":1320,"ENDTIME_TUESDAY_5":1440,"ENDTIME_TUESDAY_6":1440,"ENDTIME_TUESDAY_7":1440,"ENDTIME_TUESDAY_8":1440,"ENDTIME_TUESDAY_9":1440,"ENDTIME_WEDNESDAY_1":1440,"ENDTIME_WEDNESDAY_10":1440,"ENDTIME_WEDNESDAY_11":1440,"ENDTIME_WEDNESDAY_12":1440,"ENDTIME_WEDNESDAY_13":1440,"ENDTIME_WEDNESDAY_2":540,"ENDTIME_WEDNESDAY_3":1020,"ENDTIME_WEDNESDAY_4":1320,"ENDTIME_WEDNESDAY_5":1440,"ENDTIME_WEDNESDAY_6":1440,"ENDTIME_WEDNESDAY_7":1440,"ENDTIME_WEDNESDAY_8":1440,"ENDTIME_WEDNESDAY_9":1440,"GLOBAL_BUTTON_LOCK":false,"I_VALUE_EXTERN":15,"I_VALUE_INTERN":18,"LOCAL_RESET_DISABLE":false,"LOW_BAT_LIMIT":2.1,"MANU_MODE_PRIORITIZATION":1,"MIN_MAX_VALUE_NOT_RELEVANT_FOR_MANU_MODE":false,"MODUS_BUTTON_LOCK":false,"PARTY_MODE_PRIORITIZATION":1,"P_START_VALUE_EXTERN":30,"P_START_VALUE_INTERN":44,"P_VALUE_EXTERN":30,"P_VALUE_INTERN":33,"SHOW_WEEKDAY":false,"TEMPERATUREFALL_MODUS":0,"TEMPERATUREFALL_VALUE":1.4,"TEMPERATUREFALL_WINDOW_OPEN":12,"TEMPERATUREFALL_WINDOW_OPEN_TIME_PERIOD":0,"TEMPERATURE_COMFORT":21,"TEMPERATURE_FRIDAY_1":17,"TEMPERATURE_FRIDAY_10":17,"TEMPERATURE_FRIDAY_11":17,"TEMPERATURE_FRIDAY_12":17,"TEMPERATURE_FRIDAY_13":17,"TEMPERATURE_FRIDAY_2":21,"TEMPERATURE_FRIDAY_3":17,"TEMPERATURE_FRIDAY_4":21,"TEMPERATURE_FRIDAY_5":17,"TEMPERATURE_FRIDAY_6":17,"TEMPERATURE_FRIDAY_7":17,"TEMPERATURE_FRIDAY_8":17,"TEMPERATURE_FRIDAY_9":17,"TEMPERATURE_LOWERING":17,"TEMPERATURE_MAXIMUM":28,"TEMPERATURE_MINIMUM":12,"TEMPERATURE_MONDAY_1":17,"TEMPERATURE_MONDAY_10":17,"TEMPERATURE_MONDAY_11":17,"TEMPERATURE_MONDAY_12":17,"TEMPERATURE_MONDAY_13":17,"TEMPERATURE_MONDAY_2":21,"TEMPERATURE_MONDAY_3":17,"TEMPERATURE_MONDAY_4":21,"TEMPERATURE_MONDAY_5":17,"TEMPERATURE_MONDAY_6":17,"TEMPERATURE_MONDAY_7":17,"TEMPERATURE_MONDAY_8":17,"TEMPERATURE_MONDAY_9":17,"TEMPERATURE_OFFSET":7,"TEMPERATURE_SATURDAY_1":17,"TEMPERATURE_SATURDAY_10":17,"TEMPERATURE_SATURDAY_11":17,"TEMPERATURE_SATURDAY_12":17,"TEMPERATURE_SATURDAY_13":17,"TEMPERATURE_SATURDAY_2":21,"TEMPERATURE_SATURDAY_3":17,"TEMPERATURE_SATURDAY_4":17,"TEMPERATURE_SATURDAY_5":17,"TEMPERATURE_SATURDAY_6":17,"TEMPERATURE_SATURDAY_7":17,"TEMPERATURE_SATURDAY_8":17,"TEMPERATURE_SATURDAY_9":17,"TEMPERATURE_SUNDAY_1":17,"TEMPERATURE_SUNDAY_10":17,"TEMPERATURE_SUNDAY_11":17,"TEMPERATURE_SUNDAY_12":17,"TEMPERATURE_SUNDAY_13":17,"TEMPERATURE_SUNDAY_2":21,"TEMPERATURE_SUNDAY_3":17,"TEMPERATURE_SUNDAY_4":17,"TEMPERATURE_SUNDAY_5":17,"TEMPERATURE_SUNDAY_6":17,"TEMPERATURE_SUNDAY_7":17,"TEMPERATURE_SUNDAY_8":17,"TEMPERATURE_SUNDAY_9":17,"TEMPERATURE_THURSDAY_1":17,"TEMPERATURE_THURSDAY_10":17,"TEMPERATURE_THURSDAY_11":17,"TEMPERATURE_THURSDAY_12":17,"TEMPERATURE_THURSDAY_13":17,"TEMPERATURE_THURSDAY_2":21,"TEMPERATURE_THURSDAY_3":17,"TEMPERATURE_THURSDAY_4":21,"TEMPERATURE_THURSDAY_5":17,"TEMPERATURE_THURSDAY_6":17,"TEMPERATURE_THURSDAY_7":17,"TEMPERATURE_THURSDAY_8":17,"TEMPERATURE_THURSDAY_9":17,"TEMPERATURE_TUESDAY_1":17,"TEMPERATURE_TUESDAY_10":17,"TEMPERATURE_TUESDAY_11":17,"TEMPERATURE_TUESDAY_12":17,"TEMPERATURE_TUESDAY_13":17,"TEMPERATURE_TUESDAY_2":21,"TEMPERATURE_TUESDAY_3":17,"TEMPERATURE_TUESDAY_4":21,"TEMPERATURE_TUESDAY_5":17,"TEMPERATURE_TUESDAY_6":17,"TEMPERATURE_TUESDAY_7":17,"TEMPERATURE_TUESDAY_8":17,"TEMPERATURE_TUESDAY_9":17,"TEMPERATURE_WEDNESDAY_1":17,"TEMPERATURE_WEDNESDAY_10":17,"TEMPERATURE_WEDNESDAY_11":17,"TEMPERATURE_WEDNESDAY_12":17,"TEMPERATURE_WEDNESDAY_13":17,"TEMPERATURE_WEDNESDAY_2":21,"TEMPERATURE_WEDNESDAY_3":17,"TEMPERATURE_WEDNESDAY_4":21,"TEMPERATURE_WEDNESDAY_5":17,"TEMPERATURE_WEDNESDAY_6":17,"TEMPERATURE_WEDNESDAY_7":17,"TEMPERATURE_WEDNESDAY_8":17,"TEMPERATURE_WEDNESDAY_9":17,"VALVE_ERROR_RUN_POSITION":15,"VALVE_MAXIMUM_POSITION":100,"VALVE_OFFSET":0},"error":null}

@foxriver76
Copy link
Collaborator

If the implemented mechanism satisfies the needs of this issue, I would like to provide some examples in the readme and maybe add some debug logging on received messages. What are your thoughts of this @Apollon77

@Apollon77
Copy link
Contributor

ooooh already there ... did not noticed ... is "putParamset" already existing? I think it was mainly about this :-)

@Apollon77
Copy link
Contributor

ahhhh ... it works implicitely :-) now saw it :-) ... but no idea how to spport a putParamset throught this.

Get should be covered

@StephanBeutel
Copy link
Author

I created a tablet app for my homecontrol and use socketio for the communication.
So an internal sendTo is not useful for me.

To set a value I use this code(snippet):
this._socket.emit('setState', id, value, callback);

Only the week programms I read/set over the native CCU2 XMPRPC API as there is no datapoint available in ioBroker like for the other values:
var id = "hm-rpc" + instaceId + subId + ".SET_TEMPERATURE";

@Apollon77
Copy link
Contributor

sending messages should also be available using socket.io! and in worst case you could create custom states to pass it through and have own scripts do the logic

@foxriver76
Copy link
Collaborator

@Apollon77 I just played around with the mechanism a little bit, I will take a deeper look into it soon, to see if its possible to make a putParamset call with the implemented code, otherwise we could extend it a little bit, I hope. ;-)

@foxriver76
Copy link
Collaborator

putParamset example:

sendTo('hm-rpc.0', 'putParamset', {ID: 'OEQ1880303', 
    paramType: 'MASTER', params: {'ENDTIME_FRIDAY_1': 700}}, res => {
    log(JSON.stringify(res));
});

@Apollon77
Copy link
Contributor

cool ... so put in documentation and issue done? ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants