* Fixes issue #4067 - Wunderground sensor with alerts exceeds API limits
To avoid hitting the max limit of 500 calls per day, this patch keeps weather conditions being updated each 5 minutes
and weather advisories each 15 minutes.
This formula will result the following:
conditions -> 300 seconds -> 5 minutes -> 12 req/h -> 288 req/day
alerts -> 900 seconds -> 15 minutes -> 4 req/h -> 96 req/day
* Using timedelta in minutes instead seconds
* If no weather advisories were issued, state should return 0 instead Unknown
* Updated to keep on the same if statement
* Revert "Updated to keep on the same if statement"
This reverts commit 0e6a94aa0f.
* Initial commit of the iOS component and platform
* Allow extra
* Add battery to identify, a new function to get devices, and load the upcoming sensor
* Add iOS sensor platform, currently for battery state & level
* Add discoverability for the iOS app
* Convert single quote to double quotes
* Load all required components and platforms when loading the iOS component for the best experience
* Unify quote style to double
* Change to hass_ios
* Update push URL, add support for logging based on status code, log rate limit updates
* Block iOS from coverage checks for now...
* Add Bbox Routeur bandwidth as sensors
Add possibility to monitor max and currently used bandwidth of your xdsl connection for Bbox Routeur
* Minor Fixes
Unit constant get back into the main sensor file
* Unused round removed
* Pilight daemon expects JSON serializable data. Thus dict is needed and not a mapping proxy.
* Add explanation why dict as message data is needed
* Use pytest-caplog and no unittest.TestCase
* #3829 - Fixed type LowHighTuple doesn't define __round__ method issue when Nest is operating in range mode
* Testing if temperature is a tuple instead int or float
By not successfully rendering unknown objects to an empty string
the caller provided error_value actually gets used.
This allows, for instance, the MQTT sensor to retain its state when an
unexpected or unwanted message (#2733/#3834) is received.
* Added the ability to Weather Underground to track severe weather alerts
* * Added message on the advisory attr
* Updated tests
* * Making use of guard clause
* Checking multiple_alerts prior loop
* Using a better way to create dict
* Fixed issue to set to None only the object that failed
* Added unittest
* Split update() method to different calls with their one throttle control to minimize API calls
* Updated unittest and make sure the alert sensor will not return 'unknown' status'
* Removed update() method from state property
* Branch rebased and include Weather Underground attribution
* Update wunderground.py
* Initial Zoneminder commit
* Fixing bug when ZM sets its function to 'None'
* Adding zoneminder to coverage
* Quick Doc fix
* Update zoneminder.py
Doc Fix
* making the url base optional
This adds a sensor component that builds sensors based on the arwn
project (https://github.com/sdague/arwn). This uses a 433mhz receiver
to collect weather data and publish it over mqtt in a well defined
schema, which home-assistant can display as sensors.
* Initial version of "haveibeenpwned" sensor component
* 2 flake8 fixes
* remove debugging error message
* Increase scan_interval as well as throttle to make sure that during initial startup of hass the request happens with 5 seconds delays and after startup with 15 minutes delays. Scan_interval is increased also to not call update as often
* update .coveragerc
* remove (ssl) verify=False
* - use dict to keep the request values with email as key
- use track_point_in_time system to make sure data updates initially at 5 seconds between each call until all sensor's email have a result in the dict.
* fix a pylint error that happend on the py35 tests
* Add discovery support for Netatmo Weather station
Only The weather information are currently supported (No battery or wifi status supported)
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Add unique_id for netatmo sensors to avoid duplicate
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Update requirements_all.txt and PEP8 fixes
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Rename Forecast.io platform to Dark Sky
* Upgrade to python-forecastio to 1.3.5
* Update to reflect name change (Forecast.io -> Dark Sky)
* Rename forecast to darksky
* Add async_safe annotation
* More async_run_job
* coroutine -> async_save
* Lint
* Rename async_safe -> callback
* Add tests to core for different job types
* Add one more test with different type of callbacks
* Fix typing signature for callback methods
* Fix callback service executed method
* Fix method signatures for callback
* Template platforms: create_task instead of yield from
* Automation: less yielding, more create_tasking
* Helpers.script: less yielding, more create_tasking
* Deflake logbook test
* Deflake automation reload config test
* MQTT: Use async_add_job and threaded_listener_factory
* Deflake other logbook test
* lint
* Add test for automation trigger service
* MQTT client can be called from within async
* Update Command classes and device types to Sigma SDK
* Fix some pylint
* Seperate constants to file
* Flake8
* coverage and flake8 pylint
* Add services.yaml
* Service descriptions was missing
* Spelling :)
* grammar
* Remove zwave service descriptions from main
* Add ability to change Nest mode to all available options
* Make Nest state reflect current operation not current operation mode
* Update Nest sensor to use operation mode
* Fix linting
* Revert "Make Nest state reflect current operation not current operation mode"
This reverts commit 573ba028d8.
Conflicts:
homeassistant/components/climate/nest.py
* Added the ability to trigger the alarm.
* Bump version of pyenvisalink to 1.3
* Fixed an issue where the panic_type was not passed to the sub-components properly.
* Bump pyenvisalink version, and make default panic mode = police.
* Pass in event loop to pyenvisalink.
* Made the components play nicely with asyncio.
* Bump pyenvisalink to 1.6
* Bump up pyenvisalink, and better handle synchronous setup.
* Added email component
* added email sensor component
* added doc string to test class
* fixed lint error
* fixed lint error
* rename of email component
* added another block as test fails on CI
* added retry to multi email test
* added delay to retry
* added to .coveragerc
* removed sleep from tests and fixed up stale comments
* Added support to Yahoo Finance to track the stock market within Home Assistant
* Fixed pylint issues
* Fixed formatting issues
* Fixed pep257 issues
* - Fixed URL link
- Added attributes for Yahoo Finance
* Removed price sales ATTR
* Fixed lint and flake8 issues. Added attribution to Yahoo! per https://developer.yahoo.com/attribution/
* Add Initial version for emoncms feeds sensor
* flake8 test fixes
* pylint test fixes
* - fix bug with include_feed_id_names not assigning the name to the element in the same postion as found in include_feed_id
- a few structure changes to have less nesting (pylint fix)
- minor other changes
* update .coveragerc
* voluptuous fixes:
- exclude_feed_id and include_feed_id Exclusive group so that only one (or none) can be specified at once
- id must be positive int
- exclude_feed_id and include_feed_id must be positive int
* Fix comment so it refers to the documentation
* use string formatting
* Remove outer try
* clean up sensors.append calls
(break them out for loop)
* multiple changes like:
- rename config value "include_feed_id" to "include_only_feed_id"
- rename config value "include_feed_id_names" to "sensor_names"
- renamed config value sensor_names is now a dictionary an can also be used when renamed config value "include_only_feed_id" is not specified
- Set default value for scan_interval using the config validation
- blank lines between default, 3rd party and own imports
- removed homeassistant.util import, it was not needed anymore
* fix extended voluptuous schema
scan_interval should not be extended to PLATFORM_SCHEMA as it was already in the schema by config_validation helper so i should not add / change it. It was also causing problems reading the value from the config.
* Use Home Assistant polling
* remove statement that can never happen
* Guard clause
* Reduce instance variables
* First version of the MiFlora sensor (not yet finished)
* First workign version
* Added some documentation
Get name from sensor, if not defined
* Ignore IOError
* Added force_update option
* Updated comments
* Renamed fertility to conductivity (what it really is)
* MiFlora library update
* Updated helper files
* Formatting
* Fixed pylint errors
* Removed default from monitored conditions
* Removed KeyError handling as a KeyError should never be raised
* Added a return when no data is received
* emoved unnecessary return statement
* Changed default name
* Changes quotes and string operation ( @Teagan42 )
* - number of samples for median calculation is now configurable
- set state to None if no data could be polled from sensor
* Bugfix in library
more logging
* Fixed miflora version number
* Added Sensor Support for KNX Devices
Added Sensor for KNX Group Addresses
- Temperature
- Wind Speed
- Illuminance(LUX)
Mostly to fetch from a KNX Wetterstation
* Some pylint,flake8 fixes
* Pydoc Fixes
* Fix Coverage Ordering
* Refactor KNX Sensor
Refactor to Idea from @usul27 and added Minimum Maximum
* Removed Measurement Untis from const.py
Removed needed Measurement Units from const.py and add it to
sensor\knx.py
* Change .coveragerc
* Add as Requested from @Teagan42 the new Type Names
Additional add CONF_MINIMUM and CONF_MAXIMUM
* Added Changes as Requested from @Teagan42
* Fixed the Merge Conflict, Hopefully i done it rigth :-)
* Fixed Styling
If mFi sensors are identified but not fully assigned they can
have no tag value, and mficlient throws a ValueError to signal this.
This patch handles that case by considering such devices to always
be STATE_OFF.
* Allow user to configure server id to perform speed test against
* Don't overwrite list
* Type-o
* Convert to string
* Append lists
* str(None) => 'None' did not realize that.
* Added support for serial HM-Z19 CO2 sensor
* Minor pylint bug fixes
* Added new files to .coveragerc
* Removed newline
* Changes in requirements after change of pmsensor library
* Change the implementation of default name
* Check if serial interface is working before adding the sensor
* Maximum sensor value is 5000ppm
The repository already merged the pull request adding python3 support.
root is no longer required to use the gpio.
Signed-off-by: Roi Dayan <roi.dayan@gmail.com>
* Clean-up, ordering, constants, and extend of schema
* Put REQUIREMENTS back and re-add line breaks
* Clean-up, ordering, constants, and extend of schema
* Extend platform
* Added support for name
Added name support and changed default name to "Forecast.io" since "Weather" had conflict with Yahoo weather and Open weather map
* Update forecast.py
* Add FritzBox call monitor sensor
* Correct docstrings and suppress too few public methods warning
* Remove blank lines after docstrings
* Add blank lines after class docstrings
* Remove trailing white space
* Make daemon; add reconnect on disconnect
* HP ILO component
* HP ILO component
* Add Onboard Administrator sensor
* Add Onboard Administrator sensor
* Add period to first line
Fix D400 error on line 1
* Implemented range checking for temperature and humidity. Out-of-range values will be ignored
* Removed unused import
* Use celsius_to_fahrenheit conversion method
* Add support for GPSD
* Add gpsd.py
* Check if socket is open
* Fix pylint issue
* Rename file to be a sensor
* Update for being a sensor
* Rework for being a sensor
* Update to latest Plex API, add music support.
* Fix PyLint errors.
* Update Plex sensor module to latest PlexAPI.
* Oops - update Python sensor import.
* According to PlexAPI docs, this is the new API for Plex Pass members.
* More pylint STFUs.
* Move pylint suppression.
* Use plexapi NA type directly.
* Pylint objects to short variable names.
Add unit symbol constants
Initial unit system object
Import more constants
Pydoc for unit system file
Import constants for configuration validation
Unit system validation method
Typing for constants
Inches are valid lengths too
Typings
Change base class to dict - needed for remote api call serialization
Validation
Use dictionary keys
Defined unit systems
Update location util to use metric instead of us fahrenheit
Update constant imports
Import defined unit systems
Update configuration to use unit system
Update schema to use unit system
Update constants
Add imports to core for unit system and distance
Type for config
Default unit system
Convert distance from HASS instance
Update temperature conversion to use unit system
Update temperature conversion
Set unit system based on configuration
Set info unit system
Return unit system dictionary with config dictionary
Auto discover unit system
Update location test for use metric
Update forecast unit system
Update mold indicator unit system
Update thermostat unit system
Update thermostat demo test
Unit tests around unit system
Update test common hass configuration
Update configuration unit tests
There should always be a unit system!
Update core unit tests
Constants typing
Linting issues
Remove unused import
Update fitbit sensor to use application unit system
Update google travel time to use application unit system
Update configuration example
Update dht sensor
Update DHT temperature conversion to use the utility function
Update swagger config
Update my sensors metric flag
Update hvac component temperature conversion
HVAC conversion for temperature
Pull unit from sensor type map
Pull unit from sensor type map
Update the temper sensor unit
Update yWeather sensor unit
Update hvac demo unit test
Set unit test config unit system to metric
Use hass unit system length for default in proximity
Use the name of the system instead of temperature
Use constants from const
Unused import
Forecasted temperature
Fix calculation in case furthest distance is greater than 1000000 units
Remove unneeded constants
Set default length to km or miles
Use constants
Linting doesn't like importing just for typing
Fix reference
Test is expecting meters - set config to meters
Use constant
Use constant
PyDoc for unit test
Should be not in
Rename to units
Change unit system to be an object - not a dictionary
Return tuple in conversion
Move convert to temperature util
Temperature conversion is now in unit system
Update imports
Rename to units
Units is now an object
Use temperature util conversion
Unit system is now an object
Validate and convert unit system config
Return the scalar value in template distance
Test is expecting meters
Update unit tests around unit system
Distance util returns tuple
Fix location info test
Set units
Update unit tests
Convert distance
DOH
Pull out the scalar from the vector
Linting
I really hate python linting
Linting again
BLARG
Unit test documentation
Unit test around is metric flag
Break ternary statement into if/else blocks
Don't use dictionary - use members
is metric flag
Rename constants
Use is metric flag
Move constants to CONST file
Move to const file
Raise error if unit is not expected
Typing
No need to return unit since only performing conversion if it can work
Use constants
Line wrapping
Raise error if invalid value
Remove subscripts from conversion as they are no longer returned as tuples
No longer tuples
No longer tuples
Check for numeric type
Fix string format to use correct variable
Typing
Assert errors raised
Remove subscript
Only convert temperature if we know the unit
If no unit of measurement set - default to HASS config
Convert only if we know the unit
Remove subscription
Fix not in clause
Linting fixes
Wants a boolean
Clearer if-block
Check if the key is in the config first
Missed a couple expecting tuples
Backwards compatibility
No like-y ternary!
Error handling around state setting
Pretty unit system configuration validation
More tuple crap
Use is metric flag
Error handling around min/max temp
Explode if no unit
Pull unit from config
Celsius has a decimal
Unused import
Check if it's a temperature before we try to convert it to a temperature
Linting says too many statements - combine lat/long in a fairly reasonable manner
Backwards compatibility unit test
Better doc
* Make sure values are updated regardles of manual or frontend update,
* Devices with set_switch command was not happy with fast updating.
* Binary triggersensors command was not happy with refreshed updating.
* Add power attribute to switch.
* Move device_state_attributes into base class.
* Fix imports following refactor.
* Bump pyvera version - should add contributed support for older (UI5) version dimmers and locks.
* Refactor device lookup to be based on vera classes, push category back into library.
* Add generic power attribute, fix inherited class order bug.
* Tidy.