Coder Social home page Coder Social logo

hamqttconfigbuilder's People

Contributors

plapointe6 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hamqttconfigbuilder's Issues

nested JSON object

Hi,
how can I build a nested Config-object as needed in i.e. the "device" configuration variable for MQTT sensors?

I tried this

String generateConfigPayload1() {
  String deviceJSONstr = HaMqttConfigBuilder()
    .add("identifiers", "ccs811")
    .add("name", "Air Quality Sensor")
    .generatePayload();
    
  return HaMqttConfigBuilder()
    .add("device_class", "temperature")
    .add("name", "Temperature")
    .add("unique_id", "ccs811unqId_1")
    .add("state_topic", "ha/sensor/sensorBedroom/state")
    .add("unit_of_measurement", "°C")
    .add("value_template", "{{ value_json.temperature}}")
    .add("device", deviceJSONstr)
    .generatePayload();
}

but HS tells me:
Unable to parse JSON sensorBedroomT: '{"device_class":"temperature","name":"Temperature","unique_id":"ccs811unqId_1","state_topic":"ha/sensor/sensorBedroom/state","unit_of_measurement":"°C","value_template":"{{ value_json.temperature}}","device":"{"identifiers":"ccs811","name":"Air Quality Sensor"}"}'

I suspect the reason is that the nested object is inserted as a nested string "device": "{ ... }" instead of "device": { ... }
as publishing the MQTT message manually works as expected:

mosquitto_pub -t ha/sensor/sensorBedroomT/config -m '{"device_class":"temperature","name":"Temperature","unique_id":"ccs811unqId_1","state_topic":"ha/sensor/sensorBedroom/state","unit_of_measurement":"°C","value_template":"{{ value_json.temperature}}","device":{ "identifiers": "ccs811", "name": "Air Quality Sensor"}}'

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.