/xfinity-data-usage

Fetch Xfinity data usage and serve it via an HTTP endpoint, publish it to MQTT or post it to an URL.

Primary LanguageTypeScriptMIT LicenseMIT

Release Version Docker Pulls License

BuyMeCoffee

Xfinity Data Usage

Fetch Xfinity data usage and serve it via an HTTP endpoint, publish it to MQTT or post it to an URL.

Getting Started

Configuaration

config.yml located in the /config directory

xfinity

Xfinity Account credentials are required.

Option Description
username required Username for Xfinity
password required Password for Xfinity
interval The interval at which to update usage data. Defaults to 60 seconds.
pageTimeout Number of seconds until request times out. Defaults to 30 seconds

http (optional)

Enable HTTP endpoints for most recent data. Defaults to port 7878.

Raw data at http://ipaddress:7878

Home Assistant rest sensor at http://ipaddress:7878/homeassistant

post (optional)

Enable posting of data after an update to the provided URL.

Option Description
url required URL where to post usage data to

mqtt (optional)

Option Description
host required Address of MQTT server
port Port of MQTT server defaults to 1883
username Username for MQTT server
password Password for MQTT server
topic required Topic to publish usage data to if Home Assistant is not set
homeassistant When set will publish to auto-discovery topics
homeassistant.prefix Auto discovery prefix topic. Defaults to homeassistant

imap (optional)

When defined will attempt to reset your Xfinity password when necessary.

Option Description
host required Address of IMAP server server
port Port of IMAP server defaults to 993
auth.user required Username for IMAP server
auth.pass required Password for IMAP server

Complete config

xfinity:
  username: USERNAME
  password: PASSWORD
  interval: 60

http:

post:
  url: http://localhost:1880/xfinity

mqtt:
  host: localhost
  port: 1883
  username: USERNAME
  password: PASSWORD
  topic: xfinity
  homeassistant:
    prefix: "homeassistant"

imap:
  host: "imap.gmail.com"
  auth:
    user: "xxxx@gmail.com"
    pass: "longpasscode"

docker-compose

version: '3.7'

services:
  xfinity:
    image: zachowj/xfinity-data-usage:latest
    container_name: xfinity
    restart: unless-stopped
    ports:
      - 7878:7878
    volumes:
      - config:/config
    environment:
      TZ: America/Los_Angeles
      LOGGING_LEVEL: info

Volumes

  • /config - Directory for the config file

Logging

The logging level can be changed by adding the environment variable LOGGING_LEVEL. Default level is info.

Valid log levels: error, warn, info, verbose, debug, silly

Find Us

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.