Coder Social home page Coder Social logo

homee_exporter's People

Contributors

xenji avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

stfnhmplr bioharz

homee_exporter's Issues

Reissue access_token after the lifetime has expired

Current lifetime is one year. Although it is rather not to be expected that a homee exporter runs for one year without any update or restart, this is expected behavior and should therefore be possible.

Are the currently used labels helpful?

Currently these labels are used:

private val energyGauge: Gauge = Gauge
    .build("current_energy", "Tracks the current energy level of a meter")
    .labelNames("node_id", "attribute_id", "name", "unit")
    .register()

private val statusGauge = Gauge
    .build("current_state", "Tracks the current state of a switch")
    .labelNames("node_id", "attribute_id", "name")
    .register()

private val temperatureGauge = Gauge
    .build("current_temperature", "Tracks the current state of a thermometer")
    .labelNames("node_id", "attribute_id", "name", "unit")
    .register()

Grouping of Sensors/Actors

As a user I want to be able to group sensors/actors that are exported, e.g. via a homee Group „Exporter“, where only those actors/sensors are exported that are a member of this group.

Compare the approach used by HomeKit-homee by Stefan Himpler.

Reopening of websocket does not work as expected due to websockets being not reusable

Mar 05 15:13:04 srv env[27516]:         at org.java_websocket.client.WebSocketClient.connect(WebSocketClient.java:166)
Mar 05 15:13:04 srv env[27516]:         at org.java_websocket.client.WebSocketClient.connectBlocking(WebSocketClient.java:177)
Mar 05 15:13:04 srv env[27516]:         at com.github.xenji.homee.api.HomeeWsClient.onClose(network.kt:53)
Mar 05 15:13:04 srv env[27516]:         at org.java_websocket.client.WebSocketClient.onWebsocketClose(WebSocketClient.java:391)
Mar 05 15:13:04 srv env[27516]:         at org.java_websocket.WebSocketImpl.closeConnection(WebSocketImpl.java:504)
Mar 05 15:13:04 srv env[27516]:         at org.java_websocket.WebSocketImpl.closeConnection(WebSocketImpl.java:515)
Mar 05 15:13:04 srv env[27516]:         at org.java_websocket.WebSocketImpl.eot(WebSocketImpl.java:563)
Mar 05 15:13:04 srv env[27516]:         at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:289)
Mar 05 15:13:04 srv env[27516]:         at java.lang.Thread.run(Thread.java:748)
Mar 05 15:13:06 srv env[27516]: 2018-03-05 15:13:06 [Thread-4] TRACE c.g.xenji.homee.api.HomeeWsClient - sending ping
Mar 05 15:13:06 srv env[27516]: Exception in thread "Thread-4" org.java_websocket.exceptions.WebsocketNotConnectedException
Mar 05 15:13:06 srv env[27516]:         at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:608)
Mar 05 15:13:06 srv env[27516]:         at org.java_websocket.WebSocketImpl.sendFrame(WebSocketImpl.java:634)
Mar 05 15:13:06 srv env[27516]:         at org.java_websocket.WebSocketImpl.sendPing(WebSocketImpl.java:641)
Mar 05 15:13:06 srv env[27516]:         at org.java_websocket.client.WebSocketClient.sendPing(WebSocketClient.java:237)
Mar 05 15:13:06 srv env[27516]:         at com.github.xenji.homee.api.HomeeWsClient$onOpen$1.invoke(network.kt:37)
Mar 05 15:13:06 srv env[27516]:         at com.github.xenji.homee.api.HomeeWsClient$onOpen$1.invoke(network.kt:23)
Mar 05 15:13:06 srv env[27516]:         at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:18)
Mar 05 15:13:11 srv env[27516]: Exception in thread "Thread-5" org.java_websocket.exceptions.WebsocketNotConnectedException
Mar 05 15:13:11 srv env[27516]:         at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:608)
Mar 05 15:13:11 srv env[27516]:         at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:585)
Mar 05 15:13:11 srv env[27516]:         at org.java_websocket.client.WebSocketClient.send(WebSocketClient.java:207)
Mar 05 15:13:11 srv env[27516]:         at com.github.xenji.homee.ExporterKt$main$1$2$2.invoke(exporter.kt:29)
Mar 05 15:13:11 srv env[27516]:         at com.github.xenji.homee.ExporterKt$main$1$2$2.invoke(exporter.kt)
Mar 05 15:13:11 srv env[27516]:         at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:18)```

Remove stats after configurable timeout

In order to put alerts on missing values, the exporter should remove metrics from the output that have not been changed for a potentially configurable period of time.

Auth request failure

I just get started with this exporter
I created a new user specially for this testing purpose but just receive
an auth error:

java -jar ./lib/homee_exporter.jar --username xxxx --password xxx --homee-id 000XXXXXX
Exception in thread "main" com.github.xenji.homee.api.AuthenticationException: Authentication request failure: 401
at com.github.xenji.homee.api.AuthenticationKt.homeeAccessToken(authentication.kt:59)
at com.github.xenji.homee.ExporterKt$main$1.invoke(exporter.kt:38)
at com.github.xenji.homee.ExporterKt$main$1.invoke(exporter.kt)
at com.xenomachina.argparser.SystemExitExceptionKt.mainBody(SystemExitException.kt:74)
at com.xenomachina.argparser.SystemExitExceptionKt.mainBody$default(SystemExitException.kt:72)
at com.github.xenji.homee.ExporterKt.main(exporter.kt:35)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.