<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Plugins &#8211; SmartHomeNG | smarthome knx homematic mqtt hue 1wire home automation</title>
	<atom:link href="https://www.smarthomeng.de/tag/plugins/feed" rel="self" type="application/rss+xml" />
	<link>https://www.smarthomeng.de</link>
	<description>Die Device Integrations-Plattform für Dein Smart Home</description>
	<lastBuildDate>Sun, 24 May 2020 20:12:59 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>https://www.smarthomeng.de/wp-content/uploads/global/logo_small_152x152-150x150.png</url>
	<title>Plugins &#8211; SmartHomeNG | smarthome knx homematic mqtt hue 1wire home automation</title>
	<link>https://www.smarthomeng.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AWS für das Alexa Plugin einrichten</title>
		<link>https://www.smarthomeng.de/aws-fuer-das-alexa-plugin-einrichten</link>
					<comments>https://www.smarthomeng.de/aws-fuer-das-alexa-plugin-einrichten#comments</comments>
		
		<dc:creator><![CDATA[Marc René Frieß]]></dc:creator>
		<pubDate>Thu, 29 Nov 2018 17:15:15 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Alexa]]></category>
		<category><![CDATA[alexa4p3]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Lambda-Funktion]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=2207</guid>

					<description><![CDATA[Mit dem Alexa Plugin ist es möglich, SmartHomeNG Items über Alexa zu steuern. Um das Plugin einzurichten, müssen allerdings zuerst einige Dinge auf der Plattform Amazon Web Services (AWS) eingerichtet werden. Dieser Artikel ist Work in Progress und wird nach und nach die Alexa Doku im README des Plugins und<a class="moretag" href="https://www.smarthomeng.de/aws-fuer-das-alexa-plugin-einrichten"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<p>Mit dem Alexa Plugin ist es möglich, SmartHomeNG Items über Alexa zu steuern. Um das Plugin einzurichten, müssen allerdings zuerst einige Dinge auf der Plattform Amazon Web Services (AWS) eingerichtet werden.</p>
<p>Dieser Artikel ist Work in Progress und wird nach und nach die Alexa Doku im <a href="https://github.com/smarthomeNG/plugins/tree/master/alexa" target="_blank" rel="noopener">README des Plugins</a> und im KNX-User-Forum (<a href="https://knx-user-forum.de/forum/supportforen/smarthome-py/1021150-amazon-alexa-plugin" target="_blank" rel="noopener">https://knx-user-forum.de/forum/supportforen/smarthome-py/1021150-amazon-alexa-plugin</a>) ablösen. Ein Teil der Originalanleitung war zudem unter <a href="https://developer.amazon.com/de/blogs/post/Tx4WG410EHXIYQ/Five-Steps-Before-Developing-a-Smart-Home-Skill" target="_blank" rel="noopener">https://developer.amazon.com/de/blogs/post/Tx4WG410EHXIYQ/Five-Steps-Before-Developing-a-Smart-Home-Skill</a> dokumentiert.</p>
<p>Zuerst muss unter <a href="https://developer.amazon.com/home.html" target="_blank" rel="noopener">https://developer.amazon.com/home.html</a> ein Entwicklerzugang erstellt werden. Trotz später notwendiger Angabe einer Kreditkarte kann davon ausgegangen werden, dass die anfallenden Request bei normaler Nutzung deutlich unterhalb der Grenze für die &#8222;Free Tier&#8220; bleiben werden. Trotzdem sollte man gelegentlich im Billing nachsehen. Auch ist zu empfehlen, den Zugang als 2-Factor-Authentifizierung einzurichten, anstatt das auch im &#8222;Shopping&#8220; Amazon verwendete Passwort alleine zu verwenden!</p>
<h1>OAuth2 Credentials anlegen</h1>
<p>Über <a href="https://developer.amazon.com/home.html" target="_blank" rel="noopener">https://developer.amazon.com/home.html</a> &#8211;&gt; &#8222;Login with Amazon&#8220; muss zuerst via &#8222;Create a New Security Profile&#8220; ein neues Security Profile erzeugt werden.</p>
<p><img fetchpriority="high" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/11/lws.jpg" alt="" width="1377" height="315" class="alignnone size-full wp-image-2219" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/11/lws.jpg 1377w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lws-300x69.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lws-768x176.jpg 768w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lws-1024x234.jpg 1024w" sizes="(max-width: 1377px) 100vw, 1377px" /></p>
<p>Hier sind ein Name, eine Beschreibung und ein Link auf eine &#8222;privacy.htm&#8220; Seite (bspw. via Dyndns &#8211; die Seite muss meines Wissens nicht erreichbar sein) anzugeben.</p>
<p>Über den Reiter Web Settings kann man nun noch seine Client ID und seinen Client Secret einsehen, die für den nächsten Schritt notiert werden müssen. Im unten stehenden Screenshot sind die Informationen entfernt worden:</p>
<p><img decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/11/lws_clientdaten.png" alt="" width="1381" height="629" class="alignnone size-full wp-image-2220" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/11/lws_clientdaten.png 1381w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lws_clientdaten-300x137.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lws_clientdaten-768x350.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lws_clientdaten-1024x466.png 1024w" sizes="(max-width: 1381px) 100vw, 1381px" /></p>
<h1>Alexa Skill anlegen</h1>
<p>Als Nächstes muss im Alexa Entwicklerportal ein neuer Skill angelegt werden. Hierzu unter <a href="https://developer.amazon.com/alexa/console/ask" target="_blank" rel="noopener">https://developer.amazon.com/alexa/console/ask</a> &#8222;Create Skill&#8220; auswählen.</p>
<p><img decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_developer_overview.jpg" alt="" width="1304" height="601" class="alignnone size-full wp-image-2212" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_developer_overview.jpg 1304w, https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_developer_overview-300x138.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_developer_overview-768x354.jpg 768w, https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_developer_overview-1024x472.jpg 1024w" sizes="(max-width: 1304px) 100vw, 1304px" /></p>
<p>Hier ist die korrekte geographische Region als Default Endpoint zu wählen (in meinem Fall eu-west bzw. Europe/India). Als Payload ist für die alten Version des Plugins v2 zu wählen, für die aktuell in Entwicklung befindliche neue (derzeit noch nicht im DEV Branch, dafür unter <a href="https://github.com/Andrek01/Alexa4PayloadV3" target="_blank" rel="noopener">https://github.com/Andrek01/Alexa4PayloadV3</a>) v3.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_skill.png" alt="" width="1369" height="1044" class="alignnone size-full wp-image-2213" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_skill.png 1369w, https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_skill-300x229.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_skill-768x586.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/11/alexa_skill-1024x781.png 1024w" sizes="(max-width: 1369px) 100vw, 1369px" /></p>
<p><strong>Wichtig:</strong> Das was neben &#8222;amzn1.ask.skill.&#8220; bei &#8222;<span>Your Skill ID&#8220; steht, kopieren. Diese UUID wird später für den nächsten Schritt (Lambda-Funktion) benötigt!</span></p>
<p>Unter Account Linking sind nun die OAuth2 Daten zu hinterlegen, die im vorherigen Schritt generiert wurden:</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/11/account_linking-1.png" alt="" width="1384" height="1278" class="alignnone size-full wp-image-2216" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/11/account_linking-1.png 1384w, https://www.smarthomeng.de/wp-content/uploads/2018/11/account_linking-1-300x277.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/11/account_linking-1-768x709.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/11/account_linking-1-1024x946.png 1024w" sizes="(max-width: 1384px) 100vw, 1384px" /></p>
<h1>Lambda-Funktion anlegen.</h1>
<p>Um Aktionen gegen SmartHomeNG ausführen zu können, muss über <a href="https://aws.amazon.com" target="_blank" rel="noopener">https://aws.amazon.com</a> (und dann in die AWS Management Console gehen) eine sog. Lambda-Funktion angelegt werden (Link Compute -&gt; Lambda).</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda.jpg" alt="" width="1157" height="681" class="alignnone size-full wp-image-2246" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda.jpg 1157w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda-300x177.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda-768x452.jpg 768w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda-1024x603.jpg 1024w" sizes="(max-width: 1157px) 100vw, 1157px" /></p>
<p>Legt man diese über &#8222;Funktion erstellen&#8220; an, müssen ein Name (bspw. SmartHomeNGFunction), eine Laufzeitumgebung (Node.js 8.10) und eine Vorhandene Rollen (lambda_basic_execution) gewählt werden.</p>
<p>Der neu erstellten Lambda-Funktion wird nun ein Alexa Smart Home Skill zugeordnet. Klickt man diesen unter &#8222;Auslöser hinzufügen&#8220; an, so gibt man nun die Anwendungs-ID (die UUID aus dem vorherigen Schritt) ein! Der Auslöser wird als aktiviert gesetzt!</p>
<p>Das Ganze ist in unten stehendem Screenshot zu sehen.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda-1.png" alt="" width="1348" height="3065" class="alignnone size-full wp-image-2251" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda-1.png 1348w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda-1-132x300.png 132w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda-1-768x1746.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/11/lambda-1-450x1024.png 450w" sizes="(max-width: 1348px) 100vw, 1348px" />Als Code muss folgendes eingetragen werden:</p>
<pre><code class="language-javascript">
/*
You need to specify the following environmental variables in the lambda function:
- SMARTHOME_HOST
		foobar.dyndns.tld
- SMARTHOME_PORT
		443 - endpoint must be https enabled!
- SMARTHOME_PATH
		'/'
- SMARTHOME_AUTH
		'user:password'
*/
exports.handler = function(event, context, callback) {
	var data = JSON.stringify(event)

	var options = {
		hostname: process.env.SMARTHOME_HOST,
		port: process.env.SMARTHOME_PORT,
		path: process.env.SMARTHOME_PATH,
		method: 'POST',
		auth: process.env.SMARTHOME_AUTH,
		headers: {
			'Content-Type': 'application/json',
			'Content-Length': Buffer.byteLength(data)
		}
	};

	var https = require('https');
	var req = https.request(options, (res) =&gt; {
		console.log(`HTTP ${res.statusCode}`);
		res.setEncoding('utf8');

		var responseData = '';
		res.on('data', (dataChunk) =&gt; {
		    responseData += dataChunk
		});
		res.on('end', () =&gt; {
			console.log('raw response:', responseData)

			var response = JSON.parse(responseData);
			if (res.statusCode == 200) {
				console.info('OK', JSON.stringify(response))
				callback(null, response);
			} else {
				console.error('Failed', JSON.stringify(response))
				callback('DependentServiceUnavailableError');
			}
		});
	});
	req.on('error', (e) =&gt; {
		console.error('request failed', e);
		callback(e);
	});

	console.log('requesting', data)
	req.write(data);
	req.end();
}
</code></pre>
<p>Unterhalb des Codeblocks sind nun noch die vier Variablen SMARTHOME_AUTH (im Stil &lt;user&gt;:&lt;passwort&gt;), SMARTHOME_HOST, SMARTHOME_PATH und SMARTHOME_PORT zu definieren. Wird ein ReverseProxy mit HTTPS verwendet (siehe bspw. <a href="https://www.smarthomeng.de/nginx-als-reverseproxy">im Artikel NGINX als ReverseProxy</a>), so sollte der User und das Passwort dort als Basic Authentication gesetzt werden. Der ReverseProxy muss in Folge dann eine Weiterleitung auf das SmartHomeNG Alexa Plugin (SmartHomeNG URL und Alexa Port) definieren. Port wäre in diesem Fall 443 (https) und URL die Dyndns URL über die das Heimnetzwerk erreichbar ist.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/aws-fuer-das-alexa-plugin-einrichten/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Fehlerbehandlung für Plugins bei nicht installierten Python Packages</title>
		<link>https://www.smarthomeng.de/fehlerbehandlung-fuer-plugins-bei-nicht-installierten-python-packages</link>
					<comments>https://www.smarthomeng.de/fehlerbehandlung-fuer-plugins-bei-nicht-installierten-python-packages#comments</comments>
		
		<dc:creator><![CDATA[Martin Sinn]]></dc:creator>
		<pubDate>Sun, 12 Aug 2018 08:54:08 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=1973</guid>

					<description><![CDATA[UPDATE: Im develop Branch (also für SmartHomeNG v1.6) ist eine allgemein gültige Lösung implementiert. (Danke an ohinckel für die Idee). Ab der Version muss der Fehler nicht mehr im einzelnen Plugin abgefangen werden, es sei denn, man möchte nicht das Laden des Plugins unterbinden, sondern vielleicht nur einzelne Funktionen des<a class="moretag" href="https://www.smarthomeng.de/fehlerbehandlung-fuer-plugins-bei-nicht-installierten-python-packages"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<p><strong>UPDATE</strong>:</p>
<p>Im develop Branch (also für SmartHomeNG v1.6) ist eine allgemein gültige Lösung implementiert. (Danke an ohinckel für die Idee).</p>
<p>Ab der Version muss der Fehler nicht mehr im einzelnen Plugin abgefangen werden, es sei denn, man möchte nicht das Laden des Plugins unterbinden, sondern vielleicht nur einzelne Funktionen des Plugins deaktivieren.</p>
<hr />
<p>&nbsp;</p>
<p>Wenn ein Plugin ein spezielles Python Package benötigt (Requirement) und dieses auf dem System des Anwenders nicht installiert ist, wird im Log beim ersten Zugriff auf Funktionen dieses Packages eine Exception in das Logfile geschrieben.</p>
<p>Für viele Anwender ist es schwierig, aus der Fehlermeldung auf die eigentliche Ursache zu schließen.</p>
<p>Durch einen kleinen Kniff im Plugin, kann im Logfile eine klare Fehlermeldung geschrieben werden. Außerdem kann das Laden des Plugins unterbunden werden, um Folgefehler zu vermeiden.</p>
<p>&nbsp;</p>
<h3>Vorgehen</h3>
<p>Die zwei notwendigen Änderungen sind hier Beispiel des <strong>homematic</strong> Plugins und des benötigten Packages <strong>pyhomematic</strong> beschrieben.</p>
<p>&nbsp;</p>
<p>Normalerweise wird das Package folgendermaßen importiert:</p>
<pre><code class="language-python">
from pyhomematic import HMConnection
</code></pre>
<p>Um den Fehler zu behandeln, werden folgende zwei Änderungen vorgenommen:</p>
<ol>
<li>Um den Fehler zu erkennen, wird die <strong>import</strong> Anweisung in ein <strong>try/except</strong> Konstrukt eingebettet und abhängig vom Ergebnis eine Variable gesetzt. (Zeilen 8 bis 12 im folgenden Beispiel)</li>
<li>Um den erkannten Fehler auszuwerten, wird eine <strong>If-Anweisung</strong> zur<strong>__init__</strong> Methode hinzugefügt (Zeilen 37 bis 41), die Im Fehlerfall einen sinnvollen Log-Eintrag schreibt und durch das setzen der Variable self._init_complete signaliseiert, dass das Plugin sich nicht fehlerfrei initialisieren konnte. Das anschließende <strong>return</strong> sorgt dann noch für den Abbruch der Initialisierung.</li>
</ol>
<p>&nbsp;</p>
<pre data-line="8-12,37-41"><code class="language-python">
#  You should have received a copy of the GNU General Public License
#  along with SmartHomeNG. If not, see &lt;http://www.gnu.org/licenses/&gt;.
#
#########################################################################

import logging

try:
    from pyhomematic import HMConnection
    REQUIRED_PACKAGE_IMPORTED = True
except:
    REQUIRED_PACKAGE_IMPORTED = False

from lib.module import Modules
from lib.model.smartplugin import *

from time import sleep


class Homematic(SmartPlugin):
    """
    Main class of the Plugin. Does all plugin specific stuff and provides
    the update functions for the items
    """
    
    PLUGIN_VERSION = '1.5.0'
    
    connected = False
    

    def __init__(self, sh, *args, **kwargs):
        """
        Initalizes the plugin. The parameters descriptions for this method are pulled from the entry in plugin.yaml.
        """
        self.logger = logging.getLogger(__name__)

        # Exit if the required package(s) could not be imported
        if not REQUIRED_PACKAGE_IMPORTED:
            self.logger.error("{}: Unable to import Python package 'pyhomematic'".format(self.get_fullname()))
            self._init_complete = False
            return

        # get the parameters for the plugin (as defined in metadata plugin.yaml):
        #   self.param1 = self.get_parameter_value('param1')


</code></pre>
<p>Im Logfile wird der Fehler dann durch zwei Zeilen, wie im folgenden Beispiel angezeigt:</p>
<pre><code class="language-batch">
2018-08-12  09:59:03 ERROR    plugins.homematic   homematic_hm1: Unable to import Python package 'pyhomematic'
2018-08-12  09:59:03 ERROR    lib.plugin          Plugins: Plugin 'homematic' initialization failed, plugin not loaded
</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/fehlerbehandlung-fuer-plugins-bei-nicht-installierten-python-packages/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Einbindung von Sensoren über WLAN mit ESP8266 unter Verwendung von ESPEasy</title>
		<link>https://www.smarthomeng.de/einbindung-von-sensoren-ueber-wlan-mit-esp8266-unter-verwendung-von-espeasy</link>
					<comments>https://www.smarthomeng.de/einbindung-von-sensoren-ueber-wlan-mit-esp8266-unter-verwendung-von-espeasy#comments</comments>
		
		<dc:creator><![CDATA[sisamiwe]]></dc:creator>
		<pubDate>Fri, 20 Apr 2018 14:27:55 +0000</pubDate>
				<category><![CDATA[Beispiel-Implementierungen]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[DHT22]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[ESPEasy]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Webservices]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=1471</guid>

					<description><![CDATA[Hallo, ich möchte Euch kurz vorstellen, wie man Sensoren schnell und einfach in shNG einbinden kann. Das Ganze basiert auf der Verwendung eines ESP8266 (bspw. Wemos D1 mini), der Firmware ESPEasy und des shNG Webservices-Plugins. Die Firmware ESPEasy bietet viele Konfigurationsmöglichkeiten, dies betrifft sowohl Sensoren also auch Kommunikationsschnittstellen. Teil 0: Allgemeine<a class="moretag" href="https://www.smarthomeng.de/einbindung-von-sensoren-ueber-wlan-mit-esp8266-unter-verwendung-von-espeasy"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<p>Hallo,</p>
<p>ich möchte Euch kurz vorstellen, wie man Sensoren schnell und einfach in shNG einbinden kann. Das Ganze basiert auf der Verwendung eines ESP8266 (bspw. Wemos D1 mini), der Firmware ESPEasy und des shNG Webservices-Plugins.</p>
<p>Die Firmware ESPEasy bietet viele Konfigurationsmöglichkeiten, dies betrifft sowohl Sensoren also auch Kommunikationsschnittstellen.</p>
<p><span id="more-1471"></span></p>
<p><b>Teil 0: Allgemeine Informationen</b></p>
<ul>
<li>ESPEasy arbeitet auch im<span> </span><a href="https://github.com/letscontrolit/ESPEasy" target="_blank" rel="nofollow noopener">Github</a>.</li>
<li>Die Liste der unterstützten Sensoren gibt es <a href="https://letscontrolit.com/wiki/index.php/Devices">hier</a>.</li>
<li>Bei ESPEasy wird jede Nacht automatisch ein Release erzeugt. Diese sind<span> </span><a href="https://github.com/letscontrolit/ESPEasy/releases" target="_blank" rel="nofollow noopener">hier<span> </span></a>zu finden. Es gibt 2 Ausführungen der ESPEasy: A)<span> </span><a href="https://www.letscontrolit.com/wiki/index.php/ESPEasy" target="_blank" rel="nofollow noopener">Released<span> </span></a>aktuell in der Version 2.0 und B)<span> </span><a href="https://www.letscontrolit.com/wiki/index.php/ESPEasyMega" target="_blank" rel="nofollow noopener">Develop</a>. als mit mehr Plugins aber auch noch in der Testphase.</li>
</ul>
<p><b>Teil 1: Flashen der Firmware</b></p>
<ul>
<li>Download des letzten (Pre-)Releases der V2.0 von<span> </span><a href="https://github.com/letscontrolit/ESPEasy/releases" target="_blank" rel="nofollow noopener">hier<span> </span></a>als zip (heute wäre das<span> </span><a href="https://github.com/letscontrolit/ESPEasy/releases/download/v2.0-20180321/ESPEasy_v2.0-20180321.zip" target="_blank" rel="nofollow noopener">Release v2.0-20180321</a>)</li>
<li>Entpacken des ZIP. Darin sind diverse Binaries und das Flashtool selbst.<br />
Zu den Binaries: Hier gibt es 3 Ausbaustufen und das ganze für 2 SpeicherGrößen: normal &#8211; enthält nur die getesteten und freigegebenen Teile von ESPeasy; test &#8211; enthält zusätzlich noch die getesteten; dev &#8211; enthält zusätzlich noch die sich in Entwicklung befindlichen; Die Speichergrößen sind 1MB und 4MB. Der erwähnte WEMOS D1 mini hat 4MB Speicher.</li>
<li>Verbinde den ESP via USB mit einem Windows PC.</li>
<li>Firmware mit Hilfe des Flashtools auf dem ESP schreiben, dabei Serielle Schnittstelle (COM-Port) und das entsprechende Binary auswählen. Ich nutze immer die Dev-Version. Die COM Schnittstelle kann man auch über den Windows-Gerätemanager in Erfahrung bringen.<br />
<img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/04/5-300x155.jpg" alt="" class="alignnone wp-image-1485" width="688" height="355" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/04/5-300x155.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/04/5.jpg 766w" sizes="(max-width: 688px) 100vw, 688px" /><br />
<img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/04/6-300x155.jpg" alt="" class="alignnone wp-image-1486" width="437" height="226" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/04/6-300x155.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/04/6.jpg 404w" sizes="(max-width: 437px) 100vw, 437px" /></li>
<li>Neustart des ESP (Reset Taste).</li>
<li>Der ESP öffnet einen WLAN AccessPoint &#8222;ESP_Easy_0&#8220;; Passwort: configesp<br />
Wenn man nicht automatisch zur Anmeldeseite kommt, dann nach 192.168.4.1 browsen</li>
<li>In der Config seine eigenen WLAN-Daten eingeben und den ESP wieder neu starten. Nun sollte er sich in eigenen Netzwerk anmelden.<br />
(Über den Weg, das fertige Binary der Firmware zu flashen, muss man immer den Weg über den Hotspot zur Konfiguration und damit zu Einbindung in das eigene Netzwerk machen.)</li>
<li>Eine detaillierte Beschreibung ist<span> </span><a href="https://www.letscontrolit.com/wiki/index.php/Basics:_Connecting_and_flashing_the_ESP8266" target="_blank" rel="nofollow noopener">hier</a></li>
<li>Nun ist der ESP vorbereitet und kann konfiguriert werden</li>
</ul>
<p><b>Teil 2: Verbinden der Sensoren mit dem ESP8266 (Wemos D1 Mini)</b></p>
<ul>
<li>Der verwendetete Sensor DHT22 wird wie folgt mit dem Wemos D1 Mini verbunden:<br />
<img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/04/dht22.png" alt="" class="alignnone wp-image-1498" width="396" height="250" /><br />
Den verwendeten GPIO könnt ihr frei wählen. Er muss später in ESPEasy angegeben werden. Hier im Bild ist D0 (GPIO16) verwendet.</li>
</ul>
<p><b>Teil 3: Konfiguration in ESPEasy</b></p>
<ul>
<li>Mit dem Aufruf der IP des ESP kommt man zur Konfigurationsseite</li>
<li>Die Möglichkeiten der Konfiguration sind<span> </span><a href="https://www.letscontrolit.com/wiki/index.php/ESP_Easy_web_interface" target="_blank" rel="nofollow noopener">hier<span> </span></a>beschrieben.</li>
<li>Auf der Seite Devices muss der entsprechende Sensor konfiguriert werden. Dabei wird definiert, welcher Sensor an welchem Eingang angeschlossen wurde.<br />
<img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/04/1-768x141-1.jpg" alt="" class="alignnone size-full wp-image-1502" width="971" height="180" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/04/1-768x141-1.jpg 971w, https://www.smarthomeng.de/wp-content/uploads/2018/04/1-768x141-1-300x56.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/04/1-768x141-1-768x142.jpg 768w" sizes="(max-width: 971px) 100vw, 971px" /></li>
<li>In meinem Beispiel ist es ein DHT22 an GPIO16 (D0).<br />
<img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/04/2-1024x638.jpg" alt="" class="alignnone wp-image-1475 size-large" width="750" height="467" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/04/2-1024x638.jpg 1024w, https://www.smarthomeng.de/wp-content/uploads/2018/04/2-300x187.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/04/2-768x478.jpg 768w, https://www.smarthomeng.de/wp-content/uploads/2018/04/2.jpg 1230w" sizes="(max-width: 750px) 100vw, 750px" /><br />
Im Beispiel sendet er seine Werte an den 3. definierten Controller mit einer Verzögerung von 30sec. Es werden 2 Werte übermittelt, Termperatur und Humidity, jeweils mit 1 Dezimalstelle.</li>
<li>Auf der Seite Controller wird die Schnittstelle konfiguriert.<img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/04/3-1024x192.jpg" alt="" class="alignnone wp-image-1476 size-large" width="750" height="141" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/04/3-1024x192.jpg 1024w, https://www.smarthomeng.de/wp-content/uploads/2018/04/3-300x56.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/04/3-768x144.jpg 768w, https://www.smarthomeng.de/wp-content/uploads/2018/04/3.jpg 1225w" sizes="(max-width: 750px) 100vw, 750px" /><br />
Im Beispiel sind 3 Controller (also Schnittstellen definiert), wobei nur die dritte aktiv ist.</li>
<li>Wir nutzen &#8222;Generic HTTP&#8220;, tragen als Controller IP die IP-Adresse von shNG ein und bei Controller Port den Port, den wir für das Webservices-Plugin nutzen.<br />
Bei Controller Publish setzen wir:<br />
<code>/shNG/ws/items/ESP_Easy.%sysname%.%tskname%.%valname%/%value%</code><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/04/4-1024x416.jpg" alt="" class="alignnone wp-image-1477 size-large" width="750" height="305" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/04/4-1024x416.jpg 1024w, https://www.smarthomeng.de/wp-content/uploads/2018/04/4-300x122.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/04/4-768x312.jpg 768w, https://www.smarthomeng.de/wp-content/uploads/2018/04/4.jpg 1225w" sizes="(max-width: 750px) 100vw, 750px" /></li>
<li>Verwendet wird das einfachere &#8222;Simple Webservices&#8220; HTTP-Interface, bei dem der eigentliche Wert Teil der HTTP-Adresse ist (kein Payload).</li>
<li>Zur Erklärung von <code>/shNG/ws/items/ESP_Easy.%sysname%.%tskname%.%valname%/%value%:</code>
<ul>
<li><code>/shNG/</code>: wird von ESPEasy beim Versenden verschluckt und dient somit nur als &#8222;Futter&#8220;</li>
<li><code>/ws/items/</code>: Wird vom WebservicePlugin erwartet, um den Inhalt einem Item zuzuordnen</li>
<li><code>/ESP-Easy/</code>: verwende ich als &#8222;root&#8220; des Items, so dass alle folgenden Items Kinder von ESP-Easy sind.</li>
<li><code>%sysname%</code>: Name des ESP8266, definiert im Reiter &#8222;Config&#8220; unter &#8222;Unit Name&#8220;  (Im Beispiel: &#8222;Wemos_1&#8220;)</li>
<li><code>%tskname%</code>: Name des Sensors, definiert im Reiter &#8222;Devices&#8220; unter &#8222;Name&#8220; (Im Beispiel: &#8222;Umwelt&#8220;)</li>
<li><code>%valname%</code>: Name des Wertes des Sensors, definiert im Reiter &#8222;Devices&#8220; unter &#8222;Value&#8220; (Im Beispiel: &#8222;Temperature&#8220;)</li>
<li><code>%value%</code>: ist der eigentliche Wert<br />
Damit ergibt sich das Item: <code>ESP_Easy.Wemos_1.Umwelt.Temperature</code>. Der Wert selbst ist 17.36</li>
</ul>
</li>
</ul>
<p><b>Teil 4: Konfiguration shNG</b></p>
<ul>
<li>Damit wir in shNG auch etwas empfangen, muss das Webservices-Plugin aktiviert und konfiguriert werden. Man kann die Standardkonfiguration, wie in der <a href="https://www.smarthomeng.de/user/plugins/webservices/README.html">Anwenderdokumentation</a> beschrieben, verwenden, d.h. der Port ist 8384.</li>
<li>Dazu gibt es auch bereits einen <a href="https://www.smarthomeng.de/das-smarthomeng-webservices-plugin">Blog-Artikel</a>.</li>
<li>Nach der Aktivierung und Konfiguration des Plugins sowie einem Neustart müssten im Logfile bereits die Items und Werte sichtbar sein.<br />
Bspw.: <code>CP Server Thread-19 192.168.2.25 - - [18/Apr/2018:21:41:48] "GET /ws/items/ESP_Easy.Wemos_1.Umwelt.Humidity/64.0 HTTP/1.1" 200 80 "" ""</code></li>
<li>Nun noch die Items in einer yaml-Datei im Ordner<span> <code>/items/</code> </span>definieren: (Beispiel: ESP-Easy.Wemos_1.Umwelt.Temperatur) und shNG neu starten.
<pre><code class="language-yaml">
ESP_Easy:
    Wemos_1:
        Umwelt:
            Temperature:
                type: num 
            Humidity:
                type: num
</code></pre>
</li>
<li>Nun müssten über das &#8222;Simple Webservices&#8220; HTTP-Interface des Webservices-Plugins den Items die Werte zugwiesen werden.</li>
</ul>
<p>Viel Spaß beim Anwenden!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/einbindung-von-sensoren-ueber-wlan-mit-esp8266-unter-verwendung-von-espeasy/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Scheduler Änderungen funktionieren nicht mehr nach 1.4.x Umstellung</title>
		<link>https://www.smarthomeng.de/sh-trigger-funktioniert-nicht-mehr-nach-1-4-2-umstellung</link>
					<comments>https://www.smarthomeng.de/sh-trigger-funktioniert-nicht-mehr-nach-1-4-2-umstellung#comments</comments>
		
		<dc:creator><![CDATA[Martin Sinn]]></dc:creator>
		<pubDate>Fri, 30 Mar 2018 14:03:20 +0000</pubDate>
				<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Items]]></category>
		<category><![CDATA[Logiken]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Scheduler]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=926</guid>

					<description><![CDATA[Um Namenskonflikte innerhalb von SmartHomeNG zu vermeiden, sind mit der Version 1.4.x von SmartHomeNG für Scheduler mehrere separate Namensräume eingeführt worden. Es gibt jeweils einen eigenen Namensraum für Scheduler, die durch Items Logiken Scheduler erzeugt wurden. Die Scheduler sind im Backend auf unterschiedlichen Reitern auf der Seite Scheduler zu sehen.<a class="moretag" href="https://www.smarthomeng.de/sh-trigger-funktioniert-nicht-mehr-nach-1-4-2-umstellung"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<p>Um Namenskonflikte innerhalb von SmartHomeNG zu vermeiden, sind mit der Version 1.4.x von SmartHomeNG für Scheduler mehrere separate Namensräume eingeführt worden.</p>
<p>Es gibt jeweils einen eigenen Namensraum für Scheduler, die durch</p>
<ul>
<li>Items</li>
<li>Logiken</li>
<li>Scheduler</li>
</ul>
<p>erzeugt wurden. Die Scheduler sind im Backend auf unterschiedlichen Reitern auf der Seite <strong>Scheduler</strong> zu sehen. Auf einem vierten Reiter sind die Scheduler zu sehen, die nicht in diese drei Namensräume fallen.</p>
<p>Das erweiterte API um diese Scheduler sauber anzusprechen ist noch auf der To Do Liste.</p>
<p>Zur Zeit können diese Scheduler über die bisherigen Scheduler Methoden angesprochen werden. Den Namen muss dabei jeweils ein Präfix vorangestellt werden.</p>
<p>Für:</p>
<ul>
<li>items   -&gt;   items.&lt;scheduler name&gt;</li>
<li>Logiken   -&gt;   logics.&lt;scheduler name&gt;</li>
<li>Plugins   -&gt;   plugins.&lt;scheduler name&gt;</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/sh-trigger-funktioniert-nicht-mehr-nach-1-4-2-umstellung/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Welches Datenbank Plugin sollte ich verwenden?</title>
		<link>https://www.smarthomeng.de/welches-datenbank-plugin-sollte-ich-verwenden</link>
					<comments>https://www.smarthomeng.de/welches-datenbank-plugin-sollte-ich-verwenden#comments</comments>
		
		<dc:creator><![CDATA[Martin Sinn]]></dc:creator>
		<pubDate>Fri, 30 Mar 2018 07:35:26 +0000</pubDate>
				<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[smartVISU]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[sqlite_visu2_8]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=866</guid>

					<description><![CDATA[Datenbank Plugins Es gibt zurzeit drei verschiedene Datenbank Plugins: database sqlite sqlite_visu2_8 Wenn Du neu mit SmartHomeNG beginnst, solltest Du das Plugin database verwenden. Das database Plugin unterstützt sowohl MySQL Datenbanken, als auch SQLite Datenbanken. Welcher Datenbank-Typ verwendet wird, wird in ../etc/plugin.yaml konfiguriert. sqlite und sqlite_visu2_8 Die beiden SQLite Plugins dienen<a class="moretag" href="https://www.smarthomeng.de/welches-datenbank-plugin-sollte-ich-verwenden"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<h3>Datenbank Plugins</h3>
<p>Es gibt zurzeit drei verschiedene Datenbank Plugins:</p>
<ul>
<li>database</li>
<li>sqlite</li>
<li>sqlite_visu2_8</li>
</ul>
<p>Wenn Du neu mit SmartHomeNG beginnst, solltest Du das Plugin <strong>database</strong> verwenden. Das <strong>database</strong> Plugin unterstützt sowohl MySQL Datenbanken, als auch SQLite Datenbanken. Welcher Datenbank-Typ verwendet wird, wird in <code>../etc/plugin.yaml</code> konfiguriert.</p>
<h3>sqlite und sqlite_visu2_8</h3>
<p>Die beiden SQLite Plugins dienen nur der Rückwärts-Kompatibilität für bestehende SmartHomeNG bzw. smarthome.py Umgebungen und werden nicht mehr weiterentwickelt.</p>
<p>Das Plugin <strong>sqlite</strong> unterstützt smartVISU bis zur Version v2.7.</p>
<p>Zur Unterstützung von smartVISU v2.8 und v2.9 muss das Plugin <strong>sqlite_visu2_8</strong> verwendet werden. Das Plugin führt beim ersten Start eine Konvertierung der Datenbank von <strong>sqlite</strong> auf das <strong>sqlite_visu2_8</strong> Format durch. Einen Weg zurück gibt es dann nicht. Es sollte also vorher eine Sicherung der Datenbank Datei <code>../var/db/smarthome.db</code> durchgeführt werden.</p>
<p><strong>Wichtig</strong>: Vor Beginn der Sicherung SmartHomeNG beenden.</p>
<p>&nbsp;</p>
<p>Eine Routine zur Konvertierung der Datenbanken der sqlite Plugins zu einer Datenbank für das database Plugin gibt es (noch) nicht.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/welches-datenbank-plugin-sollte-ich-verwenden/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Das Backend-Plugin</title>
		<link>https://www.smarthomeng.de/das-backend-plugin</link>
					<comments>https://www.smarthomeng.de/das-backend-plugin#respond</comments>
		
		<dc:creator><![CDATA[Marc René Frieß]]></dc:creator>
		<pubDate>Mon, 26 Mar 2018 15:51:42 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Backend]]></category>
		<category><![CDATA[Logikeditor]]></category>
		<category><![CDATA[PyPI]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[Wartung]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=552</guid>

					<description><![CDATA[Das webbasierte SmartHomeNG Backend-Plugin bietet einen grundlegenden Überblick über eine laufende SmartHomeNG Instanz. Zudem stellt es die Möglichkeit bereit, bestehende Logiken weiterzuentwickeln, komplett neu zu erstellen und dynamisch zur Laufzeit neu zu laden. Der Support-Thread für das Backend-Plugin im knx-user-forum findet sich unter http://knx-user-forum.de/forum/supportforen/smarthome-py/959964-support-thread-f%C3%BCr-das-backend-plugin. Die automatisch generierte Dokumentation kann unter<a class="moretag" href="https://www.smarthomeng.de/das-backend-plugin"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<p>Das webbasierte SmartHomeNG Backend-Plugin bietet einen grundlegenden Überblick über eine laufende SmartHomeNG Instanz. Zudem stellt es die Möglichkeit bereit, bestehende Logiken weiterzuentwickeln, komplett neu zu erstellen und dynamisch zur Laufzeit neu zu laden.</p>
<p>Der Support-Thread für das Backend-Plugin im knx-user-forum findet sich unter <a href="http://knx-user-forum.de/forum/supportforen/smarthome-py/959964-support-thread-f%C3%BCr-das-backend-plugin" target="_blank" rel="noopener">http://knx-user-forum.de/forum/supportforen/smarthome-py/959964-support-thread-f%C3%BCr-das-backend-plugin</a>. Die automatisch generierte Dokumentation kann unter <a href="https://www.smarthomeng.de/user/plugins/backend/user_doc.html" target="_blank" rel="noopener">https://www.smarthomeng.de/user/plugins/backend/user_doc.html</a> eingesehen werden.</p>
<p>Die im Folgenden dargestellten Screenshots stellen den zum Zeitpunkt dieses Artikels aktuellen Entwicklungsstand für SmartHomeNG 1.5 dar. Sie sind jedoch sehr ähnlich zum bestehenden Master-Branch (1.4.x), so dass die Informationen Allgemeingültigkeit haben.</p>
<h1>Installation</h1>
<p>Damit das Backend-Plugin läuft, ist die Installation zweier Python Pakete erforderlich:</p>
<pre><code class="language-bash">
sudo pip3 install cherrypy
sudo pip3 install jinja2
</code></pre>
<p>CherryPy ist ein Python-Webserver, Jinja2 die zugehörige Template-Engine.<br />
In der <code>/etc/module.yaml</code> muss zudem das http Modul aktiviert sein. Bei Bedarf kann hier auch der Port definiert werden:</p>
<pre><code class="language-yaml>
# etc/module.yaml
http:
    module_name: http
    starturl: backend
    port: 8383 # (optional)
</class></pre>
<p>In der <code>/etc/plugin.yaml</code> muss nun folgendes eingetragen werden:</p>
<pre><code class="language-yaml>
BackendServer:
    plugin_name: backend</span>
</code></pre>
<p>Nach Neustart von SmartHomeNG ist das Backend nun unter <code>http://<mark>«ip_addresse_von_shng»</mark>:<mark>«port»</mark> </code> erreichbar.</p>
<h1>Überblick</h1>
<p>Die Backend-GUI besteht im Wesentlichen aus den Seiten Dienste, Items, Logiken, Scheduler, Plugins, Szenen, Threads und Logging. Im aktuellen Master-Branch gibt es zudem die Seite System, welche in der Entwicklungsversion für 1.5 über das SmartHomeNG Icon erreichbar ist.</p>
<h2>System</h2>
<p>Auf der System-Seite, werden Informationen über die aktuellen Systemdaten angezeigt. Hier ist die SmartHomeNG Version und die des Plugin-Repositories zu finden.</p>
<p>Weiterhin gibt es Daten zum Host, Betriebssystem, der verwendeten Python-Version, dem freien Festplattenspeicher, der Server- und Betriebszeit.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/system.png" alt="" class="alignnone size-full wp-image-554" width="1509" height="917" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/system.png 1509w, https://www.smarthomeng.de/wp-content/uploads/2018/03/system-300x182.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/system-768x467.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/system-1024x622.png 1024w" sizes="(max-width: 1509px) 100vw, 1509px" /></p>
<p>Wartet man kurz ab, kann über einen zweiten Reiter der PyPI Check eingesehen werden, der einen aktuellen Überblick über die via pip3 installierten Pakete gibt.</p>
<p>Hier kann man sich einen Überblick machen, ob es aktuellere von SmartHomeNG unterstützte Paketversionen gibt. Fährt man mit der Maus über das Icon (grüner Haken, rotes Info-Symbol), so bekommt man zusätzliche Informationen.</p>
<p>Im unten gezeigten Beispiel gibt es eine neuere <code>python-dateutil</code> Version, die von SmartHomeNG unterstützt wird, während die neuste Version von <code>ruamel.yaml</code> nicht unterstützt wird.</p>
<h2><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/pypi.png" alt="" class="alignnone size-full wp-image-555" width="1496" height="914" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/pypi.png 1496w, https://www.smarthomeng.de/wp-content/uploads/2018/03/pypi-300x183.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/pypi-768x469.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/pypi-1024x626.png 1024w" sizes="(max-width: 1496px) 100vw, 1496px" />Dienste</h2>
<p>Über die Dienste lässt sich die Sprache des Backends umstellen und - bei Bestimmten Systemen -  der KNXD neu starten. Des Weiteren kann das Cache-Verzeichnis auf ungültige Dateien überprüft werden, etwa wenn ein Item nicht mehr existiert.</p>
<p>Wird bspw. für die <code>module.yaml</code> ein verschhlüsseltes Passwort benötigt, so kann dieses hier erstellt werden. Auch ein Prüf-Tool für YAML Syntax, sowie ein CONF-YAML Konverter stehen zur Verfügung.</p>
<p>Zuletzt kann auch die Syntax von EVAL-Ausdrücken geprüft werden.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/dienste.png" alt="" class="alignnone size-full wp-image-736" width="1493" height="904" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/dienste.png 1493w, https://www.smarthomeng.de/wp-content/uploads/2018/03/dienste-300x182.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/dienste-768x465.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/dienste-1024x620.png 1024w" sizes="(max-width: 1493px) 100vw, 1493px" /></p>
<h2>Items</h2>
<p>Im Menüpunkt Items wird eine Baustruktur der aktuellen Items angezeigt, die man sehr einfach über Klick auf das + bzw. - Symbol betrachten kann. In der Anzeige rechts sieht man die Details des jeweiligen Items und kann über das Eingabefeld den Wert des Items ändern.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/items.png" alt="" class="alignnone size-full wp-image-557" width="1503" height="914" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/items.png 1503w, https://www.smarthomeng.de/wp-content/uploads/2018/03/items-300x182.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/items-768x467.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/items-1024x623.png 1024w" sizes="(max-width: 1503px) 100vw, 1503px" /></p>
<p>Zusätzlich werden sämtliche Metadaten des Items angezeigt, die in SmartHomeNG vorliegen.</p>
<p>Über die Suche über der Anzeige lassen sich gezeigt Item-Pfade durchsuchen oder der gesamte Baum auf-/zuklappen.</p>
<h2>Logiken</h2>
<p>Im Menüpunkt Logiken wird eine Übersicht der aktuellen Logiken angezeigt.</p>
<p>Die Logiken können hier zur Laufzeit ausgeführt werden (Hand Icon). Daneben können sie neu geladen werden (etwa wenn man die zugehörige Datei bearbeitet hat),  deaktiviert werden (die Logik "HostsList" ist im Beispiel deaktiviert), entladen werden (die Logik ist SHNG zur Ausführung nicht mehr bekannt) oder gelöscht werden (Logik wird entladen, aus der <code>logics.yaml</code> ausgetragen und die Datei gelöscht).</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/logiken.png" alt="" class="alignnone size-full wp-image-559" width="1502" height="908" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/logiken.png 1502w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logiken-300x181.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logiken-768x464.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logiken-1024x619.png 1024w" sizes="(max-width: 1502px) 100vw, 1502px" /></p>
<p>Daneben kann über die GUI auch eine neue Logik erstellt (Button über der Liste) oder bestehende Logiken editiert werden (Klick auf den Dateinamen).</p>
<p>In der Editieransicht kann nun der Python-Code modifiziert und die Logik direkt gespeichert und neu geladen werden. Auch ein Zwischenspeichern ist möglich. Hier ist aber darauf zu achten, dass zum Zeitpunkt eines Neustarts von SHNG die modifizierte Logik direkt geladen wird, also der Python-Code lauffähig sein sollte.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/logik_details.png" alt="" class="alignnone size-full wp-image-560" width="1503" height="908" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/logik_details.png 1503w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logik_details-300x181.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logik_details-768x464.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logik_details-1024x619.png 1024w" sizes="(max-width: 1503px) 100vw, 1503px" /></p>
<p>Neben dem Code können hier auch das Cycle-Intervall, ein Ausführungszeitpunkt, die zugehörigen Items (die die Logik bei Wertänderung auslösen) und die Rechte zur Ausführung aus der smartVISU bearbeitet werden.</p>
<p>Der Editor erlaubt eine Reihe an Tastaturkürzeln, die über den Hilfe-Knopf eingesehen werden können.</p>
<h2>Plugins</h2>
<p>Im Menüpunkt Plugins wird die Liste der aktuell laufenden Plugin-Instanzen angezeigt.</p>
<p>Klickt man auf eine Zeile, so werden Detailinformationen geöffnet. Zudem wird im Fall eines Webinterfaces ein Link auf dieses eingeblendet.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/plugins.png" alt="" class="alignnone size-full wp-image-561" width="1496" height="918" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/plugins.png 1496w, https://www.smarthomeng.de/wp-content/uploads/2018/03/plugins-300x184.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/plugins-768x471.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/plugins-1024x628.png 1024w" sizes="(max-width: 1496px) 100vw, 1496px" /></p>
<p>Die Knöpfe unter Aktionen sind derzeit noch ohne Funktionalität.</p>
<h2>Szenen</h2>
<p>Unter Szenen ist die Liste der aktuellen Szenen zu sehen.</p>
<h2>Threads</h2>
<p>Threads gibt einen Überblick über die aktuell laufenden Threads innerhalb SmartHomeNG.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/threads.png" alt="" class="alignnone size-full wp-image-562" width="1499" height="907" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/threads.png 1499w, https://www.smarthomeng.de/wp-content/uploads/2018/03/threads-300x182.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/threads-768x465.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/threads-1024x620.png 1024w" sizes="(max-width: 1499px) 100vw, 1499px" /></p>
<h2>Logging</h2>
<p>Unter Logging wird die aktuelle Logging-Konfiguration angezeigt. Die jeweils konfigurierten Logfiles können direkt mit Klick auf den Dateinamen angezeigt werden.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/logging.png" alt="" class="alignnone size-full wp-image-563" width="1489" height="898" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/logging.png 1489w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logging-300x181.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logging-768x463.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logging-1024x618.png 1024w" sizes="(max-width: 1489px) 100vw, 1489px" /></p>
<p>Per Klick auf den Dateinamen kann das Logfile eingesehen, gefiltert und lokal gespeichert werden. Das hilft massiv bei der Problemlösung im Forum <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/logging_details.png" alt="" class="alignnone size-full wp-image-564" width="1489" height="904" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/logging_details.png 1489w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logging_details-300x182.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logging_details-768x466.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/logging_details-1024x622.png 1024w" sizes="(max-width: 1489px) 100vw, 1489px" /></p>
<h2>Urheberrechtshinweise</h2>
<p>Über diesen Link findet man Informationen zu den verbauten 3rd Party Komponenten, den Versionen und den jeweiligen Open Source Lizenzen.</p>
<h1>Zusammenfassung</h1>
<p>Das Backend-Plugin ist ein wichtiges Hilfsmittel um den Überblick über sein System zu behalten. Es hilft bei der Wartung und Aktualisierung, aber auch bei der Problemlösung.</p>
<p>Speziell beim Einfügen neuer Items kann sichergestellt werden, ob diese auch korrekt eingelesen wurden. Tauchen Sie im Itembaum nicht auf, so liegt mit hoher Wahrscheinlichkeit ein Fehler vor.</p>
<p>Die Systeminformationen und die Logfiles helfen, speziell bei Supportproblemen die Problemlösung deutlich zu beschleunigen.</p>
<p>Wir sind immer für neue Features und Ideen offen. Also einfach im Forum im zugehörigen Thread äußern.</p>
<p>&nbsp;</p>
<p><em>(Die in diesem Artikel verwendeten Screenshots wurden selber erstellt. Das Titelbild ist unter der Creative Commons Zero (CC0) Lizenz veröffentlicht und wurde von www.pexels.com bezogen.)</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/das-backend-plugin/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Namensvergabe bei Items</title>
		<link>https://www.smarthomeng.de/namensvergabe-bei-items</link>
					<comments>https://www.smarthomeng.de/namensvergabe-bei-items#respond</comments>
		
		<dc:creator><![CDATA[Martin Sinn]]></dc:creator>
		<pubDate>Sun, 26 Feb 2017 00:27:09 +0000</pubDate>
				<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Items]]></category>
		<category><![CDATA[Plugins]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=356</guid>

					<description><![CDATA[Item Namensvergabe Bei der Wahl von Itemnamen ist folgendes zu beachten: Plugin-Instanzen und Items der obersten Ebene (Top-Level) teilen sich den Namensraum. Es sollte vermieden werden, Top-Level Items einen Namen zu geben, der in ../etc/plugin.yaml (bzw. ../etc/plugin.conf) bereits für eine Plugin-Instanz gewählt wurde. Dieses kann zu unvorhergesehenen Problemen führen. (z.B.: Wenn<a class="moretag" href="https://www.smarthomeng.de/namensvergabe-bei-items"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<h1>Item Namensvergabe</h1>
<p>Bei der Wahl von Itemnamen ist folgendes zu beachten: Plugin-Instanzen und Items der obersten Ebene (Top-Level) teilen sich den Namensraum.</p>
<p>Es sollte vermieden werden, Top-Level Items einen Namen zu geben, der in <strong>../etc/plugin.yaml</strong> (bzw. ../etc/plugin.conf) bereits für eine Plugin-Instanz gewählt wurde. Dieses kann zu unvorhergesehenen Problemen führen. (z.B.: Wenn ein Plugin Funktionen implementiert hat, wird dies beim Aufruf dieser Funktionen zu Problemen führen, da SmartHomeNG dann versucht auf eine (nicht existierende) Methode des Items zuzugreifen, statt auf das Plugin.)</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/namensvergabe-bei-items/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Min- u. Max-Werte von Temperaturen</title>
		<link>https://www.smarthomeng.de/min-u-max-werte-von-temperaturen</link>
					<comments>https://www.smarthomeng.de/min-u-max-werte-von-temperaturen#comments</comments>
		
		<dc:creator><![CDATA[Bernd Meiners]]></dc:creator>
		<pubDate>Sun, 01 Nov 2015 11:32:57 +0000</pubDate>
				<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Items]]></category>
		<category><![CDATA[Plugins]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=988</guid>

					<description><![CDATA[Möchte man die Min und Max-Werte zu einem Item bestimmen, ist dies mit smarthome.py einfach möglich. Vorraussetzung ist, dass die Werte zu dem Item aufgezeichnet werden. Dazu wird ein Eintrag in der Datei /etc/plugin.yaml benötigt: sql: plugin_name: database Anschliessend wird im Item die Aufzeichnung aktiviert mit &#8218;database: yes&#8216; bzw. &#8218;database:<a class="moretag" href="https://www.smarthomeng.de/min-u-max-werte-von-temperaturen"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<p>Möchte man die Min und Max-Werte zu einem Item bestimmen, ist dies mit smarthome.py einfach möglich. Vorraussetzung ist, dass die Werte zu dem Item aufgezeichnet werden. Dazu wird ein Eintrag in der Datei /etc/plugin.yaml benötigt:</p>
<pre><code class="language-yaml">sql:
    plugin_name: database
</code></pre>
<p>Anschliessend wird im Item die Aufzeichnung aktiviert mit &#8218;database: yes&#8216; bzw. &#8218;database: init&#8216;. Nun können weitere Items angelegt werden, die mit Hilfe einer Funktion, die das database-Plugin bereitstellt, die benötigten Werte erhalten.</p>
<p>Das ganze sieht dann in etwa wie folgt aus:</p>
<pre><code class="language-yaml">sensor:
    carport:
        temp:
            type: num   
            knx_dpt: 9  
            knx_send: 3/4/11  
            knx_reply: 3/4/11
            ow_addr: '28.52F1AA030000'
            ow_sensor: T 
            database: init  # Aufzeichnung der Daten aktivieren
            min:
                type: num
                knx_dpt: 9
                knx_send: 3/4/14
                knx_reply: 3/4/14
                eval: "sh.sensor.carport.temp.db('min', '28h')"  # Mimium über die letzten 28h berechnen
                eval_trigger: sensor.carport.temp  # Änderungen der Temperatur triggern die Neuberechnung
            max:
                type: num
                knx_dpt: 9
                knx_send: 3/4/15
                knx_reply: 3/4/15
                eval: "sh.sensor.carport.temp.db('max', '28h')"  # Maximum über die letzten 28h berechnen
                eval_trigger: sensor.carport.temp   # Änderungen der Temperatur triggern die Neuberechnung
</code></pre>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/min-u-max-werte-von-temperaturen/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
