youless-logger

module
v0.0.0-...-a677d05 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 1, 2024 License: BSD-3-Clause

README

Services for YouLess energy monitor

Latest release Build status Go Report Card Documentation

A YouLess energy monitor is a handy device to monitor your power and gas usage. It has its downsides though, one is a limited amount of historical data that is stored. This package aims to solve that problem by storing the monitored data of each interval for a much longer period of time. And it is able to do so for multiple YouLess devices. It also provides an API compatible with YouLess' own API so the service can easily be used by any existing client.

Key features are:

  • no more limits on monitored data
  • get data from multiple devices
  • only monitor the utility services you want
  • configure update intervals
  • classic api can serve older data
  • support for grpc and graphql

Logger service

Build status Layers Image size build-status-img: https://img.shields.io/docker/cloud/build/roeldev/casa-youless-logger.svg

API server for use with Logger

Observer server

CLI tool

A CLI tool is available to display info or communicate with the configured devices. Login to the Docker container and use yl list to list all available commands. It is also possible to run the tool outside of the Docker container via docker exec -it {container_name} yl {command}.

Client package


Installation

docker pull roeldev/casa-youless-logger

Docker-compose
services:
  youless-logger-service:
    image: roeldev/casa-youless-logger:latest
    volumes:
      - config:/youless-logger/config/
      - data:/youless-logger/data/
      - log:/youless-logger/log/
Volumes
Path Contains
/youless-logger/config Config files
/youless-logger/data Database (backup) files
/youless-logger/log Log files

Configuration

Support for multiple YouLess devices means a little more configuration. Altough it should be pretty self explanatory, most important stuff is mentioned in this chapter. But first, have a look at the sample config for a quick overview of possibilities.

Each device should have at least an ip option set so the logger can reach the device's API. All other values are not required. However, this probably results in way too much useless data being saved. Therefore it's recommended to only enable the data service(s) that are actually monitored. and disables classic API support

Note: Latest YouLess devices support data from multiple different counters: power, gas, s0 and water. Older versions only support power.

Below example adds two devices:

  1. house which requires a password to access the API on 192.168.1.27 and provides data of power and gas consumption;
  2. shed which is hosted on 192.168.1.32 and only provides data of the s0 pulse counter.
'devices' => [
    'house' => [
        'ip' => 'http://192.168.1.27',
        'password' => 'secret',
        'services' => [
            'power' => true,
            'gas' => true,
            's0' => false,
        ]
    ],
    'shed' => [
        'ip' => 'http://192.168.1.32'
        'services' => [ 's0' ]
    ]
]

Stored data

A new SQLite database is created on first run. All data values are stored in the data table within this database.

Intervals
Id Interval API equiv. LS110 history* LS120 history* Unit (power/s0) Unit (gas)
1 minute h 1 hour (2x30) 10 hours (20x30) watt n/a
2 10 mins w 24 hours (3x48) 10 days (30x48) watt liter
3 hour d 7 days (7x24) 70 days (70x24) watt liter
4 day m 1 year (12x31) 1 year (12x31) kWh m3 (cubic meter)
  • = max. history (amount of pages x data entries)
Units
Id Unit API equiv. Service
1 watt Watt power/s0
2 kwh kWh power/s0
3 liter l gas
4 m3 m3 gas

Documentation

Additional detailed documentation is available at pkg.go.dev

Created with

License

Copyright © 2019-2024 Roel Schut. All rights reserved.

This project is governed by a BSD-style license that can be found in the LICENSE file.

Directories

Path Synopsis
common
server
Package server provides a generic server implementation which is used by the different applications to serve their endpoints.
Package server provides a generic server implementation which is used by the different applications to serve their endpoints.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL