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

SendRawData does not take effect for Eurotronic Spirit Z Temperature #358

Open
KevinK4711 opened this issue Nov 17, 2019 · 1 comment
Open

Comments

@KevinK4711
Copy link

KevinK4711 commented Nov 17, 2019

Hi,

for some time now I've been playing around with the Eurotronic Spirit Z Thermostat in order to set the measured temperature from an external sensor.

At first parameter 8 of the thermostat has to be set to 0x80 what I did.

After that I tried the following script to change the measured temperature of the device to 12 °C. The expectation was, that the valve opens since the setpoint was set to 19.5°C.

Unfortunately I wasn't able to recognize any success.

var OZW = require('./lib/openzwave-shared.js');
const Buffer = require('buffer').Buffer;

var zwave = new OZW({
    Logging: true,     // enable file logging (OZWLog.txt)
    ConsoleOutput: true // enable console logging
});

zwave.connect('/dev/ttyACM0');

zwave.on('scan complete', function(){
        console.log('Buffer will be written now............................');
        const buffer1 = Buffer.from([
                                         0x31           // COMMAND_CLASS_SENSOR_MULTILEVEL
                                        ,0x05           // SENSOR_MULTILEVEL_REPORT
                                        ,0x01           // Sensor type: TEMPERATURE
                                        ,0x42           // 0010 0010: 001=Decimal  - 00=Celsius - 010=2 Byte
                                        ,0x04,0xB0      // 0AF0 --> 2800 --> 28.00°C.04B0 --> 12°C.
                                        ]);
        console.log('sendRawData will be run now...........................');
        zwave.sendRawData(
                        6                       //nodeID
                        ,'sendTemperature:'     //logText
                        ,49                     //Sensor Multilevel Command Class 0x31
                        ,false                  //sendSecure
                        ,buffer1                //content
                        ,6                      //length bei > 5 ermittelt das Modul automatisch die Length
                        );
        console.log('sendRawData run completed.............................')

        setTimeout(function(){
          console.log('Start to disconnect now............................');
          zwave.disconnect('dev/ttyACM0');
          console.log('ZWAVE disconnect has been run......................')
        }, 15000);
});

The following log was printed related to the SendRawData:

Buffer will be written now............................
sendRawData will be run now...........................
m2019-11-17 12:30:59.880 Detail, Node006, Queuing (Send) sendTemperature: (Node=6): 0x01, 0x0b, 0x31, 0x13, 0x31, 0x05, 0x01, 0x42, 0x04, 0xb0, 0x25, 0x17, 0x27
2019-11-17 12:30:59.881 Detail,
2019-11-17 12:30:59.881 Info, Node006, Sending (Send) message (Callback ID=0x17, Expected Reply=0x13) - sendTemperature: (Node=6): 0x01, 0x0b, 0x31, 0x13, 0x31, 0x05, 0x01, 0x42, 0x04, 0xb0, 0x25, 0x17, 0x27
sendRawData run completed.............................
[39m2019-11-17 12:30:59.882 Info, Node006, Encrypted Flag is 0
2019-11-17 12:31:00.882 Error, Node006, ERROR: Dropping command, expected response not received after 1 attempt(s)
2019-11-17 12:31:00.882 Detail, Node006, Removing current message
2019-11-17 12:31:00.883 Detail, Node006, Notification: Notification - TimeOut

Start to disconnect now............................
m2019-11-17 12:31:14.902 Info, mgr,     Failed to remove driver for controller dev/ttyACM0
2019-11-17 12:31:14.902 Detail, Notification: DriverRemoved
2019-11-17 12:31:14.903 Always, ***************************************************************************
2019-11-17 12:31:14.903 Always, *********************  Cumulative Network Statistics  *********************
2019-11-17 12:31:14.904 Always, *** General
2019-11-17 12:31:14.904 Always, Driver run time: . .  . 0 days, 0 hours, 0 minutes
2019-11-17 12:31:14.905 Always, Frames processed: . . . . . . . . . . . . . . . . . . . . 48
2019-11-17 12:31:14.905 Always, Total messages successfully received: . . . . . . . . . . 48
2019-11-17 12:31:14.906 Always, Total Messages successfully sent: . . . . . . . . . . . . 27
2019-11-17 12:31:14.907 Always, ACKs received from controller:  . . . . . . . . . . . . . 26
2019-11-17 12:31:14.907 Always, *** Errors
2019-11-17 12:31:14.908 Always, Unsolicited messages received while waiting for ACK:  . . 0
2019-11-17 12:31:14.908 Always, Reads aborted due to timeouts:  . . . . . . . . . . . . . 0
2019-11-17 12:31:14.908 Always, Bad checksum errors:  . . . . . . . . . . . . . . . . . . 0
2019-11-17 12:31:14.909 Always, CANs received from controller:  . . . . . . . . . . . . . 0
2019-11-17 12:31:14.909 Always, NAKs received from controller:  . . . . . . . . . . . . . 0
2019-11-17 12:31:14.910 Always, Out of frame data flow errors:  . . . . . . . . . . . . . 0
2019-11-17 12:31:14.910 Always, Messages retransmitted: . . . . . . . . . . . . . . . . . 0
2019-11-17 12:31:14.910 Always, Messages dropped and not delivered: . . . . . . . . . . . 1
2019-11-17 12:31:14.911 Always, ***************************************************************************
2019-11-17 12:31:14.911 Info, Saving Cache
2019-11-17 12:31:14.913 Info, Node001, Cache Save for Node 1 as its QueryStage_CacheLoad
2019-11-17 12:31:14.915 Info, Node002, Skipping Cache Save for Node 2 as its not past QueryStage_CacheLoad
2019-11-17 12:31:14.916 Info, Node005, Skipping Cache Save for Node 5 as its not past QueryStage_CacheLoad
2019-11-17 12:31:14.922 Info, Node006, Cache Save for Node 6 as its QueryStage_CacheLoad
2019-11-17 12:31:14.950 Info, Stopping DNSThread
ZWAVE disconnect has been run......................

Of course I've scanned a lot of different forums(e.g. iobroker, fhem, zwave, various github repos, ...) to gather any information that might help. Related to the output above I've just found, that the termostat won't respond to the command in any case.

Has anybody an idea why the sendRawData function does not work?
How can the command be changed to not expect any response from the device?

@Fishwaldo
Copy link
Member

If you get timeouts it usually means the device did not accept it (malformed, incorrect, unsupported etc). There is no way for the protocol to indicate this back to the controller, hence it appears as a timeout.

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

No branches or pull requests

2 participants