0.57: Translations, Hacktoberfest, Timers
Home Assistant 侧边栏的 12 种语言版本。
大家好啊?! 在虚拟的 Home Assistant 总部,这又是疯狂的两周,来自世界各地的大量优秀贡献纷至沓来。新功能、Bug 修复、性能提升,应有尽有。内容很多,我们直接开始吧。
翻译
如果你还没从上面的截图里看出来,第一个重磅功能就是:我们现在可以翻译 UI 了!目前翻译范围还只限于侧边栏菜单项。即使当时还没有正式的翻译工具,贡献者们也已经迅速投入,提交了二十多种语言的菜单翻译!Home Assistant 会根据你的浏览器设置自动选择可用翻译,也可以在配置面板里手动切换语言。
我们目前正在把基于 Web 的翻译工具 lokalise.co 集成进来,让任何愿意贡献的人都能方便参与翻译。更多文档和博客文章很快就会发布,敬请期待。
前端改进
为了让翻译功能顺利运作,我们在前端侧做了大量清理工作。这次重组将帮助我们更快地迭代前端。@armills 和 @andrey-git 持续推动质量提升,也让这轮清理工作成果显著!
Hacktoberfest
Hacktoberfest 2017 终于结束了!总算告一段落。每年都会有更多开发者想为 Home Assistant 做贡献,这当然是好事,但也让代码评审者们非常辛苦。我要特别向 @pvizeli、@andrey-git、@armills、@MartinHjelmare、@fabaff 致以超级巨大的感谢。你们做得太棒了,没有你们就没有 Home Assistant! ❤
Hacktoberfest 说到底,就是属于所有为开源做贡献的人。非常感谢每一位愿意花时间了解我们代码库并提交贡献的朋友。希望这次经历让你感受到开源的魅力,也期待未来继续看到你们的贡献 👍
下面是我们的 Hacktoberfest 2017 数据统计。大家居然都还活着,简直是个奇迹:
- Main repo: 273 Pull requests were merged out of 307.
- Docs repo: 295 Pull requests merged out of 310.
- Frontend: 57 pull requests merged.
这意味着我们平均每天处理超过 20 个 Pull Request。0.56 中已经能看到成果,而这次发布也差不多。仅这几次发布中,我们就加入了 40 多个新集成。
IKEA TRÅDFRI
关于 IKEA TRADFRI,这里有好消息也有坏消息。坏消息是,IKEA 在一次固件更新中修改了内部 API,导致 Home Assistant 集成失效。好消息是,他们非常友善地给我们发了邮件,说明这些不向后兼容的变更。
长期贡献者 @lwis 迅速接手处理,并及时完成了 Home Assistant 中该集成的迁移,赶上了这次发布。干得漂亮!
@clhett01 给我们刻了一只南瓜([来自 Twitter](https://twitter.com/clhett01/status/925481848612032512))
计时器
在你开始查看更新日志之前,再来看一个亮点。贡献者 @danielperna84(因创建 HASS Configurator 而广为人知)这次又带来了一个很棒的新组件:计时器组件。借助它,你可以启动倒计时计时器,是自动化工具箱里非常实用的一件工具!更多信息请查看 timer docs。
新平台
- Introducing Ring Door Bell Camera (including StickUp cameras) and WiFi sensors (@tchellomello - #9962) (ring docs) (binary_sensor.ring docs) (摄像头.ring docs) (传感器.ring docs) (new-platform)
- add irish rail transport sensor (@ttroy50 - #9883) (传感器.irish_rail_transport docs) (new-platform)
- Add fail2ban sensor (@fronzbot - #9975) (传感器.fail2ban docs) (new-platform)
- add eph ember controls (@ttroy50 - #9721) (温控.ephember docs) (new-platform)
- whois domain lookup sensor (@GenericStudent - #10000) (传感器.whois docs) (new-platform)
- Add Deluge Switch Component (@HydrelioxGitHub - #9979) (开关.deluge docs) (new-platform)
- SNMP switch (@kirichkov - #9840) (开关.snmp docs) (new-platform)
- Microsoft tts (@jeroenterheerdt - #9973) (tts.microsoft docs) (new-platform)
- Telldus Live: Device without methods is a binary sensor (@rasmusbe - #10106) (tellduslive docs) (binary_sensor.tellduslive docs) (new-platform)
- Support for NO-IP (@fabaff - #10155) (no_ip docs) (new-platform)
- Linode (@ryanm101 - #9936) (linode docs) (binary_sensor.linode docs) (new-platform)
- Nederlandse spoorwegen (@b10m - #10136) (传感器.nederlandse_spoorwegen docs) (new-platform)
- added Yesss SMS platform (@flowolf - #10177) (new-platform)
- Add Sytadin Traffic component (@gautric - #9524) (new-platform)
- Added new Clickatell SMS messaging Notify Platform (@davlloyd - #9775) (通知.clickatell docs) (new-platform)
- Add Random binary sensor (@fabaff - #10164) (binary_sensor.random docs) (new-platform)
- Add gc100 platforms and component (@davegravy - #10159) (gc100 docs) (binary_sensor.gc100 docs) (开关.gc100 docs) (new-platform)
- Timer component (@danielperna84 - #9889) (timer docs) (new-platform)
- integration with Remember The Milk. (@ChristianKuehnel - #9803) (remember_the_milk docs) (new-platform)
- Luftdaten sensor (@lichtteil - #10274) (传感器.luftdaten docs) (new-platform)
release 0.57.1 - november 4
- Fix login screen not showing when no password stored (@balloob)
release 0.57.2 - november 5
- Update frontend with fixes for setting temperature on climate card (@balloob)
- Fix setting max brightness for TRADFRI (@ggravlingen - #10359)
release 0.57.3 - november 11
- Tellstick Duo acync callback fix (@stefan-jonasson - #10384) (tellstick docs)
- Fixed update() method and removed
dingfeature from stickupcams/floodlight (@tchellomello - #10428) (binary_sensor.ring docs) (摄像头.ring docs) (传感器.ring docs)
如果你需要帮助……
……欢迎使用我们非常活跃的论坛,或者加入我们的聊天频道。虽然发布说明开放了评论,但我们更推荐你使用前面的社区交流渠道。谢谢。
反馈问题
如果你遇到了此次发布引入的问题,请在我们的 issue tracker 中反馈。请确保完整填写 issue 模板中的所有字段。
不向后兼容的变更
-
IKEA TRÅDFRI: We no longer support entering the key in the configuration. (@lwis - #10282) (tradfri docs) (breaking change)
-
API.AI was renamed to Dialogflow. This requires to rename the entry in your
configuration.yamlfile fromapiai:todialogflow. (@fabaff - #10006) (dialogflow docs) (breaking change) -
Wink: Removed support for entering your
usernameandpasswordin your config. Use the new authentication method instead. (@w1ll1am23 - #10277) (wink docs) (breaking change) -
Use feed name assigned in EmonCMS if there is one. This changes the default behavior but still uses configured 'name' if it's set, so it won't break the configuration of people who have customized their feed names in HA config. (@KlaasH - #10021) (传感器.emoncms docs) (breaking change)
-
The
namecheapdnsnow usespassword:instead ofaccess_tokenin the configuration. Also,hostis now optional which allow people who are not using subdomains to keep their configuration shorter. (@fabaff - #10063) (namecheapdns docs) (breaking change) -
Fix recorder crash for long state string - enforce a maximum state of 255 characters at core level (@milanvo - #9696) (breaking change)
-
Add display currency setting to CoinMarketCap 传感器. The name of the sensor attribute '24h_volume_usd' is changed to '24h_volume'. (@EarthlingRich - #10093) (传感器.coinmarketcap docs) (breaking change)
-
MQTT Statestream now serializes all data to JSON before publishing. This means that string attributes and values will be quoted from now on (e.g.: '"on"' instead of 'on'). You can still read these strings without the quotes by using 'value_json' instead of 'value' where applicable (e.g., templates). This causes automatic JSON deserialization. Other simple types are not affected.
This fixes errors when an entity has an attribute that is not "a string, bytearray, int, float or None" and mqtt_statestream is used. As of now, the attribute is just handed over to paho, and paho can only send the aforementioned types. This patch fixes the issue by just casting everything to string before handing it over to paho.
There are a number of components / entities which have "other" attributes, e.g., light that have an RGB attribute which is a list. (@tinloaf - #9872) (mqtt_statestream docs) (breaking change)
-
Generic thermostat: the configuration option
tolerancehas been removed and has been replaced bycold_toleranceandhot_tolerance. This allows on and off states to have different error bands. (@biggms - #9843) (温控.generic_thermostat docs) (breaking change) -
Developers only: frontend has been refactored. The method
register_panelhas been turned into a coroutine function calledasync_register_panel. The parameterurl_pathhas been renamed tofrontend_url_path. For frontend, development, you no longer passdevelopment: 1to the http component but instead configure the frontend component to be in development mode by pointing it at a local checkout of the Polymer repo: (@balloob - #9915) (breaking change)
全部变更
- Update requests requirement (@TopdRob - #9876)
- Update
screenshot-components.pngfile. (@quamilek - #9987) - Upgrade speedtest-cli to 1.0.7 (@fabaff - #9984) (传感器.speedtest docs)
- Upgrade gitterpy to 0.1.6 (@fabaff - #9983) (传感器.gitter docs)
- Add optional attribute option to scrape sensor (@DarkFox - #10001) (传感器.scrape docs)
- Introducing Ring Door Bell Camera (including StickUp cameras) and WiFi sensors (@tchellomello - #9962) (ring docs) (binary_sensor.ring docs) (摄像头.ring docs) (传感器.ring docs) (new-platform)
- Add support for multiple disks to be monitored. (@cgtobi - #9977) (传感器.hddtemp docs)
- Update the Russound RNET component to use enhanced Russound.py (@altersis - #9739) (media_player.russound_rnet docs)
- Fix spelling error (@SilvrrGIT - #10009)
- Change persistent notification to avoid long text in entity state (@milanvo - #9967) (persistent_notification docs)
- Renaming API.AI to Dialogflow (@fabaff - #10006) (dialogflow docs) (breaking change)
- Bump dev to 0.57.0.dev0 (@fabaff - #10010)
- Add xy attribute to Yeelight (@HydrelioxGitHub - #9957) (light.yeelight docs)
- Added gaction script to support the new Google Assistant component in Docker (@chriskacerguis - #10019)
- Json api fix (@alanfischer - #10017)
- Upgrade mypy to 0.540 (@fabaff - #10013)
- Xiaomi Aqara: New xiaomi wireless button (sensor_开关.aq3) introduced (@syssi - #10008) (binary_sensor.xiaomi_aqara docs)
- Upgrade youtube_dl to 2017.10.20 (@fabaff - #10014) (media_extractor docs)
- 开关.flux: add interval and transition attributes (@abmantis - #9700) (开关.flux docs)
- Use feed name assigned in EmonCMS if there is one (@KlaasH - #10021) (传感器.emoncms docs) (breaking change)
- add irish rail transport sensor (@ttroy50 - #9883) (传感器.irish_rail_transport docs) (new-platform)
- RGB Tradfri simple support (@matemaciek - #9703) (light.tradfri docs)
- Add regression test for entity ID update bug (@armills - #10037)
- Aioautomatic bump and scope update (@armills - #10043)
- Fix no data event triggers (@armills - #10049) (automation.event docs)
- fixing a typo in the old library which broke hub gen2 compatibility (@sander76 - #9990)
- Add fail2ban sensor (@fronzbot - #9975) (传感器.fail2ban docs) (new-platform)
- Show current program thumbnail as media_image (@pschmitt - #10033)
- Add link to docs and update ordering (@fabaff - #10062) (duckdns docs)
- Remove STATE_UNKNOWN (@fabaff - #10064) (传感器.glances docs)
- update library for xiaomi_aqara, change from pyCrypto to cryptography (@danielhiversen - #10066) (xiaomi_aqara docs)
- Make host optional (@fabaff - #10063) (namecheapdns docs) (breaking change)
- Change deprecated use of maintainer tag in Dockerfile. (@EarthlingRich - #10068)
- add eph ember controls (@ttroy50 - #9721) (温控.ephember docs) (new-platform)
- EntityComponent: revert warning (@pvizeli - #10078)
- Upgrade Sphinx to 1.6.5 (@fabaff - #10090)
- Support for Entity.available in sensor/rest (@pezinek - #10073) (传感器.rest docs)
- whois domain lookup sensor (@GenericStudent - #10000) (传感器.whois docs) (new-platform)
- Update CODEOWNERS (@danielhiversen - #10103)
- fixed typo (@iMarkus - #10110)
- Revert gactions in Docker (@balloob - #10115)
- Add Deluge Switch Component (@HydrelioxGitHub - #9979) (开关.deluge docs) (new-platform)
- Fix PEP8 and PEP257 issues (@fabaff - #10108) (toon docs) (温控.toon docs) (传感器.toon docs) (开关.toon docs)
- Fixes #10030. Extented Network Exceptions handling. (@zabuldon - #10116) (tesla docs)
- Consolidate frontend (@balloob - #9915) (breaking change)
- Rfxtrx fix (@danielhiversen - #10128) (rfxtrx docs)
- Xiaomi MiIO Fan: Xiaomi Air Purifier 2 integration (@syssi - #9837) (fan.xiaomi_miio docs)
- WIP: Refactor Axis component removing external dependencies (@Kane610 - #9791) (axis docs) (binary_sensor.axis docs)
- Allow folder selection for IMAP unread sensor (@amelchio - #10126) (传感器.imap docs)
- Fix Sonarr and Radarr divide by zero (@tboyce021 - #10101) (传感器.radarr docs) (传感器.sonarr docs)
- Plex refactor Part 1 - Update plexapi to 3.0.3 (@ryanm101 - #9988) (media_player.plex docs)
- Add Google Domains component (@tboyce021 - #9996)
- Add Deluge Sensor (@HydrelioxGitHub - #10117)
- Added increment + decrement to input_number (@danielperna84 - #9870) (input_number docs)
- Fix lint google-domains (@pvizeli - #10135) (google_domains docs)
- Fire numeric_state action when first state change matches criteria (@amelchio - #10125) (automation.numeric_state docs)
- SNMP switch (@kirichkov - #9840) (开关.snmp docs) (new-platform)
- Binary sensor for detecting linear trends (@hotplot - #9808) (binary_sensor.trend docs)
- Fix recorder crash for long state string - enforce at core level (@milanvo - #9696) (breaking change)
- Microsoft tts (@jeroenterheerdt - #9973) (tts.microsoft docs) (new-platform)
- Upgrade pysnmp to 4.4.1 (@fabaff - #10138) (device_tracker.snmp docs) (传感器.snmp docs) (开关.snmp docs)
- Telldus Live: Device without methods is a binary sensor (@rasmusbe - #10106) (tellduslive docs) (binary_sensor.tellduslive docs) (new-platform)
- Add last action to xiaomi aqara button (@danielhiversen - #10131) (binary_sensor.xiaomi_aqara docs)
- Add display currency setting to CoinMarketCap sensor (@EarthlingRich - #10093) (传感器.coinmarketcap docs) (breaking change)
- Xiaomi MiIO Switch: Support for different device types (@syssi - #9836) (开关.xiaomi_miio docs)
- Core POC support for polymer i18n (@armills - #6344) (history docs) (logbook docs)
- Don't use pypi package in dev mode. Allow non-fingerprinted mdi. (@andrey-git - #10144)
- added platform discovery code back into device_tracker (@etsinko - #10169) (device_tracker docs)
- Upgrade sendgrid to 5.3.0 (@fabaff - #10166) (通知.sendgrid docs)
- Upgrade python_opendata_transport to 0.0.3 (@fabaff - #10162) (传感器.swiss_public_transport docs)
- Upgrade libnacl to 1.6.1 (@fabaff - #10161) (device_tracker.owntracks docs)
- New DTLSSocket version that fixes Cython dependency for Trådfri (@flowolf - #10123) (tradfri docs)
- Rfxtrx binary sensor rewrite (@ypollart - #10152) (rfxtrx docs) (binary_sensor.rfxtrx docs)
- Support for NO-IP (@fabaff - #10155) (no_ip docs) (new-platform)
- Reduce album art flickering in media player UI (@amelchio - #10163) (media_player docs)
- Avoid Sonos errors for tracks with no artist information (@amelchio - #10160) (media_player.sonos docs)
- MPD now uses the filename if song doesn't have metadata (@C0DK - #10085)
- Updated denon component to play nice with the 3808CI that doesn't support NSFRN command (@randellhodges - #10157)
- Fix for issue #9240 (@bastshoes - #10173) (fan.mqtt docs)
- Linode (@ryanm101 - #9936) (linode docs) (binary_sensor.linode docs) (new-platform)
- Cast attribute values to string before publishing to MQTT (@tinloaf - #9872) (mqtt_statestream docs) (breaking change)
- Xiaomi MiIO Light: Philips Eyecare Lamp 2 support (@syssi - #10007) (light.xiaomi_miio docs) (开关.xiaomi_miio docs) (vacuum.xiaomi_miio docs)
- Nederlandse spoorwegen (@b10m - #10136) (传感器.nederlandse_spoorwegen docs) (new-platform)
- Added capability to pass a filename to the downloader component (@tchellomello - #10059) (downloader docs)
- Limits of the favorite level updated. Values between 0 and 16 will be accepted. (@syssi - #10186) (fan.xiaomi_miio docs)
- added Yesss SMS platform (@flowolf - #10177) (new-platform)
- Add Sytadin Traffic component (@gautric - #9524) (new-platform)
- media_title property now returns current source (@etsinko - #10120) (media_player.monoprice docs)
- Added new Clickatell SMS messaging Notify Platform (@davlloyd - #9775) (通知.clickatell docs) (new-platform)
- update boto3 to 1.4.7 and botocore to 1.7.34 (@TopdRob - #10121) (tts.amazon_polly docs)
- Add Random binary sensor (@fabaff - #10164) (binary_sensor.random docs) (new-platform)
- Add clickatell (@fabaff - #10199)
- Update CODEOWNERS (@ggravlingen - #10198)
- Add unit test for hddtemp 传感器. (@cgtobi - #10154)
- Upgrade pylast to 2.0.0 (@fabaff - #10200) (传感器.lastfm docs)
- Move constant to 'const.py' and use already definied ones (@fabaff - #10204) (input_number docs) (温控.honeywell docs) (device_tracker.asuswrt docs) (image_processing.openalpr_local docs) (传感器.google_travel_time docs) (传感器.uk_transport docs) (开关.flux docs)
- Upgrade youtube_dl to 2017.10.29 (@fabaff - #10202) (media_extractor docs)
- Bump pyvera to 0.2.38. (@pavoni - #10206) (vera docs)
- Move constant to 'const.py' and use already defined ones (@fabaff - #10211)
- Add new service 'snapshot' for camera (@pvizeli - #10207) (camera docs)
- Upgrade restrictedpython to 4.0b2 (@fabaff - #10179)
- Google Assistant Script Support (@epleypa - #10148) (google_assistant docs)
- Raincloudy version bump (@tchellomello - #10225) (raincloud docs)
- Add gc100 platforms and component (@davegravy - #10159) (gc100 docs) (binary_sensor.gc100 docs) (开关.gc100 docs) (new-platform)
- Librouteros capsman fix (@nicolaevladescu - #10217) (device_tracker.mikrotik docs)
- Add entity_picture_template options to Template Cover, Template Light, Template Sensor, and Template Switch (@bachya - #9854) (cover.template docs)
- Xiaomi Aqara: Remove/Add device service added (@syssi - #10150) (xiaomi_aqara docs)
- Introducing multi-zone support for yamaha_musiccast devices (@jalmeroth - #9968)
- Clarify yamaha play_media parameters (@sdague - #10228) (media_player.yamaha docs)
- Update services.yaml files (@fabaff - #10229)
- Add priority attribute for hyperion (@ImEmJay - #10102) (light.hyperion docs)
- OwnTracks work. Beacon logic and testcases (@ehagan - #10183) (device_tracker.owntracks docs)
- Sytadin default value must be a list #10233 (@gautric - #10234)
- Use theme color in loading screen. (@andrey-git - #10248)
- Move constant to 'const.py' (@fabaff - #10249) (传感器.hddtemp docs) (传感器.synologydsm docs)
- Add support for odhcpd DHCP server (@chemicalstorm - #9858) (device_tracker.ubus docs)
- Changed single tolerance value to COLD and HOT tolerances. Allows on and off states to have different error bands. (@biggms - #9843) (温控.generic_thermostat docs) (breaking change)
- Add support for 'Send Current Position' feature in Geofency 5.1 (@gunnarhelgason - #10012) (device_tracker.geofency docs)
- input_text - Added service doc (@cdce8p - #10238) (input_text docs)
- Mqtt light options to fix #9330 and #7810 (@TD22057 - #9829) (light.mqtt docs)
- WIP: Timer component (@danielperna84 - #9889) (timer docs) (new-platform)
- Use translated panel names on frontend (@armills - #10197)
- Alexa SmartHome API extend (@pvizeli - #10251)
- integration with Remember The Milk. (@ChristianKuehnel - #9803) (remember_the_milk docs) (new-platform)
- Google Assistant: make it possible to set a custom domain/type (@perosb - #10188) (google_assistant docs)
- Add EntityFilter helper (@mw-white - #10221)
- Avoid Sonos error during startup (@amelchio - #10146) (media_player.sonos docs)
- Update netdisco to 1.2.3 (@balloob - #10266)
- Extracted json saving and loading (@molobrakos - #10216) (media_player.plex docs)
- Change introduction card to use persistent notification (@balloob - #10265)
- Add unit test for wake on lan component. (@cgtobi - #10262)
- Add link to docs (@fabaff - #10272)
- Add xy support to Alexa HomeAPI v3 (@pvizeli - #10268)
- Remove http.development (@balloob - #10267) (http docs)
- Add setup platform tests for the season sensor component. (@cgtobi - #10270)
- Add Google Assistant support for setting climate temperature and operation mode. (@emosenkis - #10174) (google_assistant docs)
- WIP: Cleanup async stuff on templates (@pvizeli - #10275) (开关.template docs)
- Removed username/password auth and moved to new save/load json (@w1ll1am23 - #10277) (wink docs) (breaking change)
- Support new tradfri individual DTLS identification method (@lwis - #10282) (tradfri docs) (breaking change)
- Update plant for dealing with float values (@dominikandreas - #10246) (plant docs)
- Fixed Tradfri whitebulbs handling after #9703 (@matemaciek - #10040) (light.tradfri docs)
- Luftdaten sensor (@lichtteil - #10274) (传感器.luftdaten docs) (new-platform)
- Improve unit tests for season sensor component. (@cgtobi - #10288)
- Better scene handling (@joaqtor - #10213)
- Follow-up: Replace emulated_hue: with emulated_hue_hidden (@vatir - #9894) (light.hue docs)
- Maintain recorder purge schedule (@PeteBa - #10279)
- update mask-icon to a working mask-icon.svg (@NovapaX - #10290)
- Cleanup Xiaomi Aqara (@balloob - #10302) (xiaomi_aqara docs)
- Fix panel_custom (@balloob - #10303) (panel_custom docs)
- Cloud: Authenticate with id token (@balloob - #10304)
- Allow an empty MAC address at the Xiaomi Aqara Gateway configuration. (@syssi - #10307) (xiaomi_aqara docs)
- Upgrade credstash to 1.14.0 (@fabaff - #10310)
- TellStick / Remove async flavor / add hassio (@pvizeli - #10315) (tellstick docs)
- Strip white space from configurator input (@w1ll1am23 - #10317) (wink docs)
- Fix recorder purge (@pvizeli - #10318)
- Fix formatting invalid config text (@balloob - #10319)
- Tc update (@craigjmidwinter - #10322) (alarm_control_panel.totalconnect docs)
- Move timer into correct folder (@pvizeli - #10324) (timer docs)


