Skip to content

Commit

Permalink
Merge branch 'smarthomeNG:develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
lgb-this authored Mar 7, 2024
2 parents 6d5239e + 8992a92 commit ba34304
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 274 deletions.
2 changes: 1 addition & 1 deletion robonect/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class Robonect(MqttPlugin):
Main class of the Plugin. Does all plugin specific stuff and provides
the update functions for the items
"""
PLUGIN_VERSION = '1.0.5/' # (must match the version specified in plugin.yaml)
PLUGIN_VERSION = '1.0.5' # (must match the version specified in plugin.yaml)
STATUS_TYPES = ['mower/status', 'mower/status/text', 'status_text_translated', 'mower/distance', 'mower/status/duration',
'mower/statistic/hours',
'mower/stopped', 'mower/mode', 'mower/mode/text', 'mode_text_translated', 'mower/battery/charge', 'blades_quality',
Expand Down
112 changes: 0 additions & 112 deletions rrd/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ def __init__(self, sh):
self.logger.error("{}: Unable to import Python package 'rrdtool'".format(self.get_fullname()))
return

self.init_webinterface()
return

def run(self):
Expand Down Expand Up @@ -359,114 +358,3 @@ def _create(self, rrd):
self.logger.debug("Creating rrd ({0}) for {1}.".format(rrd['rrdb'], rrd['item']))
except Exception as e:
self.logger.warning("Error creating rrd ({0}) for {1}: {2}".format(rrd['rrdb'], rrd['item'], e))

# ToDo:
# create a meaningful webinterface

def init_webinterface(self):
""""
Initialize the web interface for this plugin
This method is only needed if the plugin is implementing a web interface
"""
try:
self.mod_http = Modules.get_instance().get_module(
'http') # try/except to handle running in a core version that does not support modules
except:
self.mod_http = None
if self.mod_http == None:
self.logger.error("Not initializing the web interface")
return False

import sys
if not "SmartPluginWebIf" in list(sys.modules['lib.model.smartplugin'].__dict__):
self.logger.warning("Web interface needs SmartHomeNG v1.5 and up. Not initializing the web interface")
return False

# set application configuration for cherrypy
webif_dir = self.path_join(self.get_plugin_dir(), 'webif')
config = {
'/': {
'tools.staticdir.root': webif_dir,
},
'/static': {
'tools.staticdir.on': True,
'tools.staticdir.dir': 'static'
}
}

# Register the web interface as a cherrypy app
self.mod_http.register_webif(WebInterface(webif_dir, self),
self.get_shortname(),
config,
self.get_classname(), self.get_instance_name(),
description='')

return True


# ------------------------------------------
# Webinterface of the plugin
# ------------------------------------------

import cherrypy
from jinja2 import Environment, FileSystemLoader


class WebInterface(SmartPluginWebIf):

def __init__(self, webif_dir, plugin):
"""
Initialization of instance of class WebInterface
:param webif_dir: directory where the webinterface of the plugin resides
:param plugin: instance of the plugin
:type webif_dir: str
:type plugin: object
"""
self.logger = logging.getLogger(__name__)
self.webif_dir = webif_dir
self.plugin = plugin
self.tplenv = self.init_template_environment()

self.items = Items.get_instance()

@cherrypy.expose
def index(self, reload=None):
"""
Build index.html for cherrypy
Render the template and return the html file to be delivered to the browser
:return: contents of the template after beeing rendered
"""
tmpl = self.tplenv.get_template('index.html')
# add values to be passed to the Jinja2 template eg: tmpl.render(p=self.plugin, interface=interface, ...)
return tmpl.render(p=self.plugin, items=sorted(self.items.return_items(), key=lambda k: str.lower(k['_path'])))


@cherrypy.expose
def get_data_html(self, dataSet=None):
"""
Return data to update the webpage
For the standard update mechanism of the web interface, the dataSet to return the data for is None
:param dataSet: Dataset for which the data should be returned (standard: None)
:return: dict with the data needed to update the web page.
"""
if dataSet is None:
# get the new data
data = {}

# data['item'] = {}
# for i in self.plugin.items:
# data['item'][i]['value'] = self.plugin.getitemvalue(i)
#
# return it as json the the web page
# try:
# return json.dumps(data)
# except Exception as e:
# self.logger.error("get_data_html exception: {}".format(e))
return {}

40 changes: 5 additions & 35 deletions rrd/user_doc.rst
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
.. index:: Plugins; rrd
.. index:: rrd


===
rrd
===


Das `RRDTool <https://oss.oetiker.ch/rrdtool/>`_ ist ein weitverbreitetes Tool um Zeitreihen von Messdaten aufzuzeichnen.
Das `RRDTool <https://oss.oetiker.ch/rrdtool/>`_ ist ein weitverbreitetes Tool um Zeitreihen von Messdaten aufzuzeichnen.
Dieses Plugin stellt die Möglichkeit bereit Itemwerte an das RRDTool weiterzugeben.



Anforderungen
=============

Expand Down Expand Up @@ -47,36 +43,9 @@ Die Plugin Parameter und die Informationen zur Item-spezifischen Konfiguration d
unter :doc:`/plugins_doc/config/rrd` beschrieben.


plugin.yaml
-----------

Zu den Informationen, welche Parameter in der ../etc/plugin.yaml konfiguriert werden können bzw. müssen, bitte
bitte die Dokumentation :doc:`Dokumentation </plugins_doc/config/rrd>` lesen, die aus
den Metadaten der plugin.yaml erzeugt wurde (siehe oben).


items.yaml
----------

Zu den Informationen, welche Attribute in der Item Konfiguration verwendet werden können bzw. müssen, bitte
bitte die Dokumentation :doc:`Dokumentation </plugins_doc/config/rrd>` lesen, die aus
den Metadaten der plugin.yaml erzeugt wurde (siehe oben).


logic.yaml
----------

Zu den Informationen, welche Konfigurationsmöglichkeiten für Logiken bestehen, bitte
bitte die Dokumentation :doc:`Dokumentation </plugins_doc/config/rrd>` lesen, die aus
den Metadaten der plugin.yaml erzeugt wurde (siehe oben).

Funktionen
----------

Zu den Informationen, welche Funktionen das Plugin bereitstellt (z.B. zur Nutzung in Logiken), bitte
bitte die Dokumentation :doc:`Dokumentation </plugins_doc/config/rrd>` lesen, die aus
den Metadaten der plugin.yaml erzeugt wurde (siehe oben).

Das Plugin stellt für jedes Item das für die Verwendung mit dem Plugin konfiguriert wurde eine Datenbankfunktion bereit.

``sh.item.db(function, start, end='now')``
Expand All @@ -100,9 +69,10 @@ Für die Intervalleinheit können folgende Kennzeichnungen verwendet werden:
* `h`: hour
* `d`: day
* `w`: week
+ `m`: month
* `m`: month
* `y`: year


Beispiele
=========

Expand Down Expand Up @@ -135,11 +105,11 @@ Um das Minimum der letzten 24 Stunden zu ermitteln:
Um die Durchschnittstemperatur einer Woche zu ermitteln die vor genau 7 Tagen endete:

.. code-block:: python
sh.Aussen.Temperatur.db('avg', '2w', '1w')
Web Interface
=============

Aktuell hat das Plugin kein Webinterface
Aktuell hat das Plugin kein Webinterface
6 changes: 0 additions & 6 deletions rrd/webif/static/img/readme.txt

This file was deleted.

116 changes: 0 additions & 116 deletions rrd/webif/templates/index.html

This file was deleted.

7 changes: 3 additions & 4 deletions shelly/user_doc/device_installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Gen1 Devices einbinden
- Mit dem Browser unter der neuen IP Adresse (http://shellyplug-s-xxxxxx) im lokalen WLAN verbinden

Gen2/Gen3 Devices einbinden
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- In der Navigation links auf **Settings** klicken
- Im Abschnitt 'Network Settings' auf **Wi-Fi** klicken
Expand All @@ -57,7 +57,7 @@ Update für Gen1 Devices
- **UPDATE FIRMWARE** klicken

Update für Gen2/Gen3 Devices
~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- In der Navigation links auf **Settings** klicken
- Im Abschnitt 'Device Settings' auf **Firmware** klicken
Expand All @@ -83,7 +83,7 @@ Für Gen1 Devices
:class: screenshot

Für Gen2/Gen3 Devices
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~

- In der Navigation links auf **Settings** klicken
- Im Abschnitt 'Connectivity' auf **MQTT** klicken
Expand All @@ -104,4 +104,3 @@ Für Gen2/Gen3 Devices
anschließend nicht dem Broker.

|

0 comments on commit ba34304

Please sign in to comment.