Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Information about specific Z-Wave devices

Moderator: leecollings

Post Reply
AMDomoticz
Posts: 6
Joined: Tuesday 09 March 2021 16:27
Target OS: NAS (Synology & others)
Domoticz version: 2021.1
Location: NL
Contact:

Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by AMDomoticz »

Air Quality Sensor / Luftgütesensor Z-Wave Plus
Art.no: 700088
EAN: 42 600 127 112 64
Size: (BxHxT): 68 x 68 x 17 mm

Supplier:
EUROtronic

Website:
https://eurotronic.org/produkte/sensore ... etesensor/

Function:
The product provides comprehensive information on indoor air quality.
Returns the following values:
- VOC value (volatile organic compounds) in ppm
- CO2 value (as CO2 equivalent) in ppm
- Temperature (°C) and humidity (%)
- Dew point (°C)

Z-Wave+ AKA GEN5
Supports Z-Wave Plus S2 security (encryption)

Rebranding:
-

Device Library from http://www.pepper1.net
Search Google with [site:pepper1.net EUROtronic]
http://www.openzwave.com/device-database/0148:0001:0005

Manuals from manuals.zwaveeurope.com and doc.eedomus.com:
manuals.zwaveeurope.com: Search google with [site:manuals.zwaveeurope.com EUROtronic]
doc.eedomus.com: Search google with [site:doc.eedomus.com EUROtronic]

Manuals:
https://eurotronic.org/wp-content/uploa ... DA-Web.pdf
https://eurotronic.org/wp-content/uploa ... DA-Web.pdf
Data Sheet:
https://eurotronic.org/wp-content/uploa ... E-EN-1.pdf
Declaration of Conformity:
https://eurotronic.org/wp-content/uploa ... e-Plus.pdf

Domoticz experience
Hardware:
Sample:
Luftgütesensor Z-Wave Plus (VOC-Sensor).jpg
Luftgütesensor Z-Wave Plus (VOC-Sensor).jpg (13.49 KiB) Viewed 3142 times
Remarks:
1 operational, no polling needed
secured connection

Configuration:
Configuration-Luftgütesensor Z-Wave Plus (VOC-Sensor).jpg
Configuration-Luftgütesensor Z-Wave Plus (VOC-Sensor).jpg (158.5 KiB) Viewed 3142 times
Devices
Yes, the VOC device is missing; EUROtronic had no answer for this issue...
Devices-Luftgütesensor Z-Wave Plus (VOC-Sensor).jpg
Devices-Luftgütesensor Z-Wave Plus (VOC-Sensor).jpg (99.06 KiB) Viewed 3142 times
zwcfg_0xaaaaaaa.xml sample:

Code: Select all

    <Node id="6" name="Woonkamer" location="" basic="4" generic="33" specific="1" roletype="5" devicetype="3328" nodetype="0" type="Routing Multilevel Sensor" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="100000" version="4" secured="true" configrevision="2" query_stage="Complete">
        <Neighbors>11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</Neighbors>
        <Manufacturer id="148" name="EUROtronic">
            <Product type="5" id="1" name="Air Quality Sensor">
                <MetaData>
                    <MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0148:0001:0005</MetaDataItem>
                    <MetaDataItem name="ZWProductPage" type="5" id="1">https://eurotronic.org/produkte/sensoren/luftguetesensor/</MetaDataItem>
                    <MetaDataItem name="ProductPic">images/eurotronic/eur_airquality.png</MetaDataItem>
                    <MetaDataItem name="Description">This Z-Wave sensor provides comprehensive information on indoor air quality. • Multicolor LED for signalling ventilation recommendations • Returns the following values: - VOC value (volatile organic compounds) in ppm - CO2 value (as CO2 equivalent) in ppm - Temperature (°C) - Humidity (%) - Dew point (°C) • Supports Z-Wave Plus S2 security (encryption) • Z-Wave repeater function • Operation with plug-in power supply unit</MetaDataItem>
                    <MetaDataItem name="ProductManual">https://eurotronic.org/wp-content/uploads/2020/02/LGS-Z-Wave-Plus_BDA_web_EN-1.pdf</MetaDataItem>
                    <MetaDataItem name="InclusionDescription">Start Inclusion mode of your primary Z-Wave Controller. Press the network button three times within 1 second.</MetaDataItem>
                    <MetaDataItem name="ExclusionDescription">Start Exclusion mode of your primary Z-Wave Controller. Press the network button three times within 1 second.</MetaDataItem>
                    <MetaDataItem name="ResetDescription">Please use this procedure only when the network primary controller is missing or otherwise inoperable. Press and hold the network button for at least 10 seconds. The Air Quality Sensor Z-Wave Plus will indicate the reset blinking pattern once the reset is completed.</MetaDataItem>
                    <MetaDataItem name="FrequencyName" type="5" id="1">CEPT (Europe)</MetaDataItem>
                    <MetaDataItem name="Name">Air Quality Sensor</MetaDataItem>
                    <ChangeLog>
                        <Entry author="[email protected]" date="13 Mar 2020" revision="2">Initial Metadata Import from https://eurotronic.org/wp-content/uploads/2020/02/LGS-Z-Wave-Plus_BDA_web_EN-1.pdf/</Entry>
                    </ChangeLog>
                </MetaData>
            </Product>
        </Manufacturer>
        <CommandClasses>
            <CommandClass id="32" name="COMMAND_CLASS_BASIC">
                <Compatibility>
                    <Mapping>49</Mapping>
                </Compatibility>
                <State>
                    <AfterMark>true</AfterMark>
                    <CCVersion>1</CCVersion>
                </State>
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                </State>
                <Instance index="1" />
                <Value type="bool" genre="user" instance="1" index="0" label="Sensor" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False">
                    <Help>Binary Sensor State</Help>
                </Value>
            </CommandClass>
            <CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL">
                <Compatibility />
                <State>
                    <CCVersion>10</CCVersion>
                    <Encrypted>true</Encrypted>
                </State>
                <Instance index="1" />
                <Value type="decimal" genre="user" instance="1" index="1" label="Air Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="22.8">
                    <Help>Air Temperature Sensor Value</Help>
                </Value>
                <Value type="decimal" genre="user" instance="1" index="5" label="Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="42">
                    <Help>Humidity Sensor Value</Help>
                </Value>
                <Value type="decimal" genre="user" instance="1" index="11" label="Dew Point" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="9.4">
                    <Help>Dew Point Sensor Value</Help>
                </Value>
                <Value type="decimal" genre="user" instance="1" index="17" label="Carbon Dioxide" units="Ppm" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="673">
                    <Help>Carbon Dioxide Sensor Value</Help>
                </Value>
                <Value type="decimal" genre="user" instance="1" index="39" label="Volatile Organic Compound" units="Ppm" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.115">
                    <Help>Volatile Organic Compound Sensor Value</Help>
                </Value>
                <Value type="list" genre="system" instance="1" index="256" label="Air Temperature Units" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Air Temperature Sensor Available Units</Help>
                    <Item label="Celsius" value="0" />
                    <Item label="Fahrenheit" value="1" />
                </Value>
                <Value type="list" genre="system" instance="1" index="260" label="Humidity Units" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Humidity Sensor Available Units</Help>
                    <Item label="Percent" value="0" />
                    <Item label="Absolute Humidity" value="1" />
                </Value>
                <Value type="list" genre="system" instance="1" index="266" label="Dew Point Units" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Dew Point Sensor Available Units</Help>
                    <Item label="Celsius" value="0" />
                    <Item label="Fahrenheit" value="1" />
                </Value>
                <Value type="list" genre="system" instance="1" index="272" label="Carbon Dioxide Units" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Carbon Dioxide Sensor Available Units</Help>
                    <Item label="Parts Per Million" value="0" />
                </Value>
                <Value type="list" genre="system" instance="1" index="294" label="Volatile Organic Compound Units" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Volatile Organic Compound Sensor Available Units</Help>
                    <Item label="Parts per Million" value="1" />
                </Value>
            </CommandClass>
            <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <Encrypted>true</Encrypted>
                </State>
                <Instance index="1" />
            </CommandClass>
            <CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                    <StaticRequests>2</StaticRequests>
                </State>
                <Instance index="1" />
                <Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1">
                    <Help>ZWave+ Version Supported on the Device</Help>
                </Value>
                <Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="3328">
                    <Help>Icon File to use for the Installer Application</Help>
                </Value>
                <Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="3328">
                    <Help>Icon File to use for the User Application</Help>
                </Value>
            </CommandClass>
            <CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <Encrypted>true</Encrypted>
                    <StaticRequests>4</StaticRequests>
                </State>
                <Instance index="1" />
                <Value type="byte" genre="config" instance="1" index="1" label="Temperature on Change Reporting" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="50" value="1">
                    <Help>0: No on change reporting (only time-based reports) 1-50: report if temperature changed by delta = 0,1°C - 5,0°C Default: 5</Help>
                </Value>
                <Value type="byte" genre="config" instance="1" index="2" label="Humidity on Change Reporting" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="10" value="1">
                    <Help>0: No on change reporting (only time-based reports) 1-10: report if humidity changed by delta = 1% ...10% Default: 5</Help>
                </Value>
                <Value type="list" genre="config" instance="1" index="3" label="Temperature Scale" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="0" size="1">
                    <Help>Temperature in Degrees Celcius Temperature in Degrees Fahrenheit Default: Temperature in Degrees Celcius</Help>
                    <Item label="Celsius" value="0" />
                    <Item label="Fahrenheit" value="1" />
                </Value>
                <Value type="list" genre="config" instance="1" index="4" label="Temperature Resolution" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="1" size="1">
                    <Help>No resolution (example 22°C) 1/10 resolution (example 22.3°C) 1/100 resolution (example 22.35°C) Default: No resolution (example 22°C)</Help>
                    <Item label="No resolution (example 22°C)" value="0" />
                    <Item label="1/10 resolution (example 22.3°C)" value="1" />
                    <Item label="1/100 resolution (example 22.35°C)" value="2" />
                </Value>
                <Value type="list" genre="config" instance="1" index="5" label="Humidity Resolution" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="0" size="1">
                    <Help>No resolution (example 33%) 1/10 resolution (example 33.4%) 1/100 resolution (example 33.45% Default: No resolution (example 33%</Help>
                    <Item label="No resolution (example 33%)" value="0" />
                    <Item label="1/10 resolution (example 33.4%)" value="1" />
                    <Item label="1/100 resolution (example 33.45%)" value="2" />
                </Value>
                <Value type="byte" genre="config" instance="1" index="6" label="VOC on Change Reporting" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="10" value="1">
                    <Help>0: No on change reporting (only time-based reports) 1-10: report if VOC reading changed by 100ppb - 1000ppb Default: 5</Help>
                </Value>
                <Value type="byte" genre="config" instance="1" index="7" label="CO2eq on Change Reporting" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="10" value="1">
                    <Help>0: No on change reporting (only time-based reports) 1-10: report if CO2eq reading changed by 100ppm - 1000ppm Default: 5</Help>
                </Value>
                <Value type="list" genre="config" instance="1" index="8" label="Air quality indication via LED" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="1" size="1">
                    <Help>0: No air quality indication via LEDs 1: Indicate measuered air quality via LEDs Default: 1</Help>
                    <Item label="No air quality indication via LEDs" value="0" />
                    <Item label="Indicate measuered air quality via LEDs" value="1" />
                </Value>
            </CommandClass>
            <CommandClass id="113" name="COMMAND_CLASS_NOTIFICATION">
                <Compatibility />
                <State>
                    <CCVersion>8</CCVersion>
                    <Encrypted>true</Encrypted>
                    <StaticRequests>0</StaticRequests>
                </State>
                <Instance index="1" />
                <Value type="list" genre="user" instance="1" index="13" label="Home Health" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="2">
                    <Help>Home Health Alerts</Help>
                    <Item label="Clear" value="0" />
                    <Item label="Volatile Organic Compound Level" value="6" />
                </Value>
                <Value type="byte" genre="user" instance="1" index="256" label="Previous Event Cleared" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
                    <Help>Previous Event that was sent</Help>
                </Value>
                <Value type="list" genre="user" instance="1" index="268" label="Pollution Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="4">
                    <Help>The Pollution Level Detected</Help>
                    <Item label="Volatile Organic Compound Level" value="6" />
                    <Item label="Volatile Organic Compound Level" value="6" />
                    <Item label="Volatile Organic Compound Level" value="6" />
                    <Item label="Volatile Organic Compound Level" value="6" />
                </Value>
            </CommandClass>
            <CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <Encrypted>true</Encrypted>
                    <StaticRequests>0</StaticRequests>
                </State>
                <Instance index="1" />
                <Value type="int" genre="system" instance="1" index="0" label="Loaded Config Revision" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
                    <Help>Revision of the Config file currently loaded</Help>
                </Value>
                <Value type="int" genre="system" instance="1" index="1" label="Config File Revision" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="2">
                    <Help>Revision of the Config file on the File System</Help>
                </Value>
                <Value type="int" genre="system" instance="1" index="2" label="Latest Available Config File Revision" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="2">
                    <Help>Latest Revision of the Config file available for download</Help>
                </Value>
                <Value type="string" genre="system" instance="1" index="3" label="Device ID" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="">
                    <Help>Manufacturer Specific Device ID/Model</Help>
                </Value>
                <Value type="string" genre="system" instance="1" index="4" label="Serial Number" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="">
                    <Help>Device Serial Number</Help>
                </Value>
            </CommandClass>
            <CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <Encrypted>true</Encrypted>
                </State>
                <Instance index="1" />
                <Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>Output RF PowerLevel</Help>
                    <Item label="Normal" value="0" />
                    <Item label="-1dB" value="1" />
                    <Item label="-2dB" value="2" />
                    <Item label="-3dB" value="3" />
                    <Item label="-4dB" value="4" />
                    <Item label="-5dB" value="5" />
                    <Item label="-6dB" value="6" />
                    <Item label="-7dB" value="7" />
                    <Item label="-8dB" value="8" />
                    <Item label="-9dB" value="9" />
                </Value>
                <Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
                    <Help>Timeout till the PowerLevel is reset to Normal</Help>
                </Value>
                <Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0">
                    <Help>Apply the Output PowerLevel and Timeout Values</Help>
                </Value>
                <Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
                    <Help>Node to Perform a test against</Help>
                </Value>
                <Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>PowerLevel to use for the Test</Help>
                    <Item label="Normal" value="0" />
                    <Item label="-1dB" value="1" />
                    <Item label="-2dB" value="2" />
                    <Item label="-3dB" value="3" />
                    <Item label="-4dB" value="4" />
                    <Item label="-5dB" value="5" />
                    <Item label="-6dB" value="6" />
                    <Item label="-7dB" value="7" />
                    <Item label="-8dB" value="8" />
                    <Item label="-9dB" value="9" />
                </Value>
                <Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0">
                    <Help>How Many Messages to send to the Node for the Test</Help>
                </Value>
                <Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0">
                    <Help>Perform a PowerLevel Test against the a Node</Help>
                </Value>
                <Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0">
                    <Help>Get the results of the latest PowerLevel Test against a Node</Help>
                </Value>
                <Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
                    <Help>The Current Status of the last PowerNode Test Executed</Help>
                    <Item label="Failed" value="0" />
                    <Item label="Success" value="1" />
                    <Item label="In Progress" value="2" />
                </Value>
                <Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0">
                    <Help>Number of Messages successfully Acked by the Target Node</Help>
                </Value>
            </CommandClass>
            <CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <Encrypted>true</Encrypted>
                    <StaticRequests>0</StaticRequests>
                </State>
                <Instance index="1" />
                <Associations num_groups="2">
                    <Group index="1" max_associations="1" label="Lifeline" auto="true">
                        <Node id="1" />
                    </Group>
                    <Group index="2" max_associations="5" label="Temperature" auto="false" />
                </Associations>
            </CommandClass>
            <CommandClass id="134" name="COMMAND_CLASS_VERSION">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <Encrypted>true</Encrypted>
                    <StaticRequests>0</StaticRequests>
                </State>
                <Instance index="1" />
                <Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3">
                    <Help>Z-Wave Library Version</Help>
                </Value>
                <Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="5.03">
                    <Help>Z-Wave Protocol Version</Help>
                </Value>
                <Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.01">
                    <Help>Application Version</Help>
                </Value>
            </CommandClass>
            <CommandClass id="152" name="COMMAND_CLASS_SECURITY">
                <Compatibility />
                <State>
                    <CCVersion>1</CCVersion>
                    <InNif>true</InNif>
                </State>
                <Instance index="1" />
                <Value type="bool" genre="system" instance="1" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True">
                    <Help>Is Communication with Device Encrypted</Help>
                </Value>
            </CommandClass>
        </CommandClasses>
    </Node>
Conclusion
As far as I know the only An other sensor that promises VOC output. Unfortunately, this is not (yet) visible in Domoticz.
Expensive? Hmmm, viewtopic.php?t=33377
rrozema
Posts: 470
Joined: Thursday 26 October 2017 13:37
Target OS: Raspberry Pi / ODroid
Domoticz version: beta
Location: Delft
Contact:

Re: Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by rrozema »

Do you happen to own an Eurotronic Spirit Z too? If so, would you be so kind as to test if this air quality sensor can serve as an external sensor for the spirit-Z?

To use an external sensor, you would have to go into the spirit-Z's configuration and change the value on option "8. Measured Temperature Offset:" to the exact value of 128, then click 'Apply configuration'. Next click the 'Groups' tab to show the association groups for your z-wave devices. In that list, find your air quality sensor. At least one "+"-sign should be next to it. (Possibly more are available, but the xml file you provided above does not list any association groups,) Click the "+" for the lifeline-group (probably the left most one). Now enter the z-wave node id of the spirit-Z device.

If all is well, there should now be either a "1.1" or a "1" (= the ID for your controller) behind your air sensor, plus the ID for the Spirit-Z. You have now configured the air sensor to send ünsolicited"updates to the spirit-Z directly, meaning that the air sensor will send an update to the spirit directly (= without domoticz being in between) whenever a new value comes available. Since the spirit-Z is configured to use an external sensor's temperature, this should mean the spirit now opens when the temprature on the air quality sensor is under the spirit's setpoint and close when it goes over the setpoint.

I (and others) have tried this with other types of temperature sensors, but the spirit-Z doesn't seem to understand the messages those sensors send to the spirit-Z and the valve doesn't respond to those sensor's temperature readings. There are rumors that an eurotronic temperature sensor would work. Hence my question to you to see if this is that sensor that does work.
rugspin
Posts: 12
Joined: Tuesday 04 February 2020 23:59
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by rugspin »

For me, I also just got the CO2 shown as a device in domoticz. But it jumped between the CO2 ppm and the voc ppb.
On my installation (rpi/rapbian) there is a file in the domoticz/Config folder name ozwcache_0xxxxxxxx.xml. It has all the information of my zwave sensor. Also the CO2 and the VOC values can be found separately here and are updated whenever there are changes to them.

So I made two extra virtual custom devices (one with ppm and one with ppb). I parse the xml file every 5 min and update the two virtual sensors via the JSON interface. It it not perfect, but for now I can log the CO2 and VOC separately.
physiker123
Posts: 37
Joined: Wednesday 25 November 2015 18:32
Target OS: Raspberry Pi / ODroid
Domoticz version:
Location: Germany / France
Contact:

Re: Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by physiker123 »

Could you share your code? That would be really nice!
Thank you in advance
rugspin
Posts: 12
Joined: Tuesday 04 February 2020 23:59
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by rugspin »

This is what I quickly put together in python, to see if it works.
I'm by far not a programmer, so I'm not sure if it is fail save.
hope the xml part might also work on other installations.

Code: Select all

#!/usr/bin/python3

import sys
import os

import requests
import json

import codecs

import xml.etree.ElementTree as ET

#the xxxxxxxxx needs to be changed according to the filename of the domoticz installation
zwave_xml_file = 'ozwcache_0xxxxxxxxx.xml'

# xxx needs to be changed according to the domoticz main folder
domoticz_path = '/xxx/Config/'

tree = ET.parse(domoticz_path + zwave_xml_file)
root = tree.getroot()

#the xxx.xxx needs to be changed according to the url of the domoticz installation
url = 'https://xxx.xxx'

#the xxxx needs to be changed according to the port of the domoticz installation 
port = 'xxxx'

#change the following to the zwvae id and idx of the domoticz installation
#xxxa: zwave id of the first sensor
#xxxb: idx of the custom first co2 sensor
#xxxc: idx of the custom first voc sensor
#yyya: zwave id of the second sensor
#yyyb: idx of the custom second co2 sensor
#yyyc: idx of the custom second voc sensor
devices = [ {'zwave_id': 'xxxa', 'idx_co2': 'xxxb', 'idx_voc': 'xxxc' }, \
		{'zwave_id': 'yyya', 'idx_co2': 'yyyb', 'idx_voc': 'yyyc' } ]

commandclass_id = '49'
co2 = 0
voc = 0


for device in devices:
	print('zwave id: ', device['zwave_id'])
	print('co2 idx: ', device['idx_co2'])
	print('voc idx: ', device['idx_voc'])

	for node in root:
		if( node.attrib['id'] == device['zwave_id'] ):
			for node_content in node:
				print(node_content.tag)
				if( node_content.tag == '{https://github.com/OpenZWave/open-zwave}CommandClasses' ):
					for commandclasses in node_content:
						if(commandclasses.attrib['id'] == commandclass_id ):
							for values in commandclasses.findall('{https://github.com/OpenZWave/open-zwave}Value'):
								if( values.attrib['label'] == 'Carbon Dioxide' ):
									print('Carbon Dioxide')
									co2 = float( values.attrib['value'] )
									print( co2 )
								if( values.attrib['label'] == 'Volatile Organic Compound' ):
									print('Volatile Organic Compound')
									voc = float( values.attrib['value'] ) * 1000
									print( voc )


	
	html = requests.get(url + ':' + port + '/json.htm?type=command&param=udevice&idx=' + device['idx_co2'] + '&nvalue=0&svalue=' + str(co2), verify=False)

	html = requests.get(url + ':' + port + '/json.htm?type=command&param=udevice&idx=' + device['idx_voc'] + '&nvalue=0&svalue=' + str(voc) , verify=False)
kokotar
Posts: 2
Joined: Tuesday 08 February 2022 3:28
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by kokotar »

hi,
i own that device but i cant make it work, basically the manual is even faulty translated...

when i press 3x button within 1sec (really 1sec? crazy.... ) nothing happens - both green leds are on.
when i press button for 10sec nothing - even it should reset device.... when i hold it 30-40 sec ... all i can see is that both stripes blink from top to down (red to green)

@AMDomoticz any idea here?

anyone had any luck with that device? how to link it to aotec gen5 (homeassistant) ... i am really desperate... or faulty device? even it was brand new.

thanks
DuDo
Posts: 14
Joined: Saturday 18 November 2017 9:25
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by DuDo »

i have dthis device today and i only get the co2 but 0ppm.
a few switches ( healt alarm ) and thats it

edit
after a while its registrating ppm and even a celsius is present?
Last edited by DuDo on Friday 17 June 2022 11:39, edited 1 time in total.
kokotar
Posts: 2
Joined: Tuesday 08 February 2022 3:28
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by kokotar »

thats what i can see

https://imgur.com/a/d08lofA
DuDo
Posts: 14
Joined: Saturday 18 November 2017 9:25
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Z-Wave factfile: EUROtronic Air Quality Sensor Z-Wave Plus

Post by DuDo »

is that domoticz??? strange screen
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests