This program aims at reading information from a V-Zug Adora SL-WP (41134 000054) (the link points to the V-Zug homepage, since the product has been removed from the catalog). This device is our dishwasher, which is one of the most ecological and economical we have found on the market at that time. Bonus, it is built in Switzerland.
Data are read through the V-ZUG-Home HTTP API, which runs on the appliance itself. Thus, the mobile app isn't required.
The program is written in Rust. Just clone the program, and run:
$ cargo build --release
The executable binary is located in /target/release/vzug-reader
.
Use -h
/--help
to get help:
vzug-reader 0.1.0
USAGE:
vzug-reader [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
-t, --into-thing Turns this program into a Thing, i.e. a new Web of Things device
-c, --print-config-path Print the configuration path and exit
-V, --version Prints version information
OPTIONS:
-a, --address <address> HTTP address of the VZug adora diswhwasher, e.g. `192.168.1.142:80`. This option
overwrites the value read from the configuration file
-f, --format <format> Define the kind of outputs [default: Text] [possible values: Text, Json]
-p, --thing-port <thing-port> Port of the Thing. Requires `--into-thing` to be effective. This option overwrites
the value read from the configuration file
Use the --address
option to specify the address. That's the only
thing you need to know!
A configuration file can be used to read the value of the --address
option. Use --print-config-path
to get the path to the configuration
file.
The vzug-reader
tool is designed to work in multiple environments.
By default, the text format is selected.
State {
device: Device {
model: "GS-ASLWP",
description: "Adora SL-WP",
serial_number: "41134 000054",
article_number: "4113400055",
api_version: "1.6.0",
},
average_consumption: Consumption {
power: Kwh(
0.7,
),
water: Liter(
13.0,
),
},
total_consumption: Consumption {
power: Kwh(
42.0,
),
water: Liter(
941.0,
),
},
current_program: Active {
status: "active",
id: 50,
name: "Pogramme Eco",
duration: Duration {
remaining_seconds: 1715,
},
current_step: 6,
steps: [
79,
82,
79,
78,
74,
75,
72,
],
eco: false,
steam_finish: false,
partial_load: true,
},
}
JSON can be used in a Web environment. Example with vzug-reader --address <addr< --format json
(formatted with … | python -m json.tool
):
{
"device": {
"model": "GS-ASLWP",
"description": "Adora SL-WP",
"serial_number": "41134 000054",
"article_number": "4113400055",
"api_version": "1.6.0"
},
"average_consumption": {
"power": 0.7,
"water": 13.0
},
"total_consumption": {
"power": 42.0,
"water": 941.0
},
"current_program": {
"status": "active",
"id": 50,
"name": "Pogramme Eco",
"duration": {
"remaining_seconds": 1671
},
"current_step": 6,
"steps": [
79,
82,
79,
78,
74,
75,
72
],
"eco": false,
"steam_finish": false,
"partial_load": true
}
}