<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AndyK</id>
	<title>FHEMWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AndyK"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/AndyK"/>
	<updated>2026-04-10T15:31:00Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13278</id>
		<title>DigitalSTROM einbinden</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13278"/>
		<updated>2015-12-18T13:51:25Z</updated>

		<summary type="html">&lt;p&gt;AndyK: Änderung 13277 von AndyK (Diskussion) rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Anleitung beschreibt einen einfachen Mechanismus, um in einer digitalSTROM-Installation Aktionen auszulösen und durch polling Daten der Installation abzufragen. Verwendet wird dafür [[HTTPMOD]].&lt;br /&gt;
&lt;br /&gt;
Funktionen:&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im digitalSTROM-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Verständnis über eine digitalSTROM-Installation und der Bedienung des digitalSTROM-Konfigurators wird vorausgesetzt. Ebenso über FHEM im Allgemeinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen auf dem digitalSTROM-Server (dSS) ==&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen eines Application Tokens für den Zugriff auf den dSS ===&lt;br /&gt;
Die Authentifizierung im dSS erfolgt über einen zweistufigen Mechanismus mit Application-Token und Session-Token. &lt;br /&gt;
&lt;br /&gt;
Im ersten Schritt wird ein Application Token erzeugt und anschliessend über den dS-Konfigurator aktiviert. Dieser Schritt muss nur einmal durchgeführt werden. &lt;br /&gt;
Eine Anleitung dazu findet sich in der Dokumentation [http://developer.digitalstrom.org/Architecture/system-interfaces.pdf digitalSTROM API (Kapitel 6)]. &lt;br /&gt;
Mit Hilfe dieses Application Tokens wird dann ein Session Token generiert, das bei den einzelnen Calls auf das JSON-API benutzt wird.&lt;br /&gt;
&lt;br /&gt;
=== Definition einer User Defined Action (UDA) im digitalSTROM-Konfigurator (dS-Konfigurator) ===&lt;br /&gt;
Über User Defined Actions (deutsch: Benutzerdefinierte Aktionen) können nahezu alle Aktionen in einer dS-Installation angetriggert werden. Über den dS-Konfigurator und die dSS-App &amp;quot;Benutzerdefinierte Aktionen&amp;quot; werden die UDAs angelegt. Neben den auszuführenden Aktionen können auch Bedingungen (wie z.B. nur Nachts, nur bei Abwesenheit) hinterlegt werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine UDA:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_anlegen.png|640px|UDA definieren im dS-Konfigurator]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die UDA über FHEM aufzurufen, wird ihre ID benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/usr/events findet man die UDAs mit ihrer ID. &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_ID_ermitteln.png|640px|UDA ID ermitteln]]&lt;br /&gt;
&lt;br /&gt;
=== Ermitteln der dSID des digitalSTROM-Meters (dSM) ===&lt;br /&gt;
Um die Funktion aktueller Verbrauch im Stromkreis zu implementieren, wird die dSID des zugehörigen dSM benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/apartment/dSMeters/ unter dem entsprechenden dSM findet man die dSID. &#039;&#039;Bitte nicht verwechseln mit der dSUID oder der dSM-ID wie sie im Hardware-Tab angezeigt wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_dSM_DSID_ermitteln.png|640px|dSID eines dSM ermitteln]]&lt;br /&gt;
&lt;br /&gt;
== Definition in der fhem.cfg ==&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Aufruf der UDAs und für die Abfrage des Presence States ===&lt;br /&gt;
Der folgende Code implementiert die Funktionen&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im dSS-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSS &lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSS HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/property/getString?path=/usr/states/presence/value&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSS userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSS reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSS sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSS sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSS sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 attr dSS verbose 5&lt;br /&gt;
 attr dSS group dSS&lt;br /&gt;
 attr dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read presence state&lt;br /&gt;
 attr dSS reading1Name PresentState&lt;br /&gt;
 attr dSS reading1Regex &amp;quot;result&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;([presentabsent]*)&lt;br /&gt;
 attr dSS stateFormat {sprintf(&amp;quot;HomeState: %s&amp;quot;, ReadingsVal($name,&amp;quot;PresentState&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 # call a user defined action by ID&lt;br /&gt;
 attr dSS set01Name callUDA &lt;br /&gt;
 attr dSS set01URL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/event/raise?parameter=id%3D$val&amp;amp;name=highlevelevent&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSS set01ReAuthRegex .*not logged in.*&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSS&lt;br /&gt;
 define FileLog_dSS FileLog ./log/dSS-%Y.log dSS&lt;br /&gt;
 attr FileLog_dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot presence state&lt;br /&gt;
 define Plot_dSS SVG FileLog_dSS:dSS:CURRENT&lt;br /&gt;
 attr Plot_dSS captionLeft 1&lt;br /&gt;
 attr Plot_dSS label &amp;quot;dSS PresentState: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSS room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/property/getString?... der PresentState der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Über die set01*-Parameter wird ein weiterer JSON-Call auf den dSS implementiert über den die UDA angetriggert werden kann&lt;br /&gt;
# Die Definition für das Logfile und den Plot des presence-states sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
=== Auslösen einer UDA in FHEM ===&lt;br /&gt;
&lt;br /&gt;
Die vorher definierte UDA kann nun jederzeit über FHEM mittels &lt;br /&gt;
 set dSS callUDA hierstehtdieIdderUDA &lt;br /&gt;
aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Pollen des aktuellen Verbrauchs in einem Stromkreis ===&lt;br /&gt;
Der folgende Code implementiert die Funktion&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSM&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSM_0000131e HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/circuit/getConsumption?id=hierstehtdiedSIDdesdSM&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSM_0000131e userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSM_0000131e reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSM_0000131e sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSM_0000131e sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSM_0000131e sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSM_0000131e stateFormat {sprintf(&amp;quot;dSID: %s - Watt: %d&amp;quot;, &amp;quot;hierstehtdiedSIDdesdSM&amp;quot;, ReadingsVal($name,&amp;quot;Consumption&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 attr dSM_0000131e verbose 1&lt;br /&gt;
 attr dSM_0000131e group dSM&lt;br /&gt;
 attr dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read consumption&lt;br /&gt;
 attr dSM_0000131e reading1Name Consumption&lt;br /&gt;
 attr dSM_0000131e reading1Regex {&amp;quot;result&amp;quot;:{&amp;quot;consumption&amp;quot;:([\d]+)&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSM&lt;br /&gt;
 define FileLog_dSM_0000131e FileLog ./log/dSM-hierstehtdiedSIDdesdSM-%Y.log dSM_0000131e&lt;br /&gt;
 attr FileLog_dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot consumption for the dSM&lt;br /&gt;
 define Plot_dSM_0000131e SVG FileLog_dSM_0000131e:dSM:CURRENT&lt;br /&gt;
 attr Plot_dSM_0000131e captionLeft 1&lt;br /&gt;
 attr Plot_dSM_0000131e label &amp;quot;Verbrauch Esszimmer/Flur: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSM_0000131e room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und Session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/circuit/getConsumption?... der aktuelle Verbrauch im Stromkreis (auf dem dSM) in der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Die Definitionen für das Logfile und den Verbrauch sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
== gplot-Dateien für die Visualisierung ==&lt;br /&gt;
Für die Visualisierungen werden zwei gplot-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
=== dSM.gplot ===&lt;br /&gt;
 # Created by FHEM/98_SVG.pm, 2015-12-17 19:16:49&lt;br /&gt;
 set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
 set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
 set xdata time&lt;br /&gt;
 set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
 set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
 set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
 set ytics nomirror&lt;br /&gt;
 set y2tics &lt;br /&gt;
 set grid ytics&lt;br /&gt;
 set ylabel &amp;quot;Verbrauch (W)&amp;quot;&lt;br /&gt;
 set y2label &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #FileLog_dSM_0000131e 4:dSM_0000131e.Consumption\x3a:0:&lt;br /&gt;
 &lt;br /&gt;
 plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Verbrauch (W)&#039; ls  lw 1 with lines&lt;br /&gt;
&lt;br /&gt;
=== dSS.gplot ===&lt;br /&gt;
 # Created by FHEM/98_SVG.pm, 2015-12-17 19:28:23&lt;br /&gt;
 set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
 set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
 set xdata time&lt;br /&gt;
 set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
 set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
 set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
 set ytics nomirror&lt;br /&gt;
 set y2tics &lt;br /&gt;
 set grid ytics&lt;br /&gt;
 set ylabel &amp;quot;Verbrauch (W)&amp;quot;&lt;br /&gt;
 set y2label &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #FileLog_dSS 4:dSS.PresentState\x3a:0:$fld[3]=~&amp;quot;present&amp;quot;?1:0&lt;br /&gt;
 &lt;br /&gt;
 plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Present/Absent&#039; ls  lw 1 with steps&lt;br /&gt;
&lt;br /&gt;
=== Ergebnis der Visualisierung in FHEM ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM_Visualisierung_dS_1.png|640px|lVisualisierung von PresenceState und Verbrauch einer dS-Installation]]&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Informationen ==&lt;br /&gt;
&lt;br /&gt;
digitalSTROM-API&lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/system-interfaces.pdf &lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/dss-json.pdf &lt;br /&gt;
&lt;br /&gt;
digitalSTROM-Bedienungsanleitungen&lt;br /&gt;
* http://www.digitalstrom.com/Partner/Support/Bedienungsanleitungen/ &lt;br /&gt;
&lt;br /&gt;
HTTPMOD&lt;br /&gt;
* [[HTTPMOD|HTTPMOD im Wiki]]&lt;br /&gt;
* [http://fhem.de/commandref.html#HTTPMOD HTTPMOD in der FHEM-Command Reference]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13277</id>
		<title>DigitalSTROM einbinden</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13277"/>
		<updated>2015-12-18T13:49:54Z</updated>

		<summary type="html">&lt;p&gt;AndyK: zur Kategorie Other Components hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Anleitung beschreibt einen einfachen Mechanismus, um in einer digitalSTROM-Installation Aktionen auszulösen und durch polling Daten der Installation abzufragen. Verwendet wird dafür [[HTTPMOD]].&lt;br /&gt;
&lt;br /&gt;
Funktionen:&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im digitalSTROM-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Verständnis über eine digitalSTROM-Installation und der Bedienung des digitalSTROM-Konfigurators wird vorausgesetzt. Ebenso über FHEM im Allgemeinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen auf dem digitalSTROM-Server (dSS) ==&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen eines Application Tokens für den Zugriff auf den dSS ===&lt;br /&gt;
Die Authentifizierung im dSS erfolgt über einen zweistufigen Mechanismus mit Application-Token und Session-Token. &lt;br /&gt;
&lt;br /&gt;
Im ersten Schritt wird ein Application Token erzeugt und anschliessend über den dS-Konfigurator aktiviert. Dieser Schritt muss nur einmal durchgeführt werden. &lt;br /&gt;
Eine Anleitung dazu findet sich in der Dokumentation [http://developer.digitalstrom.org/Architecture/system-interfaces.pdf digitalSTROM API (Kapitel 6)]. &lt;br /&gt;
Mit Hilfe dieses Application Tokens wird dann ein Session Token generiert, das bei den einzelnen Calls auf das JSON-API benutzt wird.&lt;br /&gt;
&lt;br /&gt;
=== Definition einer User Defined Action (UDA) im digitalSTROM-Konfigurator (dS-Konfigurator) ===&lt;br /&gt;
Über User Defined Actions (deutsch: Benutzerdefinierte Aktionen) können nahezu alle Aktionen in einer dS-Installation angetriggert werden. Über den dS-Konfigurator und die dSS-App &amp;quot;Benutzerdefinierte Aktionen&amp;quot; werden die UDAs angelegt. Neben den auszuführenden Aktionen können auch Bedingungen (wie z.B. nur Nachts, nur bei Abwesenheit) hinterlegt werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine UDA:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_anlegen.png|640px|UDA definieren im dS-Konfigurator]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die UDA über FHEM aufzurufen, wird ihre ID benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/usr/events findet man die UDAs mit ihrer ID. &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_ID_ermitteln.png|640px|UDA ID ermitteln]]&lt;br /&gt;
&lt;br /&gt;
=== Ermitteln der dSID des digitalSTROM-Meters (dSM) ===&lt;br /&gt;
Um die Funktion aktueller Verbrauch im Stromkreis zu implementieren, wird die dSID des zugehörigen dSM benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/apartment/dSMeters/ unter dem entsprechenden dSM findet man die dSID. &#039;&#039;Bitte nicht verwechseln mit der dSUID oder der dSM-ID wie sie im Hardware-Tab angezeigt wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_dSM_DSID_ermitteln.png|640px|dSID eines dSM ermitteln]]&lt;br /&gt;
&lt;br /&gt;
== Definition in der fhem.cfg ==&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Aufruf der UDAs und für die Abfrage des Presence States ===&lt;br /&gt;
Der folgende Code implementiert die Funktionen&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im dSS-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSS &lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSS HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/property/getString?path=/usr/states/presence/value&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSS userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSS reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSS sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSS sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSS sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 attr dSS verbose 5&lt;br /&gt;
 attr dSS group dSS&lt;br /&gt;
 attr dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read presence state&lt;br /&gt;
 attr dSS reading1Name PresentState&lt;br /&gt;
 attr dSS reading1Regex &amp;quot;result&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;([presentabsent]*)&lt;br /&gt;
 attr dSS stateFormat {sprintf(&amp;quot;HomeState: %s&amp;quot;, ReadingsVal($name,&amp;quot;PresentState&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 # call a user defined action by ID&lt;br /&gt;
 attr dSS set01Name callUDA &lt;br /&gt;
 attr dSS set01URL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/event/raise?parameter=id%3D$val&amp;amp;name=highlevelevent&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSS set01ReAuthRegex .*not logged in.*&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSS&lt;br /&gt;
 define FileLog_dSS FileLog ./log/dSS-%Y.log dSS&lt;br /&gt;
 attr FileLog_dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot presence state&lt;br /&gt;
 define Plot_dSS SVG FileLog_dSS:dSS:CURRENT&lt;br /&gt;
 attr Plot_dSS captionLeft 1&lt;br /&gt;
 attr Plot_dSS label &amp;quot;dSS PresentState: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSS room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/property/getString?... der PresentState der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Über die set01*-Parameter wird ein weiterer JSON-Call auf den dSS implementiert über den die UDA angetriggert werden kann&lt;br /&gt;
# Die Definition für das Logfile und den Plot des presence-states sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
=== Auslösen einer UDA in FHEM ===&lt;br /&gt;
&lt;br /&gt;
Die vorher definierte UDA kann nun jederzeit über FHEM mittels &lt;br /&gt;
 set dSS callUDA hierstehtdieIdderUDA &lt;br /&gt;
aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Pollen des aktuellen Verbrauchs in einem Stromkreis ===&lt;br /&gt;
Der folgende Code implementiert die Funktion&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSM&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSM_0000131e HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/circuit/getConsumption?id=hierstehtdiedSIDdesdSM&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSM_0000131e userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSM_0000131e reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSM_0000131e sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSM_0000131e sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSM_0000131e sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSM_0000131e stateFormat {sprintf(&amp;quot;dSID: %s - Watt: %d&amp;quot;, &amp;quot;hierstehtdiedSIDdesdSM&amp;quot;, ReadingsVal($name,&amp;quot;Consumption&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 attr dSM_0000131e verbose 1&lt;br /&gt;
 attr dSM_0000131e group dSM&lt;br /&gt;
 attr dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read consumption&lt;br /&gt;
 attr dSM_0000131e reading1Name Consumption&lt;br /&gt;
 attr dSM_0000131e reading1Regex {&amp;quot;result&amp;quot;:{&amp;quot;consumption&amp;quot;:([\d]+)&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSM&lt;br /&gt;
 define FileLog_dSM_0000131e FileLog ./log/dSM-hierstehtdiedSIDdesdSM-%Y.log dSM_0000131e&lt;br /&gt;
 attr FileLog_dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot consumption for the dSM&lt;br /&gt;
 define Plot_dSM_0000131e SVG FileLog_dSM_0000131e:dSM:CURRENT&lt;br /&gt;
 attr Plot_dSM_0000131e captionLeft 1&lt;br /&gt;
 attr Plot_dSM_0000131e label &amp;quot;Verbrauch Esszimmer/Flur: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSM_0000131e room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und Session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/circuit/getConsumption?... der aktuelle Verbrauch im Stromkreis (auf dem dSM) in der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Die Definitionen für das Logfile und den Verbrauch sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
== gplot-Dateien für die Visualisierung ==&lt;br /&gt;
Für die Visualisierungen werden zwei gplot-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
=== dSM.gplot ===&lt;br /&gt;
 # Created by FHEM/98_SVG.pm, 2015-12-17 19:16:49&lt;br /&gt;
 set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
 set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
 set xdata time&lt;br /&gt;
 set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
 set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
 set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
 set ytics nomirror&lt;br /&gt;
 set y2tics &lt;br /&gt;
 set grid ytics&lt;br /&gt;
 set ylabel &amp;quot;Verbrauch (W)&amp;quot;&lt;br /&gt;
 set y2label &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #FileLog_dSM_0000131e 4:dSM_0000131e.Consumption\x3a:0:&lt;br /&gt;
 &lt;br /&gt;
 plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Verbrauch (W)&#039; ls  lw 1 with lines&lt;br /&gt;
&lt;br /&gt;
=== dSS.gplot ===&lt;br /&gt;
 # Created by FHEM/98_SVG.pm, 2015-12-17 19:28:23&lt;br /&gt;
 set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
 set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
 set xdata time&lt;br /&gt;
 set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
 set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
 set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
 set ytics nomirror&lt;br /&gt;
 set y2tics &lt;br /&gt;
 set grid ytics&lt;br /&gt;
 set ylabel &amp;quot;Verbrauch (W)&amp;quot;&lt;br /&gt;
 set y2label &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #FileLog_dSS 4:dSS.PresentState\x3a:0:$fld[3]=~&amp;quot;present&amp;quot;?1:0&lt;br /&gt;
 &lt;br /&gt;
 plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Present/Absent&#039; ls  lw 1 with steps&lt;br /&gt;
&lt;br /&gt;
=== Ergebnis der Visualisierung in FHEM ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM_Visualisierung_dS_1.png|640px|lVisualisierung von PresenceState und Verbrauch einer dS-Installation]]&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Informationen ==&lt;br /&gt;
&lt;br /&gt;
digitalSTROM-API&lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/system-interfaces.pdf &lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/dss-json.pdf &lt;br /&gt;
&lt;br /&gt;
digitalSTROM-Bedienungsanleitungen&lt;br /&gt;
* http://www.digitalstrom.com/Partner/Support/Bedienungsanleitungen/ &lt;br /&gt;
&lt;br /&gt;
HTTPMOD&lt;br /&gt;
* [[HTTPMOD|HTTPMOD im Wiki]]&lt;br /&gt;
* [http://fhem.de/commandref.html#HTTPMOD HTTPMOD in der FHEM-Command Reference]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Other_Components]]&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer:AndyK&amp;diff=13276</id>
		<title>Benutzer:AndyK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer:AndyK&amp;diff=13276"/>
		<updated>2015-12-18T13:44:55Z</updated>

		<summary type="html">&lt;p&gt;AndyK: Leere Seite erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13275</id>
		<title>DigitalSTROM einbinden</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13275"/>
		<updated>2015-12-18T13:43:11Z</updated>

		<summary type="html">&lt;p&gt;AndyK: /* Visualisierungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Anleitung beschreibt einen einfachen Mechanismus, um in einer digitalSTROM-Installation Aktionen auszulösen und durch polling Daten der Installation abzufragen. Verwendet wird dafür [[HTTPMOD]].&lt;br /&gt;
&lt;br /&gt;
Funktionen:&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im digitalSTROM-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Verständnis über eine digitalSTROM-Installation und der Bedienung des digitalSTROM-Konfigurators wird vorausgesetzt. Ebenso über FHEM im Allgemeinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen auf dem digitalSTROM-Server (dSS) ==&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen eines Application Tokens für den Zugriff auf den dSS ===&lt;br /&gt;
Die Authentifizierung im dSS erfolgt über einen zweistufigen Mechanismus mit Application-Token und Session-Token. &lt;br /&gt;
&lt;br /&gt;
Im ersten Schritt wird ein Application Token erzeugt und anschliessend über den dS-Konfigurator aktiviert. Dieser Schritt muss nur einmal durchgeführt werden. &lt;br /&gt;
Eine Anleitung dazu findet sich in der Dokumentation [http://developer.digitalstrom.org/Architecture/system-interfaces.pdf digitalSTROM API (Kapitel 6)]. &lt;br /&gt;
Mit Hilfe dieses Application Tokens wird dann ein Session Token generiert, das bei den einzelnen Calls auf das JSON-API benutzt wird.&lt;br /&gt;
&lt;br /&gt;
=== Definition einer User Defined Action (UDA) im digitalSTROM-Konfigurator (dS-Konfigurator) ===&lt;br /&gt;
Über User Defined Actions (deutsch: Benutzerdefinierte Aktionen) können nahezu alle Aktionen in einer dS-Installation angetriggert werden. Über den dS-Konfigurator und die dSS-App &amp;quot;Benutzerdefinierte Aktionen&amp;quot; werden die UDAs angelegt. Neben den auszuführenden Aktionen können auch Bedingungen (wie z.B. nur Nachts, nur bei Abwesenheit) hinterlegt werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine UDA:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_anlegen.png|640px|UDA definieren im dS-Konfigurator]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die UDA über FHEM aufzurufen, wird ihre ID benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/usr/events findet man die UDAs mit ihrer ID. &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_ID_ermitteln.png|640px|UDA ID ermitteln]]&lt;br /&gt;
&lt;br /&gt;
=== Ermitteln der dSID des digitalSTROM-Meters (dSM) ===&lt;br /&gt;
Um die Funktion aktueller Verbrauch im Stromkreis zu implementieren, wird die dSID des zugehörigen dSM benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/apartment/dSMeters/ unter dem entsprechenden dSM findet man die dSID. &#039;&#039;Bitte nicht verwechseln mit der dSUID oder der dSM-ID wie sie im Hardware-Tab angezeigt wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_dSM_DSID_ermitteln.png|640px|dSID eines dSM ermitteln]]&lt;br /&gt;
&lt;br /&gt;
== Definition in der fhem.cfg ==&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Aufruf der UDAs und für die Abfrage des Presence States ===&lt;br /&gt;
Der folgende Code implementiert die Funktionen&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im dSS-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSS &lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSS HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/property/getString?path=/usr/states/presence/value&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSS userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSS reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSS sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSS sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSS sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 attr dSS verbose 5&lt;br /&gt;
 attr dSS group dSS&lt;br /&gt;
 attr dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read presence state&lt;br /&gt;
 attr dSS reading1Name PresentState&lt;br /&gt;
 attr dSS reading1Regex &amp;quot;result&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;([presentabsent]*)&lt;br /&gt;
 attr dSS stateFormat {sprintf(&amp;quot;HomeState: %s&amp;quot;, ReadingsVal($name,&amp;quot;PresentState&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 # call a user defined action by ID&lt;br /&gt;
 attr dSS set01Name callUDA &lt;br /&gt;
 attr dSS set01URL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/event/raise?parameter=id%3D$val&amp;amp;name=highlevelevent&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSS set01ReAuthRegex .*not logged in.*&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSS&lt;br /&gt;
 define FileLog_dSS FileLog ./log/dSS-%Y.log dSS&lt;br /&gt;
 attr FileLog_dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot presence state&lt;br /&gt;
 define Plot_dSS SVG FileLog_dSS:dSS:CURRENT&lt;br /&gt;
 attr Plot_dSS captionLeft 1&lt;br /&gt;
 attr Plot_dSS label &amp;quot;dSS PresentState: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSS room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/property/getString?... der PresentState der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Über die set01*-Parameter wird ein weiterer JSON-Call auf den dSS implementiert über den die UDA angetriggert werden kann&lt;br /&gt;
# Die Definition für das Logfile und den Plot des presence-states sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
=== Auslösen einer UDA in FHEM ===&lt;br /&gt;
&lt;br /&gt;
Die vorher definierte UDA kann nun jederzeit über FHEM mittels &lt;br /&gt;
 set dSS callUDA hierstehtdieIdderUDA &lt;br /&gt;
aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Pollen des aktuellen Verbrauchs in einem Stromkreis ===&lt;br /&gt;
Der folgende Code implementiert die Funktion&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSM&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSM_0000131e HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/circuit/getConsumption?id=hierstehtdiedSIDdesdSM&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSM_0000131e userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSM_0000131e reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSM_0000131e sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSM_0000131e sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSM_0000131e sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSM_0000131e stateFormat {sprintf(&amp;quot;dSID: %s - Watt: %d&amp;quot;, &amp;quot;hierstehtdiedSIDdesdSM&amp;quot;, ReadingsVal($name,&amp;quot;Consumption&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 attr dSM_0000131e verbose 1&lt;br /&gt;
 attr dSM_0000131e group dSM&lt;br /&gt;
 attr dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read consumption&lt;br /&gt;
 attr dSM_0000131e reading1Name Consumption&lt;br /&gt;
 attr dSM_0000131e reading1Regex {&amp;quot;result&amp;quot;:{&amp;quot;consumption&amp;quot;:([\d]+)&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSM&lt;br /&gt;
 define FileLog_dSM_0000131e FileLog ./log/dSM-hierstehtdiedSIDdesdSM-%Y.log dSM_0000131e&lt;br /&gt;
 attr FileLog_dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot consumption for the dSM&lt;br /&gt;
 define Plot_dSM_0000131e SVG FileLog_dSM_0000131e:dSM:CURRENT&lt;br /&gt;
 attr Plot_dSM_0000131e captionLeft 1&lt;br /&gt;
 attr Plot_dSM_0000131e label &amp;quot;Verbrauch Esszimmer/Flur: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSM_0000131e room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und Session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/circuit/getConsumption?... der aktuelle Verbrauch im Stromkreis (auf dem dSM) in der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Die Definitionen für das Logfile und den Verbrauch sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
== gplot-Dateien für die Visualisierung ==&lt;br /&gt;
Für die Visualisierungen werden zwei gplot-Dateien angelegt.&lt;br /&gt;
&lt;br /&gt;
=== dSM.gplot ===&lt;br /&gt;
 # Created by FHEM/98_SVG.pm, 2015-12-17 19:16:49&lt;br /&gt;
 set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
 set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
 set xdata time&lt;br /&gt;
 set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
 set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
 set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
 set ytics nomirror&lt;br /&gt;
 set y2tics &lt;br /&gt;
 set grid ytics&lt;br /&gt;
 set ylabel &amp;quot;Verbrauch (W)&amp;quot;&lt;br /&gt;
 set y2label &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #FileLog_dSM_0000131e 4:dSM_0000131e.Consumption\x3a:0:&lt;br /&gt;
 &lt;br /&gt;
 plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Verbrauch (W)&#039; ls  lw 1 with lines&lt;br /&gt;
&lt;br /&gt;
=== dSS.gplot ===&lt;br /&gt;
 # Created by FHEM/98_SVG.pm, 2015-12-17 19:28:23&lt;br /&gt;
 set terminal png transparent size &amp;lt;SIZE&amp;gt; crop&lt;br /&gt;
 set output &#039;&amp;lt;OUT&amp;gt;.png&#039;&lt;br /&gt;
 set xdata time&lt;br /&gt;
 set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
 set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
 set title &#039;&amp;lt;L1&amp;gt;&#039;&lt;br /&gt;
 set ytics nomirror&lt;br /&gt;
 set y2tics &lt;br /&gt;
 set grid ytics&lt;br /&gt;
 set ylabel &amp;quot;Verbrauch (W)&amp;quot;&lt;br /&gt;
 set y2label &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #FileLog_dSS 4:dSS.PresentState\x3a:0:$fld[3]=~&amp;quot;present&amp;quot;?1:0&lt;br /&gt;
 &lt;br /&gt;
 plot &amp;quot;&amp;lt;IN&amp;gt;&amp;quot; using 1:2 axes x1y2 title &#039;Present/Absent&#039; ls  lw 1 with steps&lt;br /&gt;
&lt;br /&gt;
=== Ergebnis der Visualisierung in FHEM ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM_Visualisierung_dS_1.png|640px|lVisualisierung von PresenceState und Verbrauch einer dS-Installation]]&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Informationen ==&lt;br /&gt;
&lt;br /&gt;
digitalSTROM-API&lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/system-interfaces.pdf &lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/dss-json.pdf &lt;br /&gt;
&lt;br /&gt;
digitalSTROM-Bedienungsanleitungen&lt;br /&gt;
* http://www.digitalstrom.com/Partner/Support/Bedienungsanleitungen/ &lt;br /&gt;
&lt;br /&gt;
HTTPMOD&lt;br /&gt;
* [[HTTPMOD|HTTPMOD im Wiki]]&lt;br /&gt;
* [http://fhem.de/commandref.html#HTTPMOD HTTPMOD in der FHEM-Command Reference]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13274</id>
		<title>DigitalSTROM einbinden</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13274"/>
		<updated>2015-12-18T13:30:06Z</updated>

		<summary type="html">&lt;p&gt;AndyK: /* Auslösen einer UDA in FHEM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Anleitung beschreibt einen einfachen Mechanismus, um in einer digitalSTROM-Installation Aktionen auszulösen und durch polling Daten der Installation abzufragen. Verwendet wird dafür [[HTTPMOD]].&lt;br /&gt;
&lt;br /&gt;
Funktionen:&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im digitalSTROM-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Verständnis über eine digitalSTROM-Installation und der Bedienung des digitalSTROM-Konfigurators wird vorausgesetzt. Ebenso über FHEM im Allgemeinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen auf dem digitalSTROM-Server (dSS) ==&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen eines Application Tokens für den Zugriff auf den dSS ===&lt;br /&gt;
Die Authentifizierung im dSS erfolgt über einen zweistufigen Mechanismus mit Application-Token und Session-Token. &lt;br /&gt;
&lt;br /&gt;
Im ersten Schritt wird ein Application Token erzeugt und anschliessend über den dS-Konfigurator aktiviert. Dieser Schritt muss nur einmal durchgeführt werden. &lt;br /&gt;
Eine Anleitung dazu findet sich in der Dokumentation [http://developer.digitalstrom.org/Architecture/system-interfaces.pdf digitalSTROM API (Kapitel 6)]. &lt;br /&gt;
Mit Hilfe dieses Application Tokens wird dann ein Session Token generiert, das bei den einzelnen Calls auf das JSON-API benutzt wird.&lt;br /&gt;
&lt;br /&gt;
=== Definition einer User Defined Action (UDA) im digitalSTROM-Konfigurator (dS-Konfigurator) ===&lt;br /&gt;
Über User Defined Actions (deutsch: Benutzerdefinierte Aktionen) können nahezu alle Aktionen in einer dS-Installation angetriggert werden. Über den dS-Konfigurator und die dSS-App &amp;quot;Benutzerdefinierte Aktionen&amp;quot; werden die UDAs angelegt. Neben den auszuführenden Aktionen können auch Bedingungen (wie z.B. nur Nachts, nur bei Abwesenheit) hinterlegt werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine UDA:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_anlegen.png|640px|UDA definieren im dS-Konfigurator]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die UDA über FHEM aufzurufen, wird ihre ID benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/usr/events findet man die UDAs mit ihrer ID. &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_ID_ermitteln.png|640px|UDA ID ermitteln]]&lt;br /&gt;
&lt;br /&gt;
=== Ermitteln der dSID des digitalSTROM-Meters (dSM) ===&lt;br /&gt;
Um die Funktion aktueller Verbrauch im Stromkreis zu implementieren, wird die dSID des zugehörigen dSM benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/apartment/dSMeters/ unter dem entsprechenden dSM findet man die dSID. &#039;&#039;Bitte nicht verwechseln mit der dSUID oder der dSM-ID wie sie im Hardware-Tab angezeigt wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_dSM_DSID_ermitteln.png|640px|dSID eines dSM ermitteln]]&lt;br /&gt;
&lt;br /&gt;
== Definition in der fhem.cfg ==&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Aufruf der UDAs und für die Abfrage des Presence States ===&lt;br /&gt;
Der folgende Code implementiert die Funktionen&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im dSS-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSS &lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSS HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/property/getString?path=/usr/states/presence/value&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSS userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSS reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSS sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSS sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSS sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 attr dSS verbose 5&lt;br /&gt;
 attr dSS group dSS&lt;br /&gt;
 attr dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read presence state&lt;br /&gt;
 attr dSS reading1Name PresentState&lt;br /&gt;
 attr dSS reading1Regex &amp;quot;result&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;([presentabsent]*)&lt;br /&gt;
 attr dSS stateFormat {sprintf(&amp;quot;HomeState: %s&amp;quot;, ReadingsVal($name,&amp;quot;PresentState&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 # call a user defined action by ID&lt;br /&gt;
 attr dSS set01Name callUDA &lt;br /&gt;
 attr dSS set01URL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/event/raise?parameter=id%3D$val&amp;amp;name=highlevelevent&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSS set01ReAuthRegex .*not logged in.*&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSS&lt;br /&gt;
 define FileLog_dSS FileLog ./log/dSS-%Y.log dSS&lt;br /&gt;
 attr FileLog_dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot presence state&lt;br /&gt;
 define Plot_dSS SVG FileLog_dSS:dSS:CURRENT&lt;br /&gt;
 attr Plot_dSS captionLeft 1&lt;br /&gt;
 attr Plot_dSS label &amp;quot;dSS PresentState: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSS room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/property/getString?... der PresentState der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Über die set01*-Parameter wird ein weiterer JSON-Call auf den dSS implementiert über den die UDA angetriggert werden kann&lt;br /&gt;
# Die Definition für das Logfile und den Plot des presence-states sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
=== Auslösen einer UDA in FHEM ===&lt;br /&gt;
&lt;br /&gt;
Die vorher definierte UDA kann nun jederzeit über FHEM mittels &lt;br /&gt;
 set dSS callUDA hierstehtdieIdderUDA &lt;br /&gt;
aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Pollen des aktuellen Verbrauchs in einem Stromkreis ===&lt;br /&gt;
Der folgende Code implementiert die Funktion&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSM&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSM_0000131e HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/circuit/getConsumption?id=hierstehtdiedSIDdesdSM&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSM_0000131e userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSM_0000131e reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSM_0000131e sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSM_0000131e sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSM_0000131e sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSM_0000131e stateFormat {sprintf(&amp;quot;dSID: %s - Watt: %d&amp;quot;, &amp;quot;hierstehtdiedSIDdesdSM&amp;quot;, ReadingsVal($name,&amp;quot;Consumption&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 attr dSM_0000131e verbose 1&lt;br /&gt;
 attr dSM_0000131e group dSM&lt;br /&gt;
 attr dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read consumption&lt;br /&gt;
 attr dSM_0000131e reading1Name Consumption&lt;br /&gt;
 attr dSM_0000131e reading1Regex {&amp;quot;result&amp;quot;:{&amp;quot;consumption&amp;quot;:([\d]+)&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSM&lt;br /&gt;
 define FileLog_dSM_0000131e FileLog ./log/dSM-hierstehtdiedSIDdesdSM-%Y.log dSM_0000131e&lt;br /&gt;
 attr FileLog_dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot consumption for the dSM&lt;br /&gt;
 define Plot_dSM_0000131e SVG FileLog_dSM_0000131e:dSM:CURRENT&lt;br /&gt;
 attr Plot_dSM_0000131e captionLeft 1&lt;br /&gt;
 attr Plot_dSM_0000131e label &amp;quot;Verbrauch Esszimmer/Flur: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSM_0000131e room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und Session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/circuit/getConsumption?... der aktuelle Verbrauch im Stromkreis (auf dem dSM) in der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Die Definitionen für das Logfile und den Verbrauch sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
=== Visualisierungen ===&lt;br /&gt;
Die Visualisierung des Presence-States und des Verbrauchs sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM_Visualisierung_dS_1.png|640px|lVisualisierung von PresenceState und Verbrauch einer dS-Installation]]&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Informationen ==&lt;br /&gt;
&lt;br /&gt;
digitalSTROM-API&lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/system-interfaces.pdf &lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/dss-json.pdf &lt;br /&gt;
&lt;br /&gt;
digitalSTROM-Bedienungsanleitungen&lt;br /&gt;
* http://www.digitalstrom.com/Partner/Support/Bedienungsanleitungen/ &lt;br /&gt;
&lt;br /&gt;
HTTPMOD&lt;br /&gt;
* [[HTTPMOD|HTTPMOD im Wiki]]&lt;br /&gt;
* [http://fhem.de/commandref.html#HTTPMOD HTTPMOD in der FHEM-Command Reference]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13273</id>
		<title>DigitalSTROM einbinden</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DigitalSTROM_einbinden&amp;diff=13273"/>
		<updated>2015-12-18T13:02:35Z</updated>

		<summary type="html">&lt;p&gt;AndyK: Initiale Fassung erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Anleitung beschreibt einen einfachen Mechanismus, um in einer digitalSTROM-Installation Aktionen auszulösen und durch polling Daten der Installation abzufragen. Verwendet wird dafür [[HTTPMOD]].&lt;br /&gt;
&lt;br /&gt;
Funktionen:&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im digitalSTROM-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Verständnis über eine digitalSTROM-Installation und der Bedienung des digitalSTROM-Konfigurators wird vorausgesetzt. Ebenso über FHEM im Allgemeinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen auf dem digitalSTROM-Server (dSS) ==&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen eines Application Tokens für den Zugriff auf den dSS ===&lt;br /&gt;
Die Authentifizierung im dSS erfolgt über einen zweistufigen Mechanismus mit Application-Token und Session-Token. &lt;br /&gt;
&lt;br /&gt;
Im ersten Schritt wird ein Application Token erzeugt und anschliessend über den dS-Konfigurator aktiviert. Dieser Schritt muss nur einmal durchgeführt werden. &lt;br /&gt;
Eine Anleitung dazu findet sich in der Dokumentation [http://developer.digitalstrom.org/Architecture/system-interfaces.pdf digitalSTROM API (Kapitel 6)]. &lt;br /&gt;
Mit Hilfe dieses Application Tokens wird dann ein Session Token generiert, das bei den einzelnen Calls auf das JSON-API benutzt wird.&lt;br /&gt;
&lt;br /&gt;
=== Definition einer User Defined Action (UDA) im digitalSTROM-Konfigurator (dS-Konfigurator) ===&lt;br /&gt;
Über User Defined Actions (deutsch: Benutzerdefinierte Aktionen) können nahezu alle Aktionen in einer dS-Installation angetriggert werden. Über den dS-Konfigurator und die dSS-App &amp;quot;Benutzerdefinierte Aktionen&amp;quot; werden die UDAs angelegt. Neben den auszuführenden Aktionen können auch Bedingungen (wie z.B. nur Nachts, nur bei Abwesenheit) hinterlegt werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine UDA:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_anlegen.png|640px|UDA definieren im dS-Konfigurator]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die UDA über FHEM aufzurufen, wird ihre ID benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/usr/events findet man die UDAs mit ihrer ID. &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_UDA_ID_ermitteln.png|640px|UDA ID ermitteln]]&lt;br /&gt;
&lt;br /&gt;
=== Ermitteln der dSID des digitalSTROM-Meters (dSM) ===&lt;br /&gt;
Um die Funktion aktueller Verbrauch im Stromkreis zu implementieren, wird die dSID des zugehörigen dSM benötigt. Im dS-Konfigurator, Erweiterte Ansicht aktiv, Tab System, Menü Systemeigenschaften befindet sich der dSS-Property-Tree. Im Property-Tree unter dSS/apartment/dSMeters/ unter dem entsprechenden dSM findet man die dSID. &#039;&#039;Bitte nicht verwechseln mit der dSUID oder der dSM-ID wie sie im Hardware-Tab angezeigt wird.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DSS_dSM_DSID_ermitteln.png|640px|dSID eines dSM ermitteln]]&lt;br /&gt;
&lt;br /&gt;
== Definition in der fhem.cfg ==&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Aufruf der UDAs und für die Abfrage des Presence States ===&lt;br /&gt;
Der folgende Code implementiert die Funktionen&lt;br /&gt;
# Aufruf einer beliebigen User Defined Action (UDA) im dSS-System&lt;br /&gt;
# Polling des Presence-State der digitalSTROM-Installation (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSS &lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSS HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/property/getString?path=/usr/states/presence/value&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSS userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSS reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSS sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSS sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSS sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 attr dSS verbose 5&lt;br /&gt;
 attr dSS group dSS&lt;br /&gt;
 attr dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read presence state&lt;br /&gt;
 attr dSS reading1Name PresentState&lt;br /&gt;
 attr dSS reading1Regex &amp;quot;result&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;([presentabsent]*)&lt;br /&gt;
 attr dSS stateFormat {sprintf(&amp;quot;HomeState: %s&amp;quot;, ReadingsVal($name,&amp;quot;PresentState&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 # call a user defined action by ID&lt;br /&gt;
 attr dSS set01Name callUDA &lt;br /&gt;
 attr dSS set01URL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/event/raise?parameter=id%3D$val&amp;amp;name=highlevelevent&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSS set01ReAuthRegex .*not logged in.*&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSS&lt;br /&gt;
 define FileLog_dSS FileLog ./log/dSS-%Y.log dSS&lt;br /&gt;
 attr FileLog_dSS room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot presence state&lt;br /&gt;
 define Plot_dSS SVG FileLog_dSS:dSS:CURRENT&lt;br /&gt;
 attr Plot_dSS captionLeft 1&lt;br /&gt;
 attr Plot_dSS label &amp;quot;dSS PresentState: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSS room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/property/getString?... der PresentState der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Über die set01*-Parameter wird ein weiterer JSON-Call auf den dSS implementiert über den die UDA angetriggert werden kann&lt;br /&gt;
# Die Definition für das Logfile und den Plot des presence-states sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
=== Auslösen einer UDA in FHEM ===&lt;br /&gt;
&lt;br /&gt;
Die vorher definierte UDA kann nun jederzeit über FHEM mittels &lt;br /&gt;
 set dSS callUDA 1450377606 &lt;br /&gt;
aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
=== Definition eines HTTPMOD-Device in FHEM zum Pollen des aktuellen Verbrauchs in einem Stromkreis ===&lt;br /&gt;
Der folgende Code implementiert die Funktion&lt;br /&gt;
# Polling des aktuellen Verbrauchs eines Stromkreises durch Abfrage auf dem zugehörigen dSM (incl. Visualisierung)&lt;br /&gt;
&lt;br /&gt;
In der fhem.cfg wird dazu folgender Abschnitt definiert:&lt;br /&gt;
&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # define a dSM&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 define dSM_0000131e HTTPMOD &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/circuit/getConsumption?id=hierstehtdiedSIDdesdSM&amp;amp;token=$sid&amp;lt;/nowiki&amp;gt; 60&lt;br /&gt;
 attr dSM_0000131e userattr reAuthRegex reading1Name reading1Regex sid1IDRegex sidHeader1 sidURL stateFormat verbose&lt;br /&gt;
 attr dSM_0000131e reAuthRegex .*not logged in.*&lt;br /&gt;
 attr dSM_0000131e sid1IDRegex {&amp;quot;result&amp;quot;:{&amp;quot;token&amp;quot;:&amp;quot;([\d(abcdef)]+)&amp;quot;&lt;br /&gt;
 attr dSM_0000131e sidHeader1 Content-Type: application/json&lt;br /&gt;
 attr dSM_0000131e sidURL &amp;lt;nowiki&amp;gt;https://hierstehtdieipdesdSS:8080/json/system/loginApplication?loginToken=hierstehtdasapplicationtoken&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 attr dSM_0000131e stateFormat {sprintf(&amp;quot;dSID: %s - Watt: %d&amp;quot;, &amp;quot;hierstehtdiedSIDdesdSM&amp;quot;, ReadingsVal($name,&amp;quot;Consumption&amp;quot;,0))}&lt;br /&gt;
 &lt;br /&gt;
 attr dSM_0000131e verbose 1&lt;br /&gt;
 attr dSM_0000131e group dSM&lt;br /&gt;
 attr dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # read consumption&lt;br /&gt;
 attr dSM_0000131e reading1Name Consumption&lt;br /&gt;
 attr dSM_0000131e reading1Regex {&amp;quot;result&amp;quot;:{&amp;quot;consumption&amp;quot;:([\d]+)&lt;br /&gt;
 &lt;br /&gt;
 # define logfile for dSM&lt;br /&gt;
 define FileLog_dSM_0000131e FileLog ./log/dSM-hierstehtdiedSIDdesdSM-%Y.log dSM_0000131e&lt;br /&gt;
 attr FileLog_dSM_0000131e room digitalSTROM&lt;br /&gt;
 &lt;br /&gt;
 # plot consumption for the dSM&lt;br /&gt;
 define Plot_dSM_0000131e SVG FileLog_dSM_0000131e:dSM:CURRENT&lt;br /&gt;
 attr Plot_dSM_0000131e captionLeft 1&lt;br /&gt;
 attr Plot_dSM_0000131e label &amp;quot;Verbrauch Esszimmer/Flur: Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
 attr Plot_dSM_0000131e room digitalSTROM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise&#039;&#039;&#039;:&lt;br /&gt;
# Über das HTTPMOD-Devices und die sid*-Attribute wird die zweistufige Authentifizierung mittels Application-Token und Session-Token implementiert&lt;br /&gt;
# Über das JSON-API wird mit /json/circuit/getConsumption?... der aktuelle Verbrauch im Stromkreis (auf dem dSM) in der digitalSTROM-Installation abgefragt&lt;br /&gt;
# Die Definitionen für das Logfile und den Verbrauch sind FHEM-Standard&lt;br /&gt;
&lt;br /&gt;
=== Visualisierungen ===&lt;br /&gt;
Die Visualisierung des Presence-States und des Verbrauchs sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM_Visualisierung_dS_1.png|640px|lVisualisierung von PresenceState und Verbrauch einer dS-Installation]]&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Informationen ==&lt;br /&gt;
&lt;br /&gt;
digitalSTROM-API&lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/system-interfaces.pdf &lt;br /&gt;
* http://developer.digitalstrom.org/Architecture/dss-json.pdf &lt;br /&gt;
&lt;br /&gt;
digitalSTROM-Bedienungsanleitungen&lt;br /&gt;
* http://www.digitalstrom.com/Partner/Support/Bedienungsanleitungen/ &lt;br /&gt;
&lt;br /&gt;
HTTPMOD&lt;br /&gt;
* [[HTTPMOD|HTTPMOD im Wiki]]&lt;br /&gt;
* [http://fhem.de/commandref.html#HTTPMOD HTTPMOD in der FHEM-Command Reference]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:DSS_dSM_DSID_ermitteln.png&amp;diff=13272</id>
		<title>Datei:DSS dSM DSID ermitteln.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:DSS_dSM_DSID_ermitteln.png&amp;diff=13272"/>
		<updated>2015-12-18T12:54:11Z</updated>

		<summary type="html">&lt;p&gt;AndyK: AndyK lud eine neue Version von Datei:DSS dSM DSID ermitteln.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot dSS&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:DSS_UDA_anlegen.png&amp;diff=13271</id>
		<title>Datei:DSS UDA anlegen.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:DSS_UDA_anlegen.png&amp;diff=13271"/>
		<updated>2015-12-18T12:49:07Z</updated>

		<summary type="html">&lt;p&gt;AndyK: AndyK lud eine neue Version von Datei:DSS UDA anlegen.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot dSS&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:FHEM_Visualisierung_dS_1.png&amp;diff=13270</id>
		<title>Datei:FHEM Visualisierung dS 1.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:FHEM_Visualisierung_dS_1.png&amp;diff=13270"/>
		<updated>2015-12-18T12:26:09Z</updated>

		<summary type="html">&lt;p&gt;AndyK: Screenshot dSS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot dSS&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:DSS_dSM_DSID_ermitteln.png&amp;diff=13269</id>
		<title>Datei:DSS dSM DSID ermitteln.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:DSS_dSM_DSID_ermitteln.png&amp;diff=13269"/>
		<updated>2015-12-18T12:25:10Z</updated>

		<summary type="html">&lt;p&gt;AndyK: Screenshot dSS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot dSS&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:DSS_UDA_ID_ermitteln.png&amp;diff=13268</id>
		<title>Datei:DSS UDA ID ermitteln.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:DSS_UDA_ID_ermitteln.png&amp;diff=13268"/>
		<updated>2015-12-18T12:24:30Z</updated>

		<summary type="html">&lt;p&gt;AndyK: Screenshot dSS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot dSS&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:DSS_UDA_anlegen.png&amp;diff=13267</id>
		<title>Datei:DSS UDA anlegen.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:DSS_UDA_anlegen.png&amp;diff=13267"/>
		<updated>2015-12-18T12:11:04Z</updated>

		<summary type="html">&lt;p&gt;AndyK: Screenshot dSS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot dSS&lt;/div&gt;</summary>
		<author><name>AndyK</name></author>
	</entry>
</feed>