diff --git a/README.md b/README.md
index bac5568..8f0672f 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,8 @@ docker create \
--restart unless-stopped \
rmountjoy/dashmachine:latest
```
+### Synology
+Check out this awesome guide: https://nashosted.com/manage-your-self-hosted-applications-using-dashmachine/
### Python
Instructions are for linux.
```
diff --git a/dashmachine/main/read_config.py b/dashmachine/main/read_config.py
index e958a20..15b203b 100644
--- a/dashmachine/main/read_config.py
+++ b/dashmachine/main/read_config.py
@@ -191,14 +191,11 @@ def read_config():
db.session.merge(tag_db)
db.session.commit()
else:
- if Tags.query.first():
- app.tags = "Untagged"
- if not Tags.query.filter_by(name="Untagged").first():
- tag_db = Tags(name="Untagged")
- db.session.add(tag_db)
- db.session.commit()
- else:
- app.tags = None
+ app.tags = "Untagged"
+ if not Tags.query.filter_by(name="Untagged").first():
+ tag_db = Tags(name="Untagged")
+ db.session.add(tag_db)
+ db.session.commit()
db.session.add(app)
db.session.commit()
diff --git a/dashmachine/platform/transmission.py b/dashmachine/platform/transmission.py
index 00dc05d..3c2038e 100644
--- a/dashmachine/platform/transmission.py
+++ b/dashmachine/platform/transmission.py
@@ -19,8 +19,8 @@ value_template = {{ value_template }}
| platform | Yes | Name of the platform. | transmission |
| host | Yes | Host of Transmission Web UI | host |
| port | Yes | Port of Transmission Web UI | port |
-| user | No | Username for Transmission Web UI | username |
-| password | No | Password for Transmission Web UI | password |
+| user | Yes | Username for Transmission Web UI | username |
+| password | Yes | Password for Transmission Web UI | password |
| value_template | Yes | Jinja template for how the returned data from API is displayed. | jinja template |
diff --git a/dashmachine/platform/weather.py b/dashmachine/platform/weather.py
new file mode 100644
index 0000000..cd2c6d3
--- /dev/null
+++ b/dashmachine/platform/weather.py
@@ -0,0 +1,130 @@
+"""
+
+##### Weather
+Weather is a great example of how you can populate a custom card on the dash. This plugin creates a custom card with weather data from [metaweather.com](https://www.metaweather.com)
+```ini
+[variable_name]
+platform = weather
+woeid = 2514815
+temp_unit = c
+wind_speed_unit = kph
+air_pressure_unit = mbar
+visibility_unit = km
+```
+> **Returns:** HTML for custom card
+
+| Variable | Required | Description | Options |
+|-----------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------|-------------------|
+| [variable_name] | Yes | Name for the data source. | [variable_name] |
+| platform | Yes | Name of the platform. | weather |
+| woeid | Yes | woeid of location to use. Go here to get (replace lat and long): https://www.metaweather.com/api/location/search/?lattlong=50.068,-5.316 | url |
+| temp_unit | No | The unit to be used for temperature | c,f |
+| wind_speed_unit | No | The unit to be used for wind speed | kph,mph |
+| air_pressure_unit | No | The unit to be used for air pressure | mbar, inHg |
+| visibility_unit | No | The unit to be used for visibility | km,mi |
+
+> **Working example:**
+>```ini
+>[variable_name]
+>platform = weather
+>woeid = 2514815
+>
+>[custom_card_name]
+>type = custom
+>data_sources = variable_name
+>```
+
+"""
+
+import requests
+from flask import render_template_string
+
+
+class Platform:
+ def __init__(self, *args, **kwargs):
+ # parse the user's options from the config entries
+ for key, value in kwargs.items():
+ self.__dict__[key] = value
+
+ # set defaults for omitted options
+ if not hasattr(self, "woeid"):
+ self.woeid = 2514815
+ if not hasattr(self, "temp_unit"):
+ self.temp_unit = "c"
+ if not hasattr(self, "wind_speed_unit"):
+ self.wind_speed_unit = "kph"
+ if not hasattr(self, "air_pressure_unit"):
+ self.air_pressure_unit = "x"
+ if not hasattr(self, "visibility_unit"):
+ self.visibility_unit = "km"
+
+ self.html_template = """
+