{"id":16884757,"url":"https://github.com/bradfitz/websentry-mitm-prometheus-exporter","last_synced_at":"2026-03-02T19:08:55.705Z","repository":{"id":215553289,"uuid":"739223172","full_name":"bradfitz/websentry-mitm-prometheus-exporter","owner":"bradfitz","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-25T04:32:54.000Z","size":258,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-25T08:42:52.717Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradfitz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-05T03:57:10.000Z","updated_at":"2024-07-04T05:21:57.000Z","dependencies_parsed_at":"2024-01-25T01:28:02.942Z","dependency_job_id":"e34fef4b-c11b-469f-afa7-bd29ea9d4c56","html_url":"https://github.com/bradfitz/websentry-mitm-prometheus-exporter","commit_stats":null,"previous_names":["bradfitz/websentry-mitm-prometheus-exporter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradfitz%2Fwebsentry-mitm-prometheus-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradfitz%2Fwebsentry-mitm-prometheus-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradfitz%2Fwebsentry-mitm-prometheus-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradfitz%2Fwebsentry-mitm-prometheus-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradfitz","download_url":"https://codeload.github.com/bradfitz/websentry-mitm-prometheus-exporter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248401528,"owners_count":21097328,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T16:30:28.450Z","updated_at":"2026-03-02T19:08:50.637Z","avatar_url":"https://github.com/bradfitz.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebSentry MITM Prometheus Exporter\n\nThis is a server that intercepts traffic from a [WebSentry](https://serescodehumidifiers.com/websentry/) dehumidifier (as supported by the various https://dehumidifiedairsolutions.com/ brands) and parses the traffic while proxying it upstream to its cloud service.\n\nIt then exports [Prometheus](https://prometheus.io/) metrics so I can see things more detailed in [Grafana](https://grafana.com/) than I can\non the official cloud portal.\n\n## Protocol\n\nSee the [protocol details page](https://github.com/bradfitz/websentry-mitm-prometheus-exporter/blob/main/websentry-protocol.md) for what I've figured out so far. If you figure out more, file an issue with details! (Or let me know if this is an existing protocol you recognize.)\n\n## Using\n\nTo use this server, you have two main options:\n\n* If you control your LAN's DNS server, add a fake entry for `websentry.seresco.net` (or whatever brand DNS name your unit queries) and point it at the IP address where you're running this code.\n\n* If you control your LAN's DHCP server, send the dehumifier unit (e.g. `10.15.25.34`) a router address to a Linux box running this code (e.g. `10.15.25.2`) with an iptables rule like `iptables -t nat -I PREROUTING 1 -s 10.15.25.34 -p tcp -m multiport --dports 1030 -j DNAT --to-destination 10.15.25.2:1030`. With `dnsmasq`, you can do something like: \n\n```\ndhcp-host=00:90:c2:XX:XX:XX,10.15.25.34,set:usemitm\ndhcp-option=tag:usemitm,option:router,10.15.25.2\n```\n\n## Unofficial\n\nThis is all just my personal contraption and by no means official. The Dehumidified Air Solutions folk are unlikely to support this\n\nThe official way to get these metrics is via MODBUS or LON or BACNET or something, but I didn't want to wire those up. I preferred to use its existing Ethernet connection.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradfitz%2Fwebsentry-mitm-prometheus-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradfitz%2Fwebsentry-mitm-prometheus-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradfitz%2Fwebsentry-mitm-prometheus-exporter/lists"}