Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MQTT JSON subscribe #198

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

MQTT JSON subscribe #198

wants to merge 9 commits into from

Conversation

glynhudson
Copy link
Member

@glynhudson glynhudson commented May 2, 2023

Enable emonHub to subscribe to JSON MQTT topics, useful for integrating with zigbee2mqtt and Shelly WiFi sensors.

e.g

[[MQTT_sub]]
    Type = EmonHubMqttInterfacer
    [[[init_settings]]]
        mqtt_host = 127.0.0.1
        mqtt_port = 1883
        mqtt_user = emonpi
        mqtt_passwd = emonpimqtt2016
    [[[runtimesettings]]]
        pubchannels = ToEmonCMS,
        node_JSON_enable = 1
        node_JSON_basetopic = zigbee2mqtt/temp

The above emonhub config subscribes to MQTT topic zigbee2mqtt/temp and decodes the JSON message {"battery":100,"humidity":72.23,"linkquality":116,"temperature":21.79,"voltage":3000} which results in an input key called temp and Inputs with battery, humidity etc.

@glynhudson glynhudson requested a review from TrystanLea May 2, 2023 23:34
@glynhudson
Copy link
Member Author

@TrystanLea It is possible to get this merged? It's now been tested for quite a while and working well

@alandpearson
Copy link
Contributor

This is a cool feature.
Is it possible to subscribe to multiple JSON topics ?
For example I have a dozen tasmota powered power monitoring plugs that each report JSON topics individually.

@alandpearson
Copy link
Contributor

Will this be merged soon ?

alandpearson and others added 2 commits April 27, 2024 16:35
1) The emonhub configuration for mqtt has both sub and pub - change the if statement at line 256 to allow this
2) Add tx/# to the mqtt subscribe at line 260
3) rf sendving via nodeval has 5 topic parts not 4, fix line 304 (see
   below)
4) Reinstate if statements:
 if topic_parts[0] == self._settings["nodevar_format_basetopic"][:-1]:
and
 if topic_parts[0] == self._settings["node_format_basetopic"][:-1]:
to avoid incorrect "Payload format error" messages

To transmit via MQTT, example for emonglcd:
topic:emonhub/tx/0/values/msg
payload:10,14,49,25,27,04,24,150,835,1600,502
Fix broken rf transmit behaviour in this version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants