mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-10-09 11:58:50 +00:00
.devcontainer
.github
.vscode
plugins
sass
source
.well-known
_dashboards
_data
_docs
_examples
_faq
_includes
_integrations
_layouts
_posts
2014-12-18-website-launched.markdown
2014-12-26-home-control-home-automation-and-the-smart-home.markdown
2015-01-04-hey-pushbullet-nice-talking-to-you.markdown
2015-01-11-bootstrapping-your-setup-with-discovery.markdown
2015-01-13-nest-in-da-house.markdown
2015-01-24-release-notes.markdown
2015-02-07-looking-at-the-past.markdown
2015-02-24-streaming-updates.markdown
2015-02-28-home-assistant-migrating-to-yaml.markdown
2015-03-08-new-logo.markdown
2015-03-11-release-notes.markdown
2015-03-22-release-notes.markdown
2015-04-25-release-notes.markdown
2015-05-09-utc-time-zone-awareness.markdown
2015-05-14-release-notes.markdown
2015-06-10-release-notes.markdown
2015-07-11-ip-cameras-arduino-kodi-efergy-support.markdown
2015-08-09-mqtt-raspberry-pi-squeezebox-asuswrt-support.markdown
2015-08-17-verisure-and-modern-tp-link-router-support.markdown
2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown
2015-08-31-version-7-revamped-ui-and-improved-distribution.markdown
2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown
2015-09-13-home-assistant-meets-ifttt.markdown
2015-09-18-monitoring-with-glances-and-home-assistant.markdown
2015-09-19-alarm-sonos-and-itunes-support.markdown
2015-10-05-home-assistant-goes-geo-with-owntracks.markdown
2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown
2015-10-11-rfxtrx-blinkstick-and-snmp-support.markdown
2015-10-26-firetv-and-radiotherm-now-supported.markdown
2015-11-16-zwave-switches-lights-and-honeywell-thermostats-now-supported.markdown
2015-11-22-survey-november-2015.markdown
2015-12-06-community-highlights.markdown
2015-12-06-locks-rollershutters-binary-sensors-and-influxdb-support.markdown
2015-12-07-influxdb-and-grafana.markdown
2015-12-10-activating-tasker-tasks-from-home-assistant-using-command-line-switches.markdown
2015-12-12-philips-hue-blocks-3rd-party-bulbs.markdown
2015-12-13-setup-encryption-using-lets-encrypt.markdown
2015-12-20-amazon-echo-icloud-and-templates.markdown
2016-01-17-extended-support-for-diy-solutions.markdown
2016-01-19-perfect-home-automation.markdown
2016-01-29-insteon-lifx-twitter-and-zigbee.markdown
2016-02-09-Smarter-Smart-Things-with-MQTT-and-Home-Assistant.markdown
2016-02-11-classifying-the-internet-of-things.markdown
2016-02-13-speedtest-bloomsky-splunk-and-garage-doors.markdown
2016-02-18-multi-room-audio-with-snapcast.markdown
2016-02-20-community-highlights.markdown
2016-02-28-steam-d-link-smart-plugs-and-neurio-energy-sensors.markdown
2016-03-12-z-wave-pep257-templated-service-calls.markdown
2016-03-26-embedded-mqtt-broker-uber-yamaha-growl.markdown
2016-04-04-your-hub-should-be-local-and-open.markdown
2016-04-07-static-website.markdown
2016-04-09-onkyo-panasonic-gtfs-and-config-validation.markdown
2016-04-17-updated-documentation.markdown
2016-04-19-to-infinity-and-beyond.markdown
2016-04-21-bluetooth-lg-webos-tvs-and-roombas.markdown
2016-04-30-ibeacons-part-1-making-presence-detection-work-better.markdown
2016-05-06-open-iot-summit-talk.markdown
2016-05-07-empowering-scripts-and-alexa.markdown
2016-05-12-video-configuring-home-assistant.markdown
2016-05-18-why-we-use-polymer.markdown
2016-05-21-release-020.markdown
2016-05-22-get-started-with-all-in-one-installer.markdown
2016-05-26-ibeacons-how-to-track-things-that-cant-track-themselves-part-ii.markdown
2016-06-01-community-highlights.markdown
2016-06-08-super-fast-web-enocean-lirc.markdown
2016-06-13-home-assistant-at-pycon-2016.markdown
2016-06-18-pandora-bt-home-hub-5-and-local-file-camera.markdown
2016-06-23-usb-webcams-and-home-assistant.markdown
2016-07-01-envisalink-homematic-hdmi-cec-and-sony-bravia-tv.markdown
2016-07-06-pocketchip-running-home-assistant.markdown
2016-07-16-sqlalchemy-knx-join-simplisafe.markdown
2016-07-19-visualizing-your-iot-data.markdown
2016-07-23-internet-of-things-data-exploration-with-jupyter-notebooks.markdown
2016-07-28-esp8266-and-micropython-part1.markdown
2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown
2016-08-03-laundry-automation-update.markdown
2016-08-07-optimizing-the-home-assistant-mobile-web-app.markdown
2016-08-13-foursquare-fast-com-ffmpeg-gpsd.markdown
2016-08-16-we-have-apps-now.markdown
2016-08-19-github-style-calendar-heatmap-of-device-data.markdown
2016-08-27-notifications-hue-fake-unification.markdown
2016-08-31-esp8266-and-micropython-part2.markdown
2016-09-10-notify-group-reload-api-pihole.markdown
2016-09-29-async-sleepiq-emoncms-stocks.markdown
2016-10-01-we-have-raspberry-image-now.markdown
2016-10-02-hacktoberfest.markdown
2016-10-08-hassbian-rest-digital-ocean.markdown
2016-10-22-flash-briefing-updater-hacktoberfest.markdown
2016-10-24-explaining-the-updater.markdown
2016-11-05-hacktoberfest-influxdb-weather.markdown
2016-11-20-calendar--wink-thermostats--cisco-ios.markdown
2016-12-03-remote-websockets-sonarr.markdown
2016-12-17-text-to-speech-aquostv-flic-zamg.markdown
2016-12-19-thank-you.markdown
2017-01-03-control-my-christmas-tree-stats.markdown
2017-01-14-iss-usps-images-packages.markdown
2017-01-18-numbers.markdown
2017-01-21-home-assistant-governance.markdown
2017-01-28-face-coffee-wink.markdown
2017-02-03-hassbian-toybox.markdown
2017-02-04-babyphone.markdown
2017-02-11-alert-appletv-mqtt-yeelight.markdown
2017-02-14-clt-workshop.markdown
2017-02-22-home-assistant-tshirts-have-arrived.markdown
2017-02-25-config-panel-and-state-restoration.markdown
2017-03-11-repurpose-any-android-phone-as-ip-camera.markdown
2017-03-22-broken-dependencies.markdown
2017-03-23-opensourcecraft-interview-with-founder-paulus-schoutsen.markdown
2017-03-25-todo-volumio-workday.markdown
2017-03-28-http-to-mqtt-bridge.markdown
2017-04-01-thomas-krenn-award.markdown
2017-04-08-eddystone-beacons--lockitron-locks--total-connect.markdown
2017-04-15-ios.markdown
2017-04-17-ikea-tradfri-internet-of-things-done-right.markdown
2017-04-22-ikea-tradfri--spotify.markdown
2017-04-24-hardware-contest-2017.markdown
2017-04-25-influxdb-grafana-docker.markdown
2017-04-30-hassbian-1.21-its-about-time.markdown
2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown
2017-05-05-podcast-init-interview.markdown
2017-05-06-zigbee-opencv-dlib.markdown
2017-05-07-grazer-linuxtage-2017-talk-python-everywhere.markdown
2017-05-13-home-assistant-on-orange-pi-zero.markdown
2017-05-19-home-assistant-at-pycon-us-2017.markdown
2017-05-20-automation-editor-zwave-panel-ocr.markdown
2017-06-02-home-assistant-podcast-1.markdown
2017-06-04-release-46.markdown
2017-06-10-interview-with-jupiter-broadcasting.markdown
2017-06-15-zwave-entity-ids.markdown
2017-06-17-release-47.markdown
2017-06-20-things-you-should-know-about-senic-covi.markdown
2017-07-02-release-48.markdown
2017-07-03-home-assistant-is-moving-to-discord.markdown
2017-07-05-hasspodcast-ep-3.markdown
2017-07-16-release-49.markdown
2017-07-17-hasspodcast-ep-4.markdown
2017-07-25-introducing-hassio.markdown
2017-07-27-talk-python-podcast.markdown
2017-07-29-release-50.markdown
2017-08-01-hasspodcast-ep-5.markdown
2017-08-12-release-51.markdown
2017-08-26-release-0-52.markdown
2017-09-09-release-53.markdown
2017-09-16-hassbian-1.3-a-bit-of-a-stretch.markdown
2017-09-23-release-54.markdown
2017-09-25-new-hassio-build-system.markdown
2017-09-27-effortless-encryption-with-lets-encrypt-and-duckdns.markdown
2017-09-29-hacktoberfest.markdown
2017-10-01-hass-podcast-ep9.markdown
2017-10-06-deprecating-python-3.4-support.markdown
2017-10-07-release-55.markdown
2017-10-14-templating-date-time.markdown
2017-10-18-hasspodcast-ep-10.markdown
2017-10-21-release-56.markdown
2017-10-23-simple-analog-sensor.markdown
2017-10-28-demo.markdown
2017-11-02-secure-shell-tunnel.markdown
2017-11-04-release-57.markdown
2017-11-05-frontend-translations.markdown
2017-11-10-ttn-with-mqtt.markdown
2017-11-12-tor.markdown
2017-11-18-release-58.markdown
2017-11-29-hassio-virtual-machine.markdown
2017-12-03-release-59.markdown
2017-12-17-introducing-home-assistant-cloud.markdown
2017-12-17-release-60.markdown
2017-12-28-thank-you.markdown
2018-01-14-release-61.markdown
2018-01-21-clarification-emulated-hue.markdown
2018-01-27-release-62.markdown
2018-02-09-disabling-disqus.markdown
2018-02-10-release-63.markdown
2018-02-20-cloud-update.markdown
2018-02-26-release-64.markdown
2018-03-09-release-65.markdown
2018-03-24-new-release-schedule.markdown
2018-03-29-fedora-atomic.markdown
2018-03-30-release-66.markdown
2018-04-12-ubiquiti-and-home-assistant.markdown
2018-04-14-release-67.markdown
2018-04-22-hassio-2018.markdown
2018-04-24-launch-google-assistant-support.markdown
2018-04-26-developer-site.markdown
2018-04-27-release-68.markdown
2018-05-11-release-69.markdown
2018-05-18-release-70.markdown
2018-06-04-esphomelib.markdown
2018-06-10-release-71.markdown
2018-06-22-release-72.markdown
2018-07-06-release-73.markdown
2018-07-11-hassio-images.markdown
2018-07-16-release-73-2.markdown
2018-07-21-release-74.markdown
2018-08-03-release-75.markdown
2018-08-17-release-76.markdown
2018-08-29-release-77.markdown
2018-09-15-release-78.markdown
2018-09-17-thinking-big.markdown
2018-09-30-hacktoberfest.markdown
2018-10-01-release-79.markdown
2018-10-12-release-80.markdown
2018-10-29-release-81.markdown
2018-11-08-release-82.markdown
2018-11-16-state-of-the-union.markdown
2018-11-28-release-83.markdown
2018-12-12-release-84.markdown
2018-12-17-logitech-harmony-removes-local-api.markdown
2018-12-19-logitech-stance-on-local-api.markdown
2018-12-27-data-science-portal.markdown
2019-01-09-release-85.markdown
2019-01-23-lovelace-released.markdown
2019-01-23-release-86.markdown
2019-01-24-nest-cannot-access-data.markdown
2019-02-04-introducing-home-assistant-cli.markdown
2019-02-06-release-87.markdown
2019-02-11-hass-cli-0-dot-5-area-entity-registry-and-event-cli.markdown
2019-02-20-release-88.markdown
2019-03-13-release-89.markdown
2019-03-20-release-90.markdown
2019-04-01-android.markdown
2019-04-03-release-91.markdown
2019-04-15-hassio-ingress.markdown
2019-04-24-release-92.markdown
2019-05-03-update-from-the-field.markdown
2019-05-08-nest-data-bye-bye.markdown
2019-05-16-release-93.markdown
2019-06-05-release-94.markdown
2019-06-26-release-95.markdown
2019-07-09-home-assistant-cast-preview.markdown
2019-07-17-release-96.markdown
2019-07-19-piwheels.markdown
2019-08-06-home-assistant-cast.markdown
2019-08-07-release-97.markdown
2019-08-28-release-98.markdown
2019-09-17-happy-birthday.markdown
2019-09-18-release-99.markdown
2019-10-10-release-100.markdown
2019-10-25-rip-hassbian.markdown
2019-10-30-release-101.markdown
2019-11-20-privacy-focused-voice-assistant.markdown
2019-11-20-release-102.markdown
2019-11-22-state-of-the-union.markdown
2019-12-01-home-assistant-for-everyone.markdown
2019-12-03-sonos-shutting-down-local-voice-option-snips.markdown
2019-12-11-release-103.markdown
2019-12-17-hassos-release-3.markdown
2019-12-20-all-i-want-is-open-standards.markdown
2020-01-15-release-104.markdown
2020-01-28-android-150-release.markdown
2020-01-29-changing-the-home-assistant-brand.markdown
2020-01-31-community-highlights.markdown
2020-02-05-release-105.markdown
2020-02-07-community-highlights.markdown
2020-02-11-android-16-17-release.markdown
2020-02-19-community-highlights.markdown
2020-02-26-release-106-3.markdown
2020-02-26-release-106.markdown
2020-02-28-community-highlights.markdown
2020-03-15-community-highlights.markdown
2020-03-18-release-107.markdown
2020-04-08-release-108.markdown
2020-04-14-the-future-of-yaml.markdown
2020-04-29-release-109.markdown
2020-05-09-deprecating-home-assistant-supervised-on-generic-linux.markdown
2020-05-20-release-110.markdown
2020-05-25-code-of-conduct-updated.markdown
2020-05-26-installation-methods-and-community-guides-wiki.markdown
2020-06-10-release-111.markdown
2020-07-01-release-112.markdown
2020-07-01-release-113.markdown
2020-07-28-ios-app-migration.markdown
2020-08-05-mobile-apps-new-features.markdown
2020-08-12-release-114.markdown
2020-08-18-the-month-of-what-the-heck.markdown
2020-08-28-android-230-release.markdown
2020-09-12-android-240-release.markdown
2020-09-14-birthday-week.markdown
2020-09-15-home-assistant-tags.markdown
2020-09-16-supervisor-joins-the-party.markdown
2020-09-17-release-115.markdown
2020-09-18-mac-companion.markdown
2020-09-19-summing-up-the-month-of-what-the-heck.markdown
2020-09-20-community-highlights.markdown
2020-10-01-hacktoberfest-2020.markdown
2020-10-07-release-116.markdown
2020-10-21-supervisor-249.markdown
2020-10-28-release-117.markdown
2020-11-06-android-300-release.markdown
2020-11-18-release-118.markdown
2020-11-23-tplink-local-access.markdown
2020-11-30-community-highlights.markdown
2020-12-13-home-assistant-os-release-5.markdown
2020-12-13-release-202012.markdown
2021-01-06-release-20211.markdown
2021-01-14-security-bulletin.markdown
2021-01-21-security-disclosure.markdown
2021-01-23-security-disclosure2.markdown
2021-02-03-release-20212.markdown
2021-02-12-community-highlights.markdown
2021-02-19-community-highlights.markdown
2021-02-26-community-highlights.markdown
2021-03-03-release-20213.markdown
2021-03-05-community-highlights.markdown
2021-03-06-android-2021-q1-releases.markdown
2021-03-12-community-highlights.markdown
2021-03-18-nabu-casa-has-acquired-esphome.markdown
2021-03-19-community-highlights.markdown
2021-03-26-community-highlights.markdown
2021-04-02-community-highlights.markdown
2021-04-07-release-20214.markdown
2021-04-09-android-april-2021-release.markdown
2021-04-09-community-highlights.markdown
2021-04-16-community-highlights.markdown
2021-04-23-community-highlights.markdown
2021-04-30-community-highlights.markdown
2021-05-05-release-20215.markdown
2021-05-07-community-highlights.markdown
2021-05-10-ios-20215.markdown
2021-05-12-integrations-api.markdown
2021-05-14-community-highlights.markdown
2021-05-21-community-highlights.markdown
2021-05-28-community-highlights.markdown
2021-06-02-release-20216.markdown
2021-06-04-community-highlights.markdown
2021-06-09-home-assistant-os-release-6.markdown
2021-06-11-community-highlights.markdown
2021-06-16-power-up-your-esp-projects.markdown
2021-06-18-community-highlights.markdown
2021-06-25-community-highlights.markdown
2021-07-07-release-20217.markdown
2021-08-04-home-energy-management.markdown
2021-08-04-release-20218.markdown
2021-08-24-supervisor-update.markdown
2021-09-01-release-20219.markdown
2021-09-15-home-assistant-yellow.markdown
2021-10-06-release-202110.markdown
2021-10-12-user-experiences-and-designers.markdown
2021-11-03-release-202111.markdown
2021-11-12-100k-analytics.markdown
2021-11-27-netdaemon-release.markdown
2021-12-11-release-202112.markdown
2021-12-18-ios-multi-server.markdown
2021-12-21-android-december-2021-release.markdown
2021-12-21-stanford-genie.markdown
2021-12-23-the-open-home.markdown
2021-12-28-northeastern-university-home-energy-management.markdown
2022-01-07-android-quest.markdown
2022-01-18-streamlining-experiences.markdown
2022-02-02-release-20222.markdown
2022-02-07-improved-homematic-support.markdown
2022-02-08-android-february.markdown
2022-03-02-release-20223.markdown
2022-03-14-cas-content-trust.markdown
2022-04-06-release-20224.markdown
2022-04-16-device-to-run-home-assistant.markdown
2022-04-19-for-insteon-users.markdown
2022-04-30-creator-network-launched.markdown
2022-05-04-release-20225.markdown
2022-05-08-ukraine-alarm.markdown
2022-05-16-home-assistant-os-release-8.markdown
2022-05-29-matter-in-home-assistant-workshop-announcement.markdown
2022-06-01-release-20226.markdown
2022-07-06-release-20227.markdown
2022-07-12-partner-program.markdown
2022-07-27-leviton-partner.markdown
2022-08-03-release-20228.markdown
2022-09-07-release-20229.markdown
2022-09-30-the-month-of-what-the-heck.markdown
2022-10-03-short-term-solutions-save-energy-and-money-europe.markdown
2022-10-05-release-202210.markdown
2022-10-13-third-reality-partner.markdown
2022-10-25-ultraloq-partner.markdown
2022-10-27-jasco-partner.markdown
2022-11-02-release-202211.markdown
2022-12-07-release-202212.markdown
2022-12-20-year-of-voice.markdown
2023-01-04-release-20231.markdown
2023-01-20-android-auto.markdown
2023-01-23-help-others-leave-ai-at-the-dor.markdown
2023-01-26-year-of-the-voice-chapter-1.markdown
2023-02-01-release-20232.markdown
2023-02-08-state-of-matter-and-thread.markdown
2023-03-01-release-20233.markdown
2023-03-03-heltun-partner.markdown
2023-03-08-supervisor-security-disclosure.markdown
2023-03-31-android-20233.markdown
2023-04-05-release-20234.markdown
2023-04-11-homeseer-partner.markdown
2023-04-18-home-assistant-os-release-10.markdown
2023-04-27-year-of-the-voice-chapter-2.markdown
2023-05-03-release-20235.markdown
2023-06-07-release-20236.markdown
2023-06-27-knx-collaboration.markdown
2023-07-05-release-20237.markdown
2023-07-20-year-of-the-voice-chapter-3.markdown
2023-08-02-release-20238.markdown
2023-09-06-release-20239.markdown
2023-09-13-coming-soon-10-years-ha.markdown
2023-09-17-10-years-home-assistant.markdown
2023-09-17-a-refreshed-logo-for-home-assistant.markdown
2023-09-17-home-assistant-green-your-entry-to-home-assistant.markdown
2023-09-22-philips-hue-force-users-upload-data-to-cloud.markdown
2023-10-04-release-202310.markdown
2023-10-12-year-of-the-voice-chapter-4-wakewords.markdown
2023-10-13-removal-of-mazda-connected-services-integration.markdown
2023-10-14-home-assistant-os-release-11.markdown
2023-10-17-expected-support-for-raspberry-pi-5.markdown
2023-10-19-security-audits-of-home-assistant.markdown
2023-11-01-release-202311.markdown
2023-11-06-removal-of-myq-integration.markdown
2023-11-16-home-assistant-green-now-available.markdown
2023-12-04-nabu-casa-at-the-matter-member-meeting.markdown
2023-12-06-release-202312.markdown
2023-12-07-homewizard-joins-works-with-home-assistant-program.markdown
2023-12-12-silicon-labs-official-partnership-nabu-casa.markdown
2023-12-13-year-of-the-voice-chapter-5.markdown
2023-12-14-disabling new login page functionality.markdown
2023-12-27-companion-app-for-ios-202312-lets-go.markdown
2024-01-03-release-20241.markdown
2024-01-05-matter-livestream.markdown
2024-01-17-voice-assistant-contest.markdown
2024-01-25-matter-livestream-blog.markdown
2024-01-29-companion-app-for-ios-20241-carplay.markdown
2024-02-07-release-20242.markdown
2024-02-15-nabu-casa-joins-z-wave-alliance.markdown
2024-02-16-voice-chapter-6-livestream.markdown
2024-02-21-voice-chapter-6.markdown
2024-02-22-what-about-grace-live-stream.markdown
2024-02-26-home-assistant-os-12-support-for-raspberry-pi-5.markdown
addons
android
assets
blog
blue
blueprints
changelogs
cloud
code_of_conduct
common-tasks
conference
dashboards
developers
docs
examples
faq
font
getting-started
green
help
home-energy-management
images
installation
integrations
ios
javascripts
more-info
privacy
security
skyconnect
state-of-the-open-home
static
stylesheets
tag
tos
voice_control
yellow
404.html
CNAME
_headers
_redirects
atom.xml
favicon.png
googlef4f3693c209fe788.html
index.html
integrations.json
robots.txt
service_worker.js
version.json
.editorconfig
.gitattributes
.gitignore
.markdownlint.json
.nvmrc
.powrc
.remarkignore
.remarkrc.js
.ruby-version
.textlintrc.json
CLA.md
CODEOWNERS
CODE_OF_CONDUCT.md
Gemfile
Gemfile.lock
LICENSE.md
README.md
Rakefile
_config.yml
config.rb
config.ru
package-lock.json
package.json
103 lines
4.1 KiB
Markdown
103 lines
4.1 KiB
Markdown
---
|
|
title: "ESP8266 and MicroPython - Part 2"
|
|
description: "Using MicroPython and MQTT on ESP8266 based devices and Home Assistant."
|
|
date: 2016-08-31 06:17:25 +0200
|
|
date_formatted: "August 31, 2016"
|
|
author: Fabian Affolter
|
|
categories: How-To MQTT ESP8266 Micropython
|
|
og_image: /images/blog/2016-07-micropython/social.png
|
|
---
|
|
|
|
<img src='/images/blog/2016-07-micropython/micropython.png' style='clear: right; border:none; box-shadow: none; float: right; margin-bottom: 12px;' width='200' />
|
|
So, part 1 of [ESP8266 and MicroPython](/blog/2016/07/28/esp8266-and-micropython-part1/) was pretty lame, right? Instead of getting information out of Home Assistant we are going a step forward and create our own sensor which is sending details about its state to a Home Assistant instance.
|
|
|
|
<!--more-->
|
|
|
|
Beside [HTTP POST](https://en.wikipedia.org/wiki/POST_(HTTP)) requests, MQTT is the quickest way (from the author's point of view) to publish information with DIY devices.
|
|
|
|
You have to make a decision: Do you want to pull or to [poll](https://en.wikipedia.org/wiki/Polling_(computer_science)) the information for the sensor? For slowly changing values like temperature it's perfectly fine to wait a couple of seconds to retrieve the value. If it's a motion detector the state change should be available instantly in Home Assistant or it could be missed. This means the sensor must take initiative and send the data to Home Assistant.
|
|
|
|
An example for pulling is [aREST](/integrations/arest#sensor). This is a great way to work with the ESP8266 based units and the Ardunio IDE.
|
|
|
|
## MQTT
|
|
|
|
You can find a simple examples for publishing and subscribing with MQTT in the [MicroPython](https://github.com/micropython/micropython-lib) library overview in the section for [umqtt](https://github.com/micropython/micropython-lib/tree/master/micropython/umqtt.simple).
|
|
|
|
The example below is adopted from the work of [@davea](https://github.com/davea) as we don't want to re-invent the wheel. The configuration feature is crafty and simplyfies the code with the usage of a file called `/config.json` which stores the configuration details. The ESP8266 device will send the value of a pin every 5 seconds.
|
|
|
|
```python
|
|
import machine
|
|
import time
|
|
import ubinascii
|
|
import webrepl
|
|
|
|
from umqtt.simple import MQTTClient
|
|
|
|
# These defaults are overwritten with the contents of /config.json by load_config()
|
|
CONFIG = {
|
|
"broker": "192.168.1.19",
|
|
"sensor_pin": 0,
|
|
"client_id": b"esp8266_" + ubinascii.hexlify(machine.unique_id()),
|
|
"topic": b"home",
|
|
}
|
|
|
|
client = None
|
|
sensor_pin = None
|
|
|
|
def setup_pins():
|
|
global sensor_pin
|
|
sensor_pin = machine.ADC(CONFIG['sensor_pin'])
|
|
|
|
def load_config():
|
|
import ujson as json
|
|
try:
|
|
with open("/config.json") as f:
|
|
config = json.loads(f.read())
|
|
except (OSError, ValueError):
|
|
print("Couldn't load /config.json")
|
|
save_config()
|
|
else:
|
|
CONFIG.update(config)
|
|
print("Loaded config from /config.json")
|
|
|
|
def save_config():
|
|
import ujson as json
|
|
try:
|
|
with open("/config.json", "w") as f:
|
|
f.write(json.dumps(CONFIG))
|
|
except OSError:
|
|
print("Couldn't save /config.json")
|
|
|
|
def main():
|
|
client = MQTTClient(CONFIG['client_id'], CONFIG['broker'])
|
|
client.connect()
|
|
print("Connected to {}".format(CONFIG['broker']))
|
|
while True:
|
|
data = sensor_pin.read()
|
|
client.publish('{}/{}'.format(CONFIG['topic'],
|
|
CONFIG['client_id']),
|
|
bytes(str(data), 'utf-8'))
|
|
print('Sensor state: {}'.format(data))
|
|
time.sleep(5)
|
|
|
|
if __name__ == '__main__':
|
|
load_config()
|
|
setup_pins()
|
|
main()
|
|
```
|
|
|
|
Subscribe to the topic `home/#` or create a [MQTT sensor](/integrations/sensor.mqtt/) to check if the sensor values are published.
|
|
|
|
```bash
|
|
mosquitto_sub -h 192.168.1.19 -v -t "home/#"
|
|
```
|
|
|
|
```yaml
|
|
sensor:
|
|
- platform: mqtt
|
|
state_topic: "home/esp8266_[last part of the MAC address]"
|
|
name: "MicroPython"
|
|
```
|
|
|
|
[@davea](https://github.com/davea) created [sonoff-mqtt](https://github.com/davea/sonoff-mqtt). This code will work on ESP8622 based devices too and shows how to use a button to control a relay.
|