<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/index.php?action=history&amp;feed=atom&amp;title=DevelopmentInterfaces</id>
	<title>DevelopmentInterfaces - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/index.php?action=history&amp;feed=atom&amp;title=DevelopmentInterfaces"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DevelopmentInterfaces&amp;action=history"/>
	<updated>2026-04-05T21:24:06Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in FHEMWiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DevelopmentInterfaces&amp;diff=16665&amp;oldid=prev</id>
		<title>Krikan: Kategorie:Development (Archive) zugeordnet</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DevelopmentInterfaces&amp;diff=16665&amp;oldid=prev"/>
		<updated>2016-10-19T12:00:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki/Kategorie:Development_(Archive)&quot; title=&quot;Kategorie:Development (Archive)&quot;&gt;Kategorie:Development (Archive)&lt;/a&gt; zugeordnet&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 19. Oktober 2016, 14:00 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l184&quot;&gt;Zeile 184:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 184:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* X10 TM13: switch_passive&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* X10 TM13: switch_passive&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Development]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Development &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(Archive)&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Krikan</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DevelopmentInterfaces&amp;diff=1884&amp;oldid=prev</id>
		<title>Markusbloch: /* Supported interfaces */</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DevelopmentInterfaces&amp;diff=1884&amp;oldid=prev"/>
		<updated>2013-05-13T19:22:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Supported interfaces&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 13. Mai 2013, 21:22 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l183&quot;&gt;Zeile 183:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 183:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* X10 LM15: switch_passive&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* X10 LM15: switch_passive&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* X10 TM13: switch_passive&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* X10 TM13: switch_passive&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategorie:Development]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Markusbloch</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DevelopmentInterfaces&amp;diff=949&amp;oldid=prev</id>
		<title>Generix: Die Seite wurde neu angelegt: „== Preface == &#039;&#039;&#039;This is not yet implemented since there has not yet been a proposal that is mostly accepted by the developers. Parts of the implementation can…“</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DevelopmentInterfaces&amp;diff=949&amp;oldid=prev"/>
		<updated>2013-05-10T20:29:01Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „== Preface == &amp;#039;&amp;#039;&amp;#039;This is not yet implemented since there has not yet been a proposal that is mostly accepted by the developers. Parts of the implementation can…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Preface ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;This is not yet implemented since there has not yet been a proposal that is mostly accepted by the developers. Parts of the implementation can be found around fhem, though.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Interfaces serve to purposes:&lt;br /&gt;
&lt;br /&gt;
* they document what standardized readings are available&lt;br /&gt;
* they enable additional functions that rely on the existence of standard readings for a given device that implements interfaces&lt;br /&gt;
&lt;br /&gt;
Are interfaces a must or is it asked to much for the fhem project to rely on the existence of interfaces on all devices?&lt;br /&gt;
&lt;br /&gt;
As a compromise interfaces could be an option but a device that implements interfaces might benefit from addition features, such as:&lt;br /&gt;
&lt;br /&gt;
* devices implementing the &amp;quot;switch&amp;quot; interface might have the &amp;quot;toggle&amp;quot; feature in the pgm2 web interface&lt;br /&gt;
* devices implementing the &amp;quot;humidity&amp;quot; and &amp;quot;temperature&amp;quot; interface might get the &amp;quot;dewpoint&amp;quot; feature for free&lt;br /&gt;
* devices implementing the &amp;quot;battery&amp;quot; interface might get the &amp;quot;checkstate&amp;quot; feature&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
== Using Interfaces ==&lt;br /&gt;
An interface documents the readings (meanings and units) and the setters of a device. The objective of the interface concept is to ease the integration of new devices into fhem without the need to make changes to the frontends/GUIs. The frontends/GUIs know how to handle certain interfaces, i.e. how to display readings and how to present setters to the user.&lt;br /&gt;
&lt;br /&gt;
Example: S555TH, HMS100T, HMS100TF, FHT80b, KS300, WS2000, OWTEMP all provide a temperature reading. They announce that they support the temperature reading by adding the temperature interface to the interface internal. S555TH, HMS100TF, KS300, WS2000 also provide a humidity reading and thus add the humidity interface to the interface internal. A frontend that knows how to display temperature but not humidity would still support all of the listed devices and any new device that implements the temperature interface without the need for modification.&lt;br /&gt;
&lt;br /&gt;
Any device that supports interfaces has an internal named Interfaces.&lt;br /&gt;
&lt;br /&gt;
Perl code: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$hash-&amp;amp;gt;{fhem}{interfaces}= &amp;quot;temperature&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
xmllist: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;amp;lt;INT key=&amp;quot;interfaces&amp;quot; value=&amp;quot;temperature&amp;quot;/&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
list: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Internals: &lt;br /&gt;
    Interfaces temperature&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Multiple interfaces are separated by semicolons, e.g. &amp;quot;temperature;humidity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Interfaces support inheritance. A derived interface supports all readings and setters of its ancestors. &lt;br /&gt;
&lt;br /&gt;
Nevertheless, all parent interface of any given interface must be included in the list of interfaces such that a frontend that does not know about a more specialized interface can still profit from the more general interface: &amp;quot;interface:switch:switch_passive:dimmer&amp;quot;. Please note that this is a mere convention and no checks are done. If a dimmer omits the switch interface, a dumb frontend that knows about switches but not about dimmers would not be able to handle the device well.&lt;br /&gt;
&lt;br /&gt;
The list of interfaces for a given device does not need to be exhaustive. Readings that are not covered by the interfaces announced by the device can still be shown by simply enumerating the readings.&lt;br /&gt;
&lt;br /&gt;
== Interface definitions ==&lt;br /&gt;
Derived interfaces list only additions to the readings and setters of the parent interface.&lt;br /&gt;
&lt;br /&gt;
=== interface ===&lt;br /&gt;
The common ancestor of all interfaces.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;none (later we add here all common internals, i.e. those of the framework like ioDev, def, name, nr, etc.)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Setters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;none&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== switch ===&lt;br /&gt;
Inherits from interface.&lt;br /&gt;
&lt;br /&gt;
Any device that can be either on or off.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;onoff: integer, 0..1, the current state of the switch (off or on)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== switch_active ===&lt;br /&gt;
Inherits from switch.&lt;br /&gt;
&lt;br /&gt;
Any device that autonomously switches itself on or off.&lt;br /&gt;
&lt;br /&gt;
=== switch_passive ===&lt;br /&gt;
Inherits from switch.&lt;br /&gt;
&lt;br /&gt;
Any device that can be switched on or off by the user.&lt;br /&gt;
&lt;br /&gt;
Setters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;on: Turns device on.&lt;br /&gt;
  off: Turns device off.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== dimmer ===&lt;br /&gt;
Inherits from switch_passive.&lt;br /&gt;
&lt;br /&gt;
Any device that change the brightness level, e.g. a lamp dimmer.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;level: float, 0.0..100.0, indicates the brightness level in percent.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Setters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;dimto x: changes the brightness level to be x%, x float, 0.0..100.0&lt;br /&gt;
  dimup x: increases the brightness level by x%, x float, 0.0..100.0&lt;br /&gt;
  dimdown x: decreases the brightness level by x%, x float, 0.0..100.0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
(1) switch being an ancestor of dimmer, it is assumed that a dimmer always can be switched on and off.&lt;br /&gt;
(2) The user cannot assume that off and on are equivalent to brightness levels of 0% or 100% respectively. For example, for FS20 dimmers, brightness level and on/off state are independent settings.&lt;br /&gt;
&lt;br /&gt;
=== temperature ===&lt;br /&gt;
Inherits from interface.&lt;br /&gt;
&lt;br /&gt;
Any device that measures temperatures.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;temperature: float, indicates the temperature in centigrades (degrees Celsius)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== humidity ===&lt;br /&gt;
Inherits from interface.&lt;br /&gt;
&lt;br /&gt;
Any device that measures humidity.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;humidity: float, 0.0..100.0, indicates the humidity in percent.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== thermostat ===&lt;br /&gt;
Inherits from temperature.&lt;br /&gt;
&lt;br /&gt;
Any device that controls temperatures.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;desiredTemperature: float, indicates the desired temperature in centigrades (degrees Celsius)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Setters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;desiredTemperature t: set the desired temperature to t, t float, in centigrades (degrees Celsius)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== heaterControl ===&lt;br /&gt;
Inherits from thermostat.&lt;br /&gt;
&lt;br /&gt;
Any device that controls a heater. This interface is pretty well tailored to the FHT80b devices.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;actuator: float, 0.0..100.0, indicates the opening of the heater&amp;#039;s valve in percent&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== brightness ===&lt;br /&gt;
Inherits from interface.&lt;br /&gt;
&lt;br /&gt;
Any device that can measure brightness.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;brightness: float, &amp;amp;gt;= 0.0, indicates the brightness in lux&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== volume ===&lt;br /&gt;
Inherits from interface.&lt;br /&gt;
&lt;br /&gt;
Any device that measures volumes, e.g. the volume of water or oil in a tank.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;volume: float, indicates the measured volume in liters&lt;br /&gt;
   level, float, indicates the measured volume in percent of the maximum volume the vessel can contain&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== power ===&lt;br /&gt;
Inherits from interface.&lt;br /&gt;
&lt;br /&gt;
Any device that measures electric power.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;currentPower: float, indicates the current power (or average over last time interval) in kW&lt;br /&gt;
   maxPower: float, indicates the maximum power measured since startup in kW&lt;br /&gt;
   totalEnergy: float, indicates the total energy consumed since startup in kWh&lt;br /&gt;
   totalEnergyDay: float, indicates the total energy consumed since midnight in kWh&lt;br /&gt;
   totalEnergyWeek: float, indicates the total energy consumed since the beginning of the week in kWh&lt;br /&gt;
   totalEnergyMonth: float, indicates the total energy consumed since the beginning of the month in kWh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== battery ===&lt;br /&gt;
Inherits from interface.&lt;br /&gt;
&lt;br /&gt;
Any device that sends the battery state.&lt;br /&gt;
&lt;br /&gt;
Readings:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;battery: ok, low&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Supported interfaces ==&lt;br /&gt;
* FHT80b: temperature&lt;br /&gt;
* HMS100T: temperature&lt;br /&gt;
* HMS100TF: temperature;humidity&lt;br /&gt;
* KS300: temperature;humidity&lt;br /&gt;
* S555TH: temperature;humidity&lt;br /&gt;
* X10 AM12: switch_passive&lt;br /&gt;
* X10 LM12: dimmer&lt;br /&gt;
* X10 LM15: switch_passive&lt;br /&gt;
* X10 TM13: switch_passive&lt;/div&gt;</summary>
		<author><name>Generix</name></author>
	</entry>
</feed>