<?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>Datenbank &#8211; SmartHomeNG | smarthome knx homematic mqtt hue 1wire home automation</title>
	<atom:link href="https://www.smarthomeng.de/tag/datenbank/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>Datenbank &#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>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>Installation Influx, Grafana und Plugin</title>
		<link>https://www.smarthomeng.de/installation-influx-grafana</link>
					<comments>https://www.smarthomeng.de/installation-influx-grafana#respond</comments>
		
		<dc:creator><![CDATA[Martin Sinn]]></dc:creator>
		<pubDate>Sun, 10 Sep 2017 14:41:04 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Graph]]></category>
		<category><![CDATA[influx]]></category>
		<category><![CDATA[influxdata]]></category>
		<category><![CDATA[influxdb]]></category>
		<category><![CDATA[Messwerte]]></category>
		<guid isPermaLink="false">http://test.smarthomeng.de/?p=198</guid>

					<description><![CDATA[Installation InfluxDB, Grafana und Plugin Es existiert ein neues InfluxDB Plugin für SmartHomeNG, das es ermöglicht Meßwerte in eine Influx Datenbank zu schreiben. Die Influx Datenbank wurde entwickelt als quasi eine SQL-ähnliche Datenbank für zeitabhängige Meßreihen. Viele Nutzer des Smarthome.py bemängelten, das eine RRD Datenbank einfach Werte ausdünnt im Laufe<a class="moretag" href="https://www.smarthomeng.de/installation-influx-grafana"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<h1>Installation InfluxDB, Grafana und Plugin</h1>
<p>Es existiert ein neues <a href="https://www.smarthomeng.de/user/plugins_doc/config/influxdb.html" title="https://www.smarthomeng.de/user/plugins_doc/config/influxdb.html" rel="noreferrer">InfluxDB Plugin</a> für SmartHomeNG, das es ermöglicht Meßwerte in eine Influx Datenbank zu schreiben. Die Influx Datenbank wurde entwickelt als quasi eine SQL-ähnliche Datenbank für zeitabhängige Meßreihen. Viele Nutzer des Smarthome.py bemängelten, das eine RRD Datenbank einfach Werte ausdünnt im Laufe der Zeit und andererseits der Ansatz mit der SQLite nicht genau genug ist.</p>
<p><strong>Achtung: Debian Jessie (8.x)</strong> Die neueren Linux Versionen setzen zunehmend auf systemd. Start/Stop Skripte werden nicht mehr gebraucht. Diese Anleitung berücksichtigt den systemd derzeit nicht.</p>
<h2>Vorbedingung</h2>
<p>Die folgende Anleitung geht davon aus, das ein stabiles System vorliegt mit Ubuntu 14.04.3 oder Debian als 64-bit Variante. Ihr könnt testen, welches System bei Euch installiert ist mit:</p>
<pre><code class="language-bash">
uname -i
</code></pre>
<p>Das ergibt für ein 64 Bit System <code>x86_64</code>. Alternativ geht auch</p>
<pre><code class="language-bash">
getconf -a | grep LONG_BIT
</code></pre>
<p>(Alternativ kann man auch die Sourcen für InfluxDB holen und eine 32 Bit Version bauen. Allerdings sprengt das den Rahmen dieses How-to.</p>
<p>Für alle weiteren Installationsschritte nutzen wir eine Root Shell</p>
<pre><code class="language-bash">
sudo -i
</code></pre>
<p>Nun installieren die InfluxDB Datenbank mit</p>
<pre><code class="language-bash">
wget https://s3.amazonaws.com/influxdb/influxdb_0.9.4.1_amd64.deb
dpkg -i influxdb_0.9.4.1_amd64.deb
</code></pre>
<p>Jetzt muß Influx noch einmalig gestartet werden:</p>
<pre><code class="language-bash">
/etc/init.d/influxdb start
</code></pre>
<p>Damit das Plugin später auch Daten in eine Datenbank schreiben kann, legen wir eine Datenbank an. Dazu startet wir das influx command line interface:</p>
<pre><code class="language-bash">
/opt/influxdb/influx
</code></pre>
<p>Um die existierenden Datenbanken aufzulisten, geben wir das Kommando <code>SHOW DATABASES</code> ein. Da wir frisch installiert haben, sollten lediglich <code>name</code> und <code>_internal</code> gelistet werden. Nun erstellen wir eine neue Datenbank mit <code>CREATE DATABASE smarthome</code></p>
<h2>Installieren des InfluxDB Python Clients</h2>
<pre><code class="language-bash">
pip install influxdb
</code></pre>
<h2>Installieren des Plugins</h2>
<p>Am einfachsten ladet ihr Euch das Plugin als <a href="https://github.com/SgtSeppel/smarthome-influxdb/archive/master.zip" title="https://github.com/SgtSeppel/smarthome-influxdb/archive/master.zip" rel="noreferrer">ZIP</a> runter und kopiert den Inhalt in ein neues Unterverzeichnis <code>/smarthome.py/plugins/influx</code></p>
<h2>Konfiguration des Plugins</h2>
<h3>plugin.conf</h3>
<pre><code class="language-yaml">
influxdb:
    class_name: InfluxDB
    class_path: plugins.influx
#   influx_host: localhost
#   influx_port: 8083
#   influx_user: root
#   influx_pass: root
#   influx_db: smarthome
    influx_keyword: influx
</code></pre>
<p>Der Eintrag <code>influx_keyword</code> legt fest, welche Daten in die Datenbank geschrieben werden. Ihr könnt entweder z.B. <code>influx</code> wählen und dann würde dieses item in die Datenbank geschrieben werden:</p>
<pre><code class="language-yaml">
Vorlauftemperatur:
    name: Vorlaufemperatur
    type: num
    knx_dpt: 9
    influx: true
    visu_acl: rw
    knx_init: 8/1/1
    cache: on
</code></pre>
<p>Eine Superidee des Entwicklers ist es jedoch als <code>influx_keyword</code> nun <code>sqlite</code> auszuwählen, dann werden alle Daten die in die SQLite Datenbank geschrieben werden zugleich auch in die Influx Datenbank geschrieben.</p>
<p>Nun müßt ihr noch smarthome.py neu starten, damit das Plugin auch genutzt wird.</p>
<h2>Installieren von Grafana</h2>
<p>Damit die Daten nun auch hübsch präsentiert werden können, installieren wir uns noch ein grafisches Frontend <code>Grafana</code>.</p>
<p>Wir nutzen wieder unsere Root Shell und erweitern unsere Liste für Repositories:</p>
<pre><code class="language-bash">
sudo -i
nano /etc/apt/sources.list
</code></pre>
<p>Dorthin idealerweise ganz unten einfügen:</p>
<pre><code class="language-bash">
deb https://packagecloud.io/grafana/stable/debian/ wheezy main
</code></pre>
<p>Jetzt müssen wir noch den Schlüssel holen damit wir signierte Packages installieren können:</p>
<pre><code class="language-bash">
curl https://packagecloud.io/gpg.key | sudo apt-key add -
</code></pre>
<p>Nächste Schritte sind aktualisieren der APT Datenbank und installieren von grafana</p>
<pre><code class="language-bash">
apt-get update
apt-get install grafana
</code></pre>
<p>Details der Grafana Installation:</p>
<p>Programm zu finden in <code>/usr/sbin/grafana-server</code> Das Init.d Skript liegt unter <code>/etc/init.d/grafana-server</code>, eine defaults Datei mit Umgebungsvariablen findet sich in <code>/etc/default/grafana-server</code> und eine Konfigurationsdatei in <code>/etc/grafana/grafana.ini</code>. Weiter gibt es noch ein Logfile zu finden unter <code>/var/log/grafana/grafana.log</code> und eine SQLite3 Datenbank als Basis für Grafana wird installiert unter <code>/var/lib/grafana/grafana.db</code>. Falls systemd vorhanden wird noch ein service installiert mit Namen <code>grafana-server.service</code></p>
<p>Jetzt gilt es den Grafana Server zu starten mit</p>
<pre><code class="language-bash">
service grafana-server start
</code></pre>
<p>Jetzt könnt ihr auf den Grafana Server zuzugreifen mit der IP-Adresse und Port 3000. Benutzer und Passwort sind admin.</p>
<p>Damit der Grafana Server bei jedem Systemstart mitstartet, müssen wir ihn noch eintragen:</p>
<pre><code class="language-bash">
update-rc.d grafana-server defaults 95 10
</code></pre>
<p>So, nun sollte das ganze funktionieren. Bevor ihr an das Frontend vom Grafana geht, solltet ihr erstmal ein wenig Daten sammeln.</p>
<h2>Datenverbindung zur Influx Datenbank</h2>
<p>Wie oben müßt ihr mit Eurem Browser nun auf Port 3000 auf den Grafana Server zugreifen. Dort könnt ihr Euch dann mit Benutzer admin und Passwort admin anmelden. Der nächste Schritt ist die Einrichtung der Datenverbindung. Dazu wählt ihr <code>Data Sources</code> aus und dann oben in der Leiste <code>Add New</code>. Danach gebt Ihr als Name <code>influxdb</code> ein und als Type <code>influxDB 0.9.x</code>; den Haken bei default setzt man zweckmäßigerweise auch. Bei den http-Settings gebt Ihr die<code>http://&lt;IP&gt;:8086</code>, Access auf <code>direct</code>. Bei den InfluxDB Details als Datenbank <code>smarthome</code>mit User = <code>root</code> und Passwort <code>root</code>. Jetzt sollte <code>Test Connection</code> erfolgreich sein. Mit Klick auf <code>Save</code> seid Ihr jetzt einsatzfähig.</p>
<h2>Erstes Dashboard anlegen</h2>
<p>Ihr klickt jetzt auf <code>Dashboards</code> und anschließend auf <code>Home</code>. Weiter unten könnt Ihr nun <code>+New</code>auswählen um ein neues Dashboard zu erzeugen. Wenn das geschehen ist, gibt es ein kleines grünes Rechteck. Darauf klickt ihr und dann weiter auf <code>Add Panel</code> und im Submenü <code>Graph</code>. Jetzt erscheint ein leeres Feld mit einem roten Ausrufezeichen in der oberen linken Ecke und einer Überschrift <code>no title (click here)</code>. Darauf klickt ihr nun und wählt aus dem Popup Dialog <code>Edit</code> aus.</p>
<p>Unter Metrics ist jetzt eine Abfrage. Dort könnt Ihr &#8211; wenn bis dato alles richtig verlaufen ist und schon Werte in der Influx Datenbank zu finden sind &#8211; unter <code>FROM</code> <em>select measurement</em> eure erste Datenreihe eintragen. Ein Klick ganz oben auf das Diskettensymbol speichert nun das dashboard. Der Rest geht am besten über ausprobieren. Ein Klick auf den Farbstrich der Datenreihenlegende erlaubt es zu wählen ob die linke oder rechte Achse zur Anzeige genommen und welche Farbe zur Anzeige verwendet wird.</p>
<p>Viel Spaß!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/installation-influx-grafana/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Database Plugin Guide für MySQL/MariaDB</title>
		<link>https://www.smarthomeng.de/database-plugin-guide-fuer-mysql-mariadb</link>
					<comments>https://www.smarthomeng.de/database-plugin-guide-fuer-mysql-mariadb#respond</comments>
		
		<dc:creator><![CDATA[Marc René Frieß]]></dc:creator>
		<pubDate>Sun, 30 Jul 2017 15:26:02 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Datenbank]]></category>
		<guid isPermaLink="false">http://test.smarthomeng.de/?p=213</guid>

					<description><![CDATA[Leitfaden zur Umstellung auf das Database Plugin in Kombination mit MySQL/MariaDB Motivation Das Database Plugin setzt auf einer Neuimplementierung der Datenbankanbindung auf, bei der nicht wie beim bisherigen SQLite Plugin alte Daten &#8222;aufgeräumt&#8220; werden, sondern jeder Datensatz behalten wird. Dies kann zu sehr großen Datenbeständen führen, für die eine &#8222;echte&#8220;<a class="moretag" href="https://www.smarthomeng.de/database-plugin-guide-fuer-mysql-mariadb"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<div class="markdown-body">
<h3>Leitfaden zur Umstellung auf das Database Plugin in Kombination mit MySQL/MariaDB</h3>
<h2>Motivation</h2>
<p>Das Database Plugin setzt auf einer Neuimplementierung der Datenbankanbindung auf, bei der nicht wie beim bisherigen SQLite Plugin alte Daten &#8222;aufgeräumt&#8220; werden, sondern jeder Datensatz behalten wird. Dies kann zu sehr großen Datenbeständen führen, für die eine &#8222;echte&#8220; Datenbank wie MySQL oder MariaDB sinnvoller ist. Auch können diese Datenbanken mit PhpMyAdmin sehr leicht administriert / betrachtet werden.</p>
<p><strong>Wichtig:</strong> Eine Nutzung mit SQLite ist auch weiterhin mit dem Database Plugin möglich, so dass ein Wechsel zu anderen Datenbanken nicht zwingend notwendig ist.</p>
<p>Dieser Leitfaden soll trotzdem dazu dienen, den Umstieg zu erleichtern und motivieren.</p>
<h2>Installation von MariaDB</h2>
<p>Eine sinnvolle Alternative zu SQLite ist Maria DB (ein Fork von MySQL). Mit dem Database Plugin sind jedoch auch andere Datenbanken mit Kompatibilität zur Python DB API 2 möglich. Auch das klassische MySQL kann verwendet werden.</p>
<pre><code class="language-bash">
sudo apt-get update
sudo apt-get install mariadb-server
# alternativ
# sudo apt-get install mysql-server
</code></pre>
<p>Die Installationsroutine fordert dabei zur Eingabe eines Passworts für den User &#8222;root&#8220; auf. Hier ist darauf zu achten, ein möglichst sicheres Passwort zu wählen.</p>
<h2>Einrichtung einer DB und eines DB Users für SmartHomeNG</h2>
<p>Als nächstes sollte eine eigene MariaDB Datenbank mit eigenem User für SmartHomeNG erstellt werden, da die Verwendung des Root Users aus Sicherheitsgründen (globale root Rechte) nicht zu empfehlen ist.</p>
<p>Dazu sollte wie folgt vorgegangen werden:</p>
<h3>Einloggen in MariaDB als root (befehl &#8222;mysql&#8220;) mit vergebenem Passwort</h3>
<pre><code class="language-bash">
mysql -u root -p
</code></pre>
<h3>Datenbank / User für SmartHomeNG erstellen</h3>
<p>In der nun folgenden Shell &#8211; jede Zeile mit den jeweiligen Werten befüllen und mit ENTER bestätigen:</p>
<pre><code class="language-sql">
CREATE DATABASE smarthome_db;
CREATE USER 'smarthome'@'<mark>«ip of your SmartHomeNG server»</mark>' IDENTIFIED BY '<mark>«password»</mark>';
GRANT ALL PRIVILEGES ON smarthome_db.* TO 'smarthome'@'<mark>«ip of your SmartHomeNG server»</mark>';
FLUSH PRIVILEGES;
</code></pre>
<p><strong>Wichtig:</strong> Falls die Datenbank auf dem gleichen Server wie SmartHomeNG betrieben wird, muss anstatt der IP die <code>127.0.0.1</code> und ggf. <code>localhost</code> via jeweiligen <code>GRANT ALL ...</code> Statements freigegeben werden.</p>
<h3>(Optional) Prüfen der Einstellungen:</h3>
<p>Auf die Datenbank lokal als root einloggen, <code>mysql -u root -p</code>. Mittels <code>show databases;</code> kann man nun prüfen, ob eine Datenbank namens <code>smarthome_db</code> erstellt wurde. Der neue User ist in der Datenbank <code>mysql</code> in der Tabelle <code>users</code> zu finden:</p>
<pre><code class="language-sql">
use mysql;
select Host, User from user;
</code></pre>
<p>Im Output sollte nun eine Zeile mit IP des SmartHomeNG Servers und dem User &#8222;smarthome&#8220; sichtbar sein.</p>
<p>Die vergebenen PRIVILEGES auf die smarthome_db sind via</p>
<pre><code class="language-sql">
select Host, Db, USer from db; 
</code></pre>
<p>zu sehen. Auch hier sollten der Username, die IP und die Datenbank auftauchen.</p>
<p>Mit <code>exit</code> geht es zurück zur Shell.</p>
<h3>SmartHomeNG und Datenbank auf <strong>getrennten</strong> Maschinen/IPs</h3>
<p>Sind SmartHomeNG und Datenbank getrennt, muss zusätzlich der Eintrag <code>bind-address</code> in der <code>/etc/mysql/my.cnf</code> angepasst werden. Dieser kann entweder auskommentiert werden (jeder Rechner kann mit Angabe von User und Passwort auf die DB verbinden) oder explizit die IP des SmartHomeNG Servers gesetzt werden. Mehrere IPs sind nicht möglich. Soll daher auch vom Datenbank-Server zugegriffen werden (bspw. für ein dort installiertes PhpMyAdmin) hilft nur auskommentieren und das setzen entsprechender Firewall Regeln.</p>
<pre><code class="language-ini">
...
[mysqld]
...
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1 (auskommentiert)
#oder alternativ
bind-address            = «IP des SmartHomeNG Servers»
...
</code></pre>
<p>Nach dem Speichern muss der Dienst mit <code>sudo service mysql restart</code> neu gestartet werden.</p>
<h2>Vorbereitung des SmartHomeNG Servers für die Nutzung via Database Plugin:</h2>
<p>Detaillierte Informationen siehe <a href="https://github.com/smarthomeNG/plugins/tree/master/database" title="https://github.com/smarthomeNG/plugins/tree/master/database" rel="noreferrer">https://github.com/smarthomeNG/plugins/tree/master/database</a></p>
<p>Nach erfolgter Installation der Datenbank, muss auf dem SmartHomeNG Server das entsprechende Paket für Python3 installiert werden:</p>
<pre><code class="language-bash">
sudo pip3 install --upgrade pymysql
</code></pre>
<p>Achtung: Das sehr ähnlich klingende pymsql3 sollte nicht mehr verwendet werden (würde theoretisch mit dem Plugin aber auch funktionieren).</p>
<p>Das Database Plugin wird nun wie folgt in der <code>plugin.yaml</code> eingerichtet:</p>
<pre><code class="language-yaml">database:
    plugin_name: database
    driver: pymysql
    connect:
      - 'host:«ip des mariadb/mysql servers»'
      - 'user:smarthome'
      - 'passwd:«passwort des users smarthome»'
      - 'db:smarthome_db'

</code></pre>
<p>In den jeweiligen Items muss dann ein <code>database@mysqldb: init</code> erfolgen (oder das alte <code>sqlite: init</code> ersetzen).</p>
<h2>Datenkonvertierung von SQLite</h2>
<p>Das Datenbank Plugin nutzt intern ein anderes Format als die alte smarthome.db Datenbank. Wenn die Daten weiterhin genutzt werden sollen (historische Daten), dann müssen sie konvertiert werden ins neue Format.</p>
<p>Dazu muß auf der Shell ins SmartHomeNG Basisverzeichnis gewechselt und dann ein Konvertierungsscript aufgerufen werden:</p>
<pre><code class="language-bash">
cd /usr/local/smarthome
python3 plugins/database/&gt;convert ./var/db/smarthome.db ... . # gibt es leider noch nicht ;)
</code></pre>
<p>todo: Skript schreiben für die Migration</p>
<h2>Abschluß</h2>
<p>Nachdem die Änderungen an den Items durchgeführt sind und die Konvertierung erfolgt ist, muß SmartHomeNG neu gestartet werden.</p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/database-plugin-guide-fuer-mysql-mariadb/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installation InfluxDB</title>
		<link>https://www.smarthomeng.de/installation-influxdb</link>
					<comments>https://www.smarthomeng.de/installation-influxdb#respond</comments>
		
		<dc:creator><![CDATA[Bernd Meiners]]></dc:creator>
		<pubDate>Thu, 05 May 2016 14:59:26 +0000</pubDate>
				<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[influxdb]]></category>
		<category><![CDATA[Messwerte]]></category>
		<guid isPermaLink="false">http://test.smarthomeng.de/?p=205</guid>

					<description><![CDATA[Installation der InfluxDB Datenbank Damit SmarthomeNG Meßwerte loggen kann existiert eine Schnittstelle zur SQLite Datenbank. Als Alternative für umfangreichere Auswertungen und mehr Performance gibt es ein neues Plugin um Meßdaten in eine Influx Datenbank zu schreiben. Die Influx Datenbank wurde speziell entwickelt für Meßwerte mit Zeitstempeln. Sie verfügt über Schnittstellen<a class="moretag" href="https://www.smarthomeng.de/installation-influxdb"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<div class="markdown-body">
<h1>Installation der InfluxDB Datenbank</h1>
<p>Damit SmarthomeNG Meßwerte loggen kann existiert eine Schnittstelle zur SQLite Datenbank. Als Alternative für umfangreichere Auswertungen und mehr Performance gibt es ein neues Plugin um Meßdaten in eine Influx Datenbank zu schreiben. Die Influx Datenbank wurde speziell entwickelt für Meßwerte mit Zeitstempeln. Sie verfügt über Schnittstellen zu gängigen Programmiersprachen und es gibt eine interaktives Command Line Interface.</p>
<h2>Vorbedingung</h2>
<p>Die folgende Anleitung geht davon aus, das ein Debian Jessie System als 64-bit Variante vorliegt und damit der systemd benutzt wird um Dienste zu starten und zu beenden. Ihr könnt testen, welches System bei Euch installiert ist mit:</p>
<pre><code class="language-bash">
getconf -a | grep LONG_BIT
</code></pre>
<p>Das ergibt für ein 64 Bit System <code>LONG_BIT 64</code>.</p>
<p>(Alternativ kann man auch die Sourcen für InfluxDB holen und eine 32 Bit Version bauen. Allerdings sprengt das den Rahmen dieses How-to.</p>
<p>Zunächst der Download der <a href="https://influxdata.com/downloads/#influxdb" rel="nofollow" title="https://influxdata.com/downloads/#influxdb">InfluxDB</a> Datenbank mit</p>
<pre><code class="language-bash">
wget https://dl.influxdata.com/influxdb/releases/influxdb_0.12.2-1_amd64.deb
sudo dpkg -i influxdb_0.12.2-1_amd64.deb 
</code></pre>
<p>Jetzt muß Influx noch einmalig gestartet werden:</p>
<pre><code class="language-bash">
sudo systemctl start influxdb.service
</code></pre>
<p>Ob die Datenbank nun im Hintergrund läuft, läßt sich prüfen mit</p>
<pre><code class="language-bash">
sudo systemctl status influxdb.service
</code></pre>
<p>Damit das Plugin später auch Daten in eine Datenbank schreiben kann, legen wir eine Datenbank an. Dazu starten wir das influx command line interface:</p>
<pre><code class="language-bash">
influx
</code></pre>
<p>Um die existierenden Datenbanken aufzulisten, geben wir das Kommando <code>SHOW DATABASES</code> ein. Da wir frisch installiert haben, sollten lediglich <code>name</code> und <code>_internal</code> gelistet werden. Nun erstellen wir eine neue Datenbank mit</p>
<pre><code class="language-bash">
CREATE DATABASE smarthome
</code></pre>
<p>Zur Prüfung geben wir erneut das Kommando <code>SHOW DATABASES</code> ein. Das Ergebnis sollte nun sein:</p>
<pre><code class="language-text">
name: databases
---------------
name
_internal
smarthome

&gt;
</code></pre>
<p>Mit <code>quit</code> kann das Command Line Interface wieder verlassen werden.</p>
<h2>Installieren des InfluxDB Python Clients</h2>
<p>Um die InfluxDB mit Python und damit mit SmarthomeNG nutzen zu können, bmuß noch ein passendes Zugriffsmodul installiert werden:</p>
<pre><code class="language-bash">
sudo pip3 install influxdb
</code></pre>
<h2>Installieren des Plugins</h2>
<p>In den nächsten Versionen von SmarthomeNG (&gt; V1.1) wird das Plugin sicher Bestandteil des Masters werden. Bis es soweit ist, muss es nachinstalliert werden:</p>
<pre><code class="language-bash">
cd /usr/local/smarthome/plugins
mkdir influx
cd influx
wget https://github.com/SgtSeppel/smarthome-influxdb/archive/master.zip
unzip -j master.zip
rm master.zip
</code></pre>
<h2>Konfiguration des Plugins</h2>
<h3>plugin.yaml</h3>
<pre><code class="language-yaml">
influxdb:
    class_name: InfluxDB
    class_path: plugins.influx
#   influx_host: localhost
#   influx_port: 8083
#   influx_user: root
#   influx_pass: root
#   influx_db: smarthome
    influx_keyword: influx

</code></pre>
<p>Der Eintrag <code>influx_keyword</code> legt fest, welche Daten in die Datenbank geschrieben werden. Ihr könnt entweder z.B. <code>influx</code> wählen und dann würde dieses item in die Datenbank geschrieben werden:</p>
<pre><code class="language-yaml">
Vorlauftemperatur:
    name: Vorlaufemperatur
    type: num
    knx_dpt: 9
    influx: true
    visu_acl: rw
    knx_init: 8/1/1
    cache: on
</code></pre>
<p>Eine Superidee des Entwicklers ist es jedoch als <code>influx_keyword</code> nun <code>sqlite</code> auszuwählen, dann werden alle Daten die in die SQLite Datenbank geschrieben werden zugleich auch in die Influx Datenbank geschrieben.</p>
<p>Nun müßt ihr noch smarthome.py neu starten, damit das Plugin auch genutzt wird.</p>
<p>Wenn nun das Frontend Grafana genutzt werden soll um unabhängig von einer Visu auf dir nun frisch geloggten Daten zuzugreifen, dann bitte bei der Anleitung für Grafana fortfahren.</p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/installation-influxdb/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>
