<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Heimautomation on Ulis Notizen</title>
    <link>https://wolf-u.li/tag/heimautomation/</link>
    <description>Recent content in Heimautomation on Ulis Notizen</description>
    <generator>Hugo</generator>
    <language>de</language>
    <copyright>Copyright 2006-CURRENTYEAR Uli Wolf - All rights reserved</copyright>
    <lastBuildDate>Sat, 06 Jan 2024 20:58:30 +0600</lastBuildDate>
    <atom:link href="https://wolf-u.li/tag/heimautomation/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Homeassistant: Übersetzung des Fronius Wechselrichter Status Code</title>
      
      
      <link>https://wolf-u.li/homeassistant-uebersetzung-des-fronius-wechselrichter-status-code/</link>
      <pubDate>Sat, 25 Nov 2023 20:58:30 +2500</pubDate>
      <guid>https://wolf-u.li/homeassistant-uebersetzung-des-fronius-wechselrichter-status-code/</guid>
      <description>&lt;p&gt;Vor einiger Zeit habe ich für meinen Fronius Solar Wechselrichter ein Template in Home-Assistant für eine Übersetzung des Status Codes gebaut.
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
Damit bekommt man nicht nur kryptische Zahlen ausgeworfen, sondern kann sogar was damit anfangen ;-) Im Untenstehenden Template musst du nur deinen sensor für den Status Code statt meinem &lt;code&gt;sensor.status_code_fronius_inverter&lt;/code&gt; eintragen.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;  1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 96
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 97
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 98
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 99
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;100
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;101
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;102
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;103
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;104
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;105
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;106
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;107
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;108
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;109
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;110
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;111
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;112
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;113
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;114
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;115
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;116
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;template&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;sensor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Fronius Status Message&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% if is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;102&amp;#39; ) %}AC-Spannung zu hoch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;103&amp;#39; ) %}AC-Spannung zu gering
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;105&amp;#39; ) %}AC-Frequenz zu hoch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;106&amp;#39; ) %}AC-Frequenz zu gering
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;107&amp;#39; ) %}AC-Netz nicht vorhanden
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;108&amp;#39; ) %}Inselbetrieb erkannt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;112&amp;#39; ) %}Fehler RCMU
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;301&amp;#39; ) %}Überstrom (AC) 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;302&amp;#39; ) %}Überstrom (DC)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;303&amp;#39; ) %}Übertemperatur DC Modul
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;304&amp;#39; ) %}Übertemperatur AC Modul
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;305&amp;#39; ) %}Keine Einspeisung trotz geschlossener Relais
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;306&amp;#39; ) %}Es steht zu wenig PV-Leistung für den Einspeisebetrieb zur Verfügung
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;307&amp;#39; ) %}DC-Eingangsspannung zu gering für den Einspeisebetrieb
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;308&amp;#39; ) %}Zwischenkreisspannung zu hoch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;309&amp;#39; ) %}DC-Eingangsspannung MPPT 1 zu hoch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;311&amp;#39; ) %}DC-Stränge verpolt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;313&amp;#39; ) %}DC-Eingangsspannung MPPT2 zu hoch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;314&amp;#39; ) %}Timeout Stromsensor-Kalibrierung
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;315&amp;#39; ) %}AC Stromsensor Fehler
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;316&amp;#39; ) %}InterruptCheck fail
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;325&amp;#39; ) %}Übertemperatur im Anschlussbereich
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;326&amp;#39; ) %}Lüfter 1 Fehler
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;327&amp;#39; ) %}Lüfter 2 Fehler
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;401&amp;#39; ) %}Kommunikation mit dem Leistungsteil nicht möglich
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;406&amp;#39; ) %}Temperatursensor AC Modul defekt (L1)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;407&amp;#39; ) %}Temperatursensor AC Modul defekt (L2)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;408&amp;#39; ) %}Zu hoher Gleichanteil im Versorgungsnetz gemessen
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;412&amp;#39; ) %}Der Fix-Spannungsbetrieb ist statt des MPP-Spannungsbetriebes angewählt und die Fixspannung ist auf einen zu geringen oder zu hohen Wert eingestellt.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;415&amp;#39; ) %}Sicherheitsabschaltung durch Optionskarte oder RECERBO hat ausgelöst
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;416&amp;#39; ) %}Kommunikation zwischen Leistungsteil und Steuerung nicht möglich.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;417&amp;#39; ) %}ID-Problem der Hardware
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;419&amp;#39; ) %}Uniqe-ID Konflikt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;420&amp;#39; ) %}Kommunikation mit dem Hybridmanager nicht möglich
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;421&amp;#39; ) %}Fehler HID-Range
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;425&amp;#39; ) %}Kommunikation mit dem Leistungsteil ist nicht möglich
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;426&amp;#39; ) %}Möglicher Hardware-Defekt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;427&amp;#39; ) %}Möglicher Hardware-Defekt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;428&amp;#39; ) %}Möglicher Hardware-Defekt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;431&amp;#39; ) %}Software-Problem
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;436&amp;#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;437&amp;#39; ) %}Leistungsteil-Problem
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;438&amp;#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;443&amp;#39; ) %}Zwischenkreis-Spannung zu gering oder unsymetrisch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;445&amp;#39; ) %}Kompatibilitätsfehler (z.B. auf Grund eines Print-Austausches) oder ungültige Leistungsteil-Konfiguration
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;447&amp;#39; ) %}Isolationsfehler
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;448&amp;#39; ) %}Neutralleiter nicht angeschlossen
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;450&amp;#39; ) %}Guard kann nicht gefunden werden
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;451&amp;#39; ) %}Speicherfehler entdeckt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;452&amp;#39; ) %}Kommunikationsfehler zwischen den Prozessoren
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;453&amp;#39; ) %}Netzspannung und Leistungsteil stimmen nicht überein
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;454&amp;#39; ) %}Netzfrequenz und Leistungsteil stimmen nicht überein
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;456&amp;#39; ) %}Anti-Islanding-Funktion wird nicht mehr korrekt ausgeführt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;457&amp;#39; ) %}Netzspannungsrelais-Fehler
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;458&amp;#39; ) %}Fehler bei der Mess-Signalerfassung
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;459&amp;#39; ) %}Fehler bei der Erfassung des Mess-Signals für den Isolationstest
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;460&amp;#39; ) %}Referenz-Spannungsquelle für den digitalen Signalprozessor (DSP) arbeitet außerhalb der tolerierten Grenzen
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;461&amp;#39; ) %}Fehler im DSP-Datenspeicher
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;462&amp;#39; ) %}Fehler bei der DC-Einspeisungs-Überwachungsroutine
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;463&amp;#39; ) %}Polarität AC vertauscht, AC-Verbindungsstecker falsch eingesteckt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;474&amp;#39; ) %}RCMU-Sensor defekt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;475&amp;#39; ) %}Isolationsfehler (Verbindung zwischen Solarmodul und Erdung)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;476&amp;#39; ) %}Versorgungsspannung der Treiberversorgung zu gering
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;479&amp;#39; ) %}Zwischenkreis-Spannungsrelais hat ausgeschaltet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;480&amp;#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;481&amp;#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;482&amp;#39; ) %}Setup nach der erstmaligen Inbetriebnahme wurde abgebrochen
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;483&amp;#39; ) %}Spannung U (DCfix) beim MPP2-String liegt außerhalb des gültigen Bereichs
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;485&amp;#39; ) %}CAN Sende-Buffer ist voll
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;489&amp;#39; ) %}Permanente Überspannung am Zwischenkreis-Kondensator (5x hintereinander Statusmeldung 479)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;502&amp;#39; ) %}Isolationsfehler an den Solarmodulen
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;509&amp;#39; ) %}Keine Einspeisung innerhalb der letzten 24 Stunden
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;515&amp;#39; ) %}Kommunikation mit Filter nicht möglich
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;516&amp;#39; ) %}Kommunikation mit der Speichereinheit nicht möglich
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;517&amp;#39; ) %}Leistungs-Derating auf Grund zu hoher Temperatur
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;518&amp;#39; ) %}Interne DSP-Fehlfunktion
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;519&amp;#39; ) %}Kommunikation mit der Speichereinheit nicht möglich
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;520&amp;#39; ) %}Keine Einspeisung innerhalb der letzten 24 Stunden von MPPT1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;522&amp;#39; ) %}DC low String 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;523&amp;#39; ) %}DC low String 2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;558&amp;#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;559&amp;#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;560&amp;#39; ) %}Leistungs-Derating wegen Überfrequenz
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;564&amp;#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;566&amp;#39; ) %}Arc Detector ausgeschaltet (z.B. bei externer LichtbogenÜberwachung)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;568&amp;#39; ) %}fehlerhaftes Eingangssignal an der Multifunktions-Stromschnittstelle
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;572&amp;#39; ) %}Leistungslimitierung durch das Leistungsteil
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;573&amp;#39; ) %}Untertemperatur Warnung
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;581&amp;#39; ) %}Setup Special Purpose Utility-Interactive (SPUI) ist aktiviert
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;601&amp;#39; ) %}CAN Bus ist voll
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;603&amp;#39; ) %}Temperatursensor AC Modul defekt (L3)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;604&amp;#39; ) %}Temperatursensor DC Modul defekt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;607&amp;#39; ) %}RCMU Fehler
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;608&amp;#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;705&amp;#39; ) %}Konflikt beim Einstellen der Wechselrichter-Nummer (z.B. Nummer doppelt vergeben)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;721&amp;#39; ) %}EEPROM wurde neu initialisiert 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;731&amp;#39; ) %}Initialisierungsfehler - USB-Stick wird nicht unterstützt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;732&amp;#39; ) %}Initialisierungsfehler - Überstrom am USB-Stick
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;733&amp;#39; ) %}Kein USB-Stick angesteckt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;734&amp;#39; ) %}Update-Datei wird nicht erkannt oder ist nicht vorhanden
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;735&amp;#39; ) %}nicht zum Gerät passende Update-Datei, zu alte Update-Datei
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif is_state(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;, &amp;#39;736&amp;#39; ) %}Schreib- oder Lesefehler aufgetreten
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% elif states.sensor.status_code_fronius_inverter and states(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;) | int &amp;lt; 100 %}OK
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% else %}Unbekannter Status
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% endif %}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;icon&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% if states.sensor.status_code_fronius_inverter and states(&amp;#39;sensor.status_code_fronius_inverter&amp;#39;) | int &amp;lt; 100 %}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;            mdi:weather-sunset-up
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% else %}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;            mdi:alert-octagram
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;          {% endif %}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      
         <content:encoded><![CDATA[<p>Vor einiger Zeit habe ich für meinen Fronius Solar Wechselrichter ein Template in Home-Assistant für eine Übersetzung des Status Codes gebaut.
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
Damit bekommt man nicht nur kryptische Zahlen ausgeworfen, sondern kann sogar was damit anfangen ;-) Im Untenstehenden Template musst du nur deinen sensor für den Status Code statt meinem <code>sensor.status_code_fronius_inverter</code> eintragen.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">  1
</span><span class="lnt">  2
</span><span class="lnt">  3
</span><span class="lnt">  4
</span><span class="lnt">  5
</span><span class="lnt">  6
</span><span class="lnt">  7
</span><span class="lnt">  8
</span><span class="lnt">  9
</span><span class="lnt"> 10
</span><span class="lnt"> 11
</span><span class="lnt"> 12
</span><span class="lnt"> 13
</span><span class="lnt"> 14
</span><span class="lnt"> 15
</span><span class="lnt"> 16
</span><span class="lnt"> 17
</span><span class="lnt"> 18
</span><span class="lnt"> 19
</span><span class="lnt"> 20
</span><span class="lnt"> 21
</span><span class="lnt"> 22
</span><span class="lnt"> 23
</span><span class="lnt"> 24
</span><span class="lnt"> 25
</span><span class="lnt"> 26
</span><span class="lnt"> 27
</span><span class="lnt"> 28
</span><span class="lnt"> 29
</span><span class="lnt"> 30
</span><span class="lnt"> 31
</span><span class="lnt"> 32
</span><span class="lnt"> 33
</span><span class="lnt"> 34
</span><span class="lnt"> 35
</span><span class="lnt"> 36
</span><span class="lnt"> 37
</span><span class="lnt"> 38
</span><span class="lnt"> 39
</span><span class="lnt"> 40
</span><span class="lnt"> 41
</span><span class="lnt"> 42
</span><span class="lnt"> 43
</span><span class="lnt"> 44
</span><span class="lnt"> 45
</span><span class="lnt"> 46
</span><span class="lnt"> 47
</span><span class="lnt"> 48
</span><span class="lnt"> 49
</span><span class="lnt"> 50
</span><span class="lnt"> 51
</span><span class="lnt"> 52
</span><span class="lnt"> 53
</span><span class="lnt"> 54
</span><span class="lnt"> 55
</span><span class="lnt"> 56
</span><span class="lnt"> 57
</span><span class="lnt"> 58
</span><span class="lnt"> 59
</span><span class="lnt"> 60
</span><span class="lnt"> 61
</span><span class="lnt"> 62
</span><span class="lnt"> 63
</span><span class="lnt"> 64
</span><span class="lnt"> 65
</span><span class="lnt"> 66
</span><span class="lnt"> 67
</span><span class="lnt"> 68
</span><span class="lnt"> 69
</span><span class="lnt"> 70
</span><span class="lnt"> 71
</span><span class="lnt"> 72
</span><span class="lnt"> 73
</span><span class="lnt"> 74
</span><span class="lnt"> 75
</span><span class="lnt"> 76
</span><span class="lnt"> 77
</span><span class="lnt"> 78
</span><span class="lnt"> 79
</span><span class="lnt"> 80
</span><span class="lnt"> 81
</span><span class="lnt"> 82
</span><span class="lnt"> 83
</span><span class="lnt"> 84
</span><span class="lnt"> 85
</span><span class="lnt"> 86
</span><span class="lnt"> 87
</span><span class="lnt"> 88
</span><span class="lnt"> 89
</span><span class="lnt"> 90
</span><span class="lnt"> 91
</span><span class="lnt"> 92
</span><span class="lnt"> 93
</span><span class="lnt"> 94
</span><span class="lnt"> 95
</span><span class="lnt"> 96
</span><span class="lnt"> 97
</span><span class="lnt"> 98
</span><span class="lnt"> 99
</span><span class="lnt">100
</span><span class="lnt">101
</span><span class="lnt">102
</span><span class="lnt">103
</span><span class="lnt">104
</span><span class="lnt">105
</span><span class="lnt">106
</span><span class="lnt">107
</span><span class="lnt">108
</span><span class="lnt">109
</span><span class="lnt">110
</span><span class="lnt">111
</span><span class="lnt">112
</span><span class="lnt">113
</span><span class="lnt">114
</span><span class="lnt">115
</span><span class="lnt">116
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">template</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">sensor</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Fronius Status Message&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="p">&gt;</span><span class="sd">
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% if is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;102&#39; ) %}AC-Spannung zu hoch
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;103&#39; ) %}AC-Spannung zu gering
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;105&#39; ) %}AC-Frequenz zu hoch
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;106&#39; ) %}AC-Frequenz zu gering
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;107&#39; ) %}AC-Netz nicht vorhanden
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;108&#39; ) %}Inselbetrieb erkannt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;112&#39; ) %}Fehler RCMU
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;301&#39; ) %}Überstrom (AC) 
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;302&#39; ) %}Überstrom (DC)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;303&#39; ) %}Übertemperatur DC Modul
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;304&#39; ) %}Übertemperatur AC Modul
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;305&#39; ) %}Keine Einspeisung trotz geschlossener Relais
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;306&#39; ) %}Es steht zu wenig PV-Leistung für den Einspeisebetrieb zur Verfügung
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;307&#39; ) %}DC-Eingangsspannung zu gering für den Einspeisebetrieb
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;308&#39; ) %}Zwischenkreisspannung zu hoch
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;309&#39; ) %}DC-Eingangsspannung MPPT 1 zu hoch
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;311&#39; ) %}DC-Stränge verpolt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;313&#39; ) %}DC-Eingangsspannung MPPT2 zu hoch
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;314&#39; ) %}Timeout Stromsensor-Kalibrierung
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;315&#39; ) %}AC Stromsensor Fehler
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;316&#39; ) %}InterruptCheck fail
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;325&#39; ) %}Übertemperatur im Anschlussbereich
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;326&#39; ) %}Lüfter 1 Fehler
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;327&#39; ) %}Lüfter 2 Fehler
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;401&#39; ) %}Kommunikation mit dem Leistungsteil nicht möglich
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;406&#39; ) %}Temperatursensor AC Modul defekt (L1)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;407&#39; ) %}Temperatursensor AC Modul defekt (L2)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;408&#39; ) %}Zu hoher Gleichanteil im Versorgungsnetz gemessen
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;412&#39; ) %}Der Fix-Spannungsbetrieb ist statt des MPP-Spannungsbetriebes angewählt und die Fixspannung ist auf einen zu geringen oder zu hohen Wert eingestellt.
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;415&#39; ) %}Sicherheitsabschaltung durch Optionskarte oder RECERBO hat ausgelöst
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;416&#39; ) %}Kommunikation zwischen Leistungsteil und Steuerung nicht möglich.
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;417&#39; ) %}ID-Problem der Hardware
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;419&#39; ) %}Uniqe-ID Konflikt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;420&#39; ) %}Kommunikation mit dem Hybridmanager nicht möglich
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;421&#39; ) %}Fehler HID-Range
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;425&#39; ) %}Kommunikation mit dem Leistungsteil ist nicht möglich
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;426&#39; ) %}Möglicher Hardware-Defekt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;427&#39; ) %}Möglicher Hardware-Defekt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;428&#39; ) %}Möglicher Hardware-Defekt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;431&#39; ) %}Software-Problem
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;436&#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;437&#39; ) %}Leistungsteil-Problem
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;438&#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;443&#39; ) %}Zwischenkreis-Spannung zu gering oder unsymetrisch
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;445&#39; ) %}Kompatibilitätsfehler (z.B. auf Grund eines Print-Austausches) oder ungültige Leistungsteil-Konfiguration
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;447&#39; ) %}Isolationsfehler
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;448&#39; ) %}Neutralleiter nicht angeschlossen
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;450&#39; ) %}Guard kann nicht gefunden werden
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;451&#39; ) %}Speicherfehler entdeckt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;452&#39; ) %}Kommunikationsfehler zwischen den Prozessoren
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;453&#39; ) %}Netzspannung und Leistungsteil stimmen nicht überein
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;454&#39; ) %}Netzfrequenz und Leistungsteil stimmen nicht überein
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;456&#39; ) %}Anti-Islanding-Funktion wird nicht mehr korrekt ausgeführt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;457&#39; ) %}Netzspannungsrelais-Fehler
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;458&#39; ) %}Fehler bei der Mess-Signalerfassung
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;459&#39; ) %}Fehler bei der Erfassung des Mess-Signals für den Isolationstest
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;460&#39; ) %}Referenz-Spannungsquelle für den digitalen Signalprozessor (DSP) arbeitet außerhalb der tolerierten Grenzen
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;461&#39; ) %}Fehler im DSP-Datenspeicher
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;462&#39; ) %}Fehler bei der DC-Einspeisungs-Überwachungsroutine
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;463&#39; ) %}Polarität AC vertauscht, AC-Verbindungsstecker falsch eingesteckt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;474&#39; ) %}RCMU-Sensor defekt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;475&#39; ) %}Isolationsfehler (Verbindung zwischen Solarmodul und Erdung)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;476&#39; ) %}Versorgungsspannung der Treiberversorgung zu gering
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;479&#39; ) %}Zwischenkreis-Spannungsrelais hat ausgeschaltet
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;480&#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;481&#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;482&#39; ) %}Setup nach der erstmaligen Inbetriebnahme wurde abgebrochen
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;483&#39; ) %}Spannung U (DCfix) beim MPP2-String liegt außerhalb des gültigen Bereichs
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;485&#39; ) %}CAN Sende-Buffer ist voll
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;489&#39; ) %}Permanente Überspannung am Zwischenkreis-Kondensator (5x hintereinander Statusmeldung 479)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;502&#39; ) %}Isolationsfehler an den Solarmodulen
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;509&#39; ) %}Keine Einspeisung innerhalb der letzten 24 Stunden
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;515&#39; ) %}Kommunikation mit Filter nicht möglich
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;516&#39; ) %}Kommunikation mit der Speichereinheit nicht möglich
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;517&#39; ) %}Leistungs-Derating auf Grund zu hoher Temperatur
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;518&#39; ) %}Interne DSP-Fehlfunktion
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;519&#39; ) %}Kommunikation mit der Speichereinheit nicht möglich
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;520&#39; ) %}Keine Einspeisung innerhalb der letzten 24 Stunden von MPPT1
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;522&#39; ) %}DC low String 1
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;523&#39; ) %}DC low String 2
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;558&#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;559&#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;560&#39; ) %}Leistungs-Derating wegen Überfrequenz
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;564&#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;566&#39; ) %}Arc Detector ausgeschaltet (z.B. bei externer LichtbogenÜberwachung)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;568&#39; ) %}fehlerhaftes Eingangssignal an der Multifunktions-Stromschnittstelle
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;572&#39; ) %}Leistungslimitierung durch das Leistungsteil
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;573&#39; ) %}Untertemperatur Warnung
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;581&#39; ) %}Setup Special Purpose Utility-Interactive (SPUI) ist aktiviert
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;601&#39; ) %}CAN Bus ist voll
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;603&#39; ) %}Temperatursensor AC Modul defekt (L3)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;604&#39; ) %}Temperatursensor DC Modul defekt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;607&#39; ) %}RCMU Fehler
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;608&#39; ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;705&#39; ) %}Konflikt beim Einstellen der Wechselrichter-Nummer (z.B. Nummer doppelt vergeben)
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;721&#39; ) %}EEPROM wurde neu initialisiert 
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;731&#39; ) %}Initialisierungsfehler - USB-Stick wird nicht unterstützt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;732&#39; ) %}Initialisierungsfehler - Überstrom am USB-Stick
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;733&#39; ) %}Kein USB-Stick angesteckt
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;734&#39; ) %}Update-Datei wird nicht erkannt oder ist nicht vorhanden
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;735&#39; ) %}nicht zum Gerät passende Update-Datei, zu alte Update-Datei
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif is_state(&#39;sensor.status_code_fronius_inverter&#39;, &#39;736&#39; ) %}Schreib- oder Lesefehler aufgetreten
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% elif states.sensor.status_code_fronius_inverter and states(&#39;sensor.status_code_fronius_inverter&#39;) | int &lt; 100 %}OK
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% else %}Unbekannter Status
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% endif %}</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="p">&gt;</span><span class="sd">
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% if states.sensor.status_code_fronius_inverter and states(&#39;sensor.status_code_fronius_inverter&#39;) | int &lt; 100 %}
</span></span></span><span class="line"><span class="cl"><span class="sd">            mdi:weather-sunset-up
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% else %}
</span></span></span><span class="line"><span class="cl"><span class="sd">            mdi:alert-octagram
</span></span></span><span class="line"><span class="cl"><span class="sd">          {% endif %}</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Homeassistant - binary_sensor Zustand an KNX übertragen</title>
      
      
      <link>https://wolf-u.li/homeassistant-binary-sensor-zustand-an-knx-uebertragen/</link>
      <pubDate>Mon, 25 Jul 2022 11:08:55 +2500</pubDate>
      <guid>https://wolf-u.li/homeassistant-binary-sensor-zustand-an-knx-uebertragen/</guid>
      <description>&lt;p&gt;In meiner Heimautomation auf Basis von Homeassistant empfange ich verschiedene binäre Sensoren, welche ich auf dem KNX Bus nutzen möchte. So ist es beispielsweise notwendig, den Zustand der &lt;a href=&#34;https://wolf-u.li/fensterkontakt-fuer-velux-dachfenster/&#34;
    title=&#34;Fensterkontakte der Velux Fenster&#34; 
   &gt;
  Fensterkontakte der Velux Fenster&lt;/a&gt; (also ein binary_sensor Zustand) an die KNX Gruppenaddresse für &amp;ldquo;Fenster offen&amp;rdquo; zu senden, um den Rolladen in dem Falle zu blockieren. Ich habe mir dazu einen Homeassistant Automation Blueprint gestrickt:&lt;/p&gt;





&lt;a href=&#34;https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgist.github.com%2FSirUli%2F711757810d36a252a0d70198c5e4a510&#34;&gt;&lt;img src=&#34;https://wolf-u.li/icons/homeassistant-import-blueprint.svg&#34; alt=&#34;Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.&#34; data-base62-sha1=&#34;l9bNjxoyi8xo0apKhOqHW3afKyS&#34; width=&#34;212&#34; height=&#34;28&#34;&gt;&lt;/a&gt;

&lt;script src=&#34;https://gist.github.com/SirUli/711757810d36a252a0d70198c5e4a510.js&#34;&gt;&lt;/script&gt;</description>
      
         <content:encoded><![CDATA[<p>In meiner Heimautomation auf Basis von Homeassistant empfange ich verschiedene binäre Sensoren, welche ich auf dem KNX Bus nutzen möchte. So ist es beispielsweise notwendig, den Zustand der <a href="/fensterkontakt-fuer-velux-dachfenster/"
    title="Fensterkontakte der Velux Fenster" 
   >
  Fensterkontakte der Velux Fenster</a> (also ein binary_sensor Zustand) an die KNX Gruppenaddresse für &ldquo;Fenster offen&rdquo; zu senden, um den Rolladen in dem Falle zu blockieren. Ich habe mir dazu einen Homeassistant Automation Blueprint gestrickt:</p>





<a href="https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgist.github.com%2FSirUli%2F711757810d36a252a0d70198c5e4a510"><img src="/icons/homeassistant-import-blueprint.svg" alt="Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled." data-base62-sha1="l9bNjxoyi8xo0apKhOqHW3afKyS" width="212" height="28"></a>

<script src="https://gist.github.com/SirUli/711757810d36a252a0d70198c5e4a510.js"></script>

]]></content:encoded>
    </item>
    <item>
      <title>Homeassistant Lovelace Card für Volvo OnCall Integration</title>
      
      
      <link>https://wolf-u.li/homeassistant-lovelace-card-fuer-volvo-oncall-integration/</link>
      <pubDate>Wed, 29 Sep 2021 20:12:28 +2900</pubDate>
      <guid>https://wolf-u.li/homeassistant-lovelace-card-fuer-volvo-oncall-integration/</guid>
      <description>&lt;p&gt;Für einen Volvo habe ich eine Lovelace-Card &lt;link rel=dns-prefetch href=//community.home-assistant.io /&gt; &lt;a href=&#34;https://community.home-assistant.io/t/lovelace-volvo-on-call-card/145578/4&#34;
    title=&#34;hier&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  hier&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; gefunden, welche ich hier beschreiben möchte.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Für einen Volvo habe ich eine Lovelace-Card <link rel=dns-prefetch href=//community.home-assistant.io /> <a href="https://community.home-assistant.io/t/lovelace-volvo-on-call-card/145578/4"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> gefunden, welche ich hier beschreiben möchte.</p>
<p>Los gehts natürlich mit der <link rel=dns-prefetch href=//www.home-assistant.io /> <a href="https://www.home-assistant.io/integrations/volvooncall/"
    title="Volvo OnCall Integration" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Volvo OnCall Integration&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>. Das sieht etwa so aus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">volvooncall</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">username</span><span class="p">:</span><span class="w"> </span>!<span class="l">secret volvo_oncall_username</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">password</span><span class="p">:</span><span class="w"> </span>!<span class="l">secret volvo_oncall_password</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Tipp: Wenn du den Account auf deinem Smartphone noch in der App nutzen willst, solltest du einen weiteren Nutzer anlegen, welcher nur von Homeassistant genutzt wird. Ansonsten musst du dich häufiger anmelden, was etwas nervig ist.</p>
<p>Dann lade ein Bild deines Autos herunter (am besten mit transparentem Hintergrund so wie <a href="/upload/2021/09/volvo.webp"
    title="dieses" 
   >
  dieses</a>). Dann kopiere dieses in den ordner config/www/cards/ als volvo.webp.</p>
<p>Dann konfiguriere den <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/gregoryduckworth/GoogleGeocode-HASS"
    title="GoogleGeocode via HACS" 
     target="_blank" rel="nofollow noopener noreferrer" >
  GoogleGeocode via HACS&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl">- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">google_geocode</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Volvo Geocode</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">origin</span><span class="p">:</span><span class="w"> </span><span class="l">device_tracker.volvo</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">language</span><span class="p">:</span><span class="w"> </span><span class="l">de-DE</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">region</span><span class="p">:</span><span class="w"> </span><span class="l">DE</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">api_key</span><span class="p">:</span><span class="w"> </span>!<span class="l">secret google_maps_api_key</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Nun gehts endlich an die Karte - hier das yaml dazu:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span><span class="lnt">59
</span><span class="lnt">60
</span><span class="lnt">61
</span><span class="lnt">62
</span><span class="lnt">63
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">picture-elements</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">/local/cards/volvo.webp</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">elements</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">state-label</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity</span><span class="p">:</span><span class="w"> </span><span class="l">sensor.volvo_range</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">prefix: &#39;Reichweite</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;
</span></span></span><span class="line"><span class="cl"><span class="s1">    style:
</span></span></span><span class="line"><span class="cl"><span class="s1">    top: 5%
</span></span></span><span class="line"><span class="cl"><span class="s1">    right: 110px
</span></span></span><span class="line"><span class="cl"><span class="s1">    transform: none
</span></span></span><span class="line"><span class="cl"><span class="s1">  - type: state-label
</span></span></span><span class="line"><span class="cl"><span class="s1">    entity: sensor.volvo_fuel_level
</span></span></span><span class="line"><span class="cl"><span class="s1">    prefix: (
</span></span></span><span class="line"><span class="cl"><span class="s1">    suffix: &#39;</span><span class="w"> </span><span class="l">im Tank)&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">style</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">top</span><span class="p">:</span><span class="w"> </span><span class="m">5</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">right</span><span class="p">:</span><span class="w"> </span><span class="l">5px</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">transform</span><span class="p">:</span><span class="w"> </span><span class="l">none</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">state-label</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity</span><span class="p">:</span><span class="w"> </span><span class="l">sensor.volvo_trip_meter_2</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">prefix: &#39;Last Trip</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;
</span></span></span><span class="line"><span class="cl"><span class="s1">    style:
</span></span></span><span class="line"><span class="cl"><span class="s1">    top: 25%
</span></span></span><span class="line"><span class="cl"><span class="s1">    right: 5px
</span></span></span><span class="line"><span class="cl"><span class="s1">    transform: none
</span></span></span><span class="line"><span class="cl"><span class="s1">  - type: state-label
</span></span></span><span class="line"><span class="cl"><span class="s1">    entity: sensor.volvo_odometer
</span></span></span><span class="line"><span class="cl"><span class="s1">    prefix: &#39;</span><span class="nt">Gesamt</span><span class="p">:</span><span class="w"> </span><span class="l">&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">style</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">top</span><span class="p">:</span><span class="w"> </span><span class="m">15</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">right</span><span class="p">:</span><span class="w"> </span><span class="l">5px</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">transform</span><span class="p">:</span><span class="w"> </span><span class="l">none</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">state-label</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity</span><span class="p">:</span><span class="w"> </span><span class="l">sensor.volvo_geocode</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">style</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">top</span><span class="p">:</span><span class="w"> </span><span class="m">75</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">right</span><span class="p">:</span><span class="w"> </span><span class="l">5px</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">transform</span><span class="p">:</span><span class="w"> </span><span class="l">none</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">state-icon</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity</span><span class="p">:</span><span class="w"> </span><span class="l">lock.volvo_door_lock</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">style</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">top</span><span class="p">:</span><span class="w"> </span><span class="m">82</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">left</span><span class="p">:</span><span class="w"> </span><span class="m">8</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">state-icon</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity</span><span class="p">:</span><span class="w"> </span><span class="l">switch.volvo_heater</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">style</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">top</span><span class="p">:</span><span class="w"> </span><span class="m">82</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">left</span><span class="p">:</span><span class="w"> </span><span class="m">16</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">state-icon</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity</span><span class="p">:</span><span class="w"> </span><span class="l">binary_sensor.volvo_engine</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">style</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">top</span><span class="p">:</span><span class="w"> </span><span class="m">82</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">left</span><span class="p">:</span><span class="w"> </span><span class="m">24</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">state-icon</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity</span><span class="p">:</span><span class="w"> </span><span class="l">binary_sensor.volvo_doors</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">style</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">top</span><span class="p">:</span><span class="w"> </span><span class="m">82</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">left</span><span class="p">:</span><span class="w"> </span><span class="m">32</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">state-icon</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity</span><span class="p">:</span><span class="w"> </span><span class="l">binary_sensor.volvo_windows</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">style</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">top</span><span class="p">:</span><span class="w"> </span><span class="m">82</span><span class="l">%</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">left</span><span class="p">:</span><span class="w"> </span><span class="m">40</span><span class="l">%</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Flashen des WT32-ETH01 - Ein ESP32 mit LAN &#43; WiFi/WLAN</title>
      
      
      <link>https://wolf-u.li/flashen-des-wt32-eth01-ein-esp32-mit-lan-wifiwlan/</link>
      <pubDate>Wed, 28 Jul 2021 07:06:11 +2800</pubDate>
      <guid>https://wolf-u.li/flashen-des-wt32-eth01-ein-esp32-mit-lan-wifiwlan/</guid>
      <description>&lt;p&gt;Heute habe ich mich ans Flashen des ESP32 Moduls WT32-ETH01 gemacht. Das Modul ist etwas besonderes, da es einen LAN anschluss hat und der dazugehörige LAN8720 chip in einigen Frameworks auch schon &amp;ldquo;out of the box&amp;rdquo; verfügbar ist. Alternativen zu diesem Board ist das WESP32 oder die Boards von Olimex, OpenHacks (was aber wohl irgendwie gerne in den Flash Modus bootet, Vorsicht!) und LILYGO. Preislich ist aber das WT32-ETH01 unschlagbar (
&lt;a href=&#34;https://www.amazon.de/s?k=WT32-ETH01&amp;tag=lebendeswolfuli-21&#34; target=&#34;_blank&#34;&gt;Amazon*&lt;/a&gt;
/
&lt;a href=&#34;http://s.click.aliexpress.com/e/_DBv9ZB9&#34;&gt;Aliexpress*&lt;/a&gt;
) . Das WT32-ETH01 ergänzt den LAN Anschluss aber lediglich zu den vorhandenen Features des ESP32, sodass man weiterhin WLAN auf dem Board hat.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Heute habe ich mich ans Flashen des ESP32 Moduls WT32-ETH01 gemacht. Das Modul ist etwas besonderes, da es einen LAN anschluss hat und der dazugehörige LAN8720 chip in einigen Frameworks auch schon &ldquo;out of the box&rdquo; verfügbar ist. Alternativen zu diesem Board ist das WESP32 oder die Boards von Olimex, OpenHacks (was aber wohl irgendwie gerne in den Flash Modus bootet, Vorsicht!) und LILYGO. Preislich ist aber das WT32-ETH01 unschlagbar (
<a href="https://www.amazon.de/s?k=WT32-ETH01&tag=lebendeswolfuli-21" target="_blank">Amazon*</a>
/
<a href="http://s.click.aliexpress.com/e/_DBv9ZB9">Aliexpress*</a>
) . Das WT32-ETH01 ergänzt den LAN Anschluss aber lediglich zu den vorhandenen Features des ESP32, sodass man weiterhin WLAN auf dem Board hat.</p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<p>Zum flashen braucht man:</p>
<ul>
<li>WT32-ETH01 (
<a href="https://www.amazon.de/s?k=WT32-ETH01&tag=lebendeswolfuli-21" target="_blank">Amazon*</a>
/
<a href="http://s.click.aliexpress.com/e/_DBv9ZB9">Aliexpress*</a>
)</li>
<li>USB → TTL Flasher (z.B. mit CH340G Chip von 
<a href="https://www.amazon.de/dp/B08T24NML9?tag=lebendeswolfuli-21" target="_blank">Amazon*</a>
/
<a href="http://s.click.aliexpress.com/e/_AEVLpq">Aliexpress*</a>
)</li>
<li>Breadboard Kabel (z.B. 
<a href="https://www.amazon.de/dp/B07KYHBVR7?tag=lebendeswolfuli-21" target="_blank">Amazon*</a>
/
<a href="http://s.click.aliexpress.com/e/_DCzPubh">Aliexpress*</a>
)</li>
</ul>
<p>Nun wird das wie folgt ganze verbunden:</p>
<table>
  <thead>
      <tr>
          <th>USB-&gt;TTL</th>
          <th>&mdash;&gt;</th>
          <th>WT32-ETH01</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GND</td>
          <td>&mdash;&gt;</td>
          <td>GND</td>
      </tr>
      <tr>
          <td>TX</td>
          <td>&mdash;&gt;</td>
          <td>RX0 (nicht RXD!)</td>
      </tr>
      <tr>
          <td>RX</td>
          <td>&mdash;&gt;</td>
          <td>TX0 (nicht TXD!)</td>
      </tr>
      <tr>
          <td>5V</td>
          <td>&mdash;&gt;</td>
          <td>5V</td>
      </tr>
  </tbody>
</table>
<p>Wenn man sich das genau ansieht: Ja es ist korrekt dass <strong>TX</strong> mit <strong>RX0</strong> und <strong>RX</strong> mit <strong>TX0</strong> verbunden wird. Bitte nicht TXD oder RXD nutzen. Sofern der USB-&gt;TTL Adapter eine Wahl zwischen 5V und 3,3 Volt anbietet, so wäre 5V zu wählen. Zu guter letzt muss nun <strong>IO0</strong> (neben RX0) mit <strong>GND</strong> für das flashen verbunden werden.</p>
<p><img src="/upload/2021/07/6135-flashen-1.webp" alt="WT32-ETH01 Flashen" loading="lazy">
<img src="/upload/2021/07/6135-flashen-2.webp" alt="WT32-ETH01 Flashen" loading="lazy">
<img src="/upload/2021/07/6135-flashen-3.webp" alt="WT32-ETH01 Flashen" loading="lazy"></p>
<p>Jetzt kommts drauf an, was man flashen möchte. Ich habe dieses Board für die Verwendung mit ESPHome vorgesehen. ESPHome ist eine Open-Source-Plattform, die es ermöglicht, benutzerdefinierte Firmware für ESP8266/ESP32-basierte IoT-Geräte zu erstellen. Mit ESPHome kann man eigene Smart-Home-Geräte programmieren und konfigurieren, ohne tiefgehende Programmierkenntnisse zu benötigen. Die Plattform bietet eine YAML-basierte Konfigurationssprache, die es einfach macht, Sensoren, Aktoren und andere Funktionen zu integrieren. ESPHome unterstützt eine Vielzahl von Geräten, darunter Sensoren für Temperatur, Luftfeuchtigkeit, Bewegung, und vieles mehr. Es ermöglicht auch die Integration mit Plattformen wie Home Assistant. Für das flashen habe ich das Tool ESPHome-Flasher <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/esphome/esphome-flasher/releases"
    title="runtergeladen" 
     target="_blank" rel="nofollow noopener noreferrer" >
  runtergeladen&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> und den entsprechenden COM-Port ausgewählt:</p>
<p><img src="/upload/2021/07/6135-esphome-flasher.webp" alt="WT32-ETH01 Flashen" loading="lazy"></p>
<p>Das Binary habe ich aus der Homeassistant Oberfläche heruntergeladen (nach <link rel=dns-prefetch href=//esphome.io /> <a href="https://esphome.io/guides/getting_started_hassio.html"
    title="Konfiguration von ESPHome als Addon" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Konfiguration von ESPHome als Addon&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> und anschließender Konfiguration des Devices für den <link rel=dns-prefetch href=//esphome.io /> <a href="https://esphome.io/components/ethernet.html#configuration-for-wireless-tag-wt32-eth01#configuration-for-wireless-tag-wt32-eth01"
    title="LAN8720" 
     target="_blank" rel="nofollow noopener noreferrer" >
  LAN8720&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> chip) und im Tool dann entsprechend ausgewählt. Nach dem erfolgreichen Flashen macht es Sinn ALLE Kabel abzuziehen und nur 5V und GND wieder zu verbinden.</p>
<p>Wenn korrekt verbunden und konfiguriert ist das Modul nun im Netzwerk verfügbar. Für die weitere Konfiguration in ESPHome kann man dann die OTA (Over the Air) Funktionalität von Admin Interface aus (z.b. Homeassistant) nutzen, was das ganze etwas einfacher macht ;) So können updates der Konfiguration oder ESPHome direkt drahtlos übertragen und aktualisiert werden, ohne physischen Zugang zum Gerät zu benötigen. Man möchte ja nicht wirklich jedes mal die obigen Schritte durchgehen oder?</p>
]]></content:encoded>
    </item>
    <item>
      <title>Tintenstand der Druckerpatronen des HP 8620 in FHEM überwachen</title>
      
      
      <link>https://wolf-u.li/tintenstand-der-druckerpatronen-des-hp-8620-in-fhem-ueberwachen/</link>
      <pubDate>Thu, 03 Jan 2019 11:14:09 +0300</pubDate>
      <guid>https://wolf-u.li/tintenstand-der-druckerpatronen-des-hp-8620-in-fhem-ueberwachen/</guid>
      <description>&lt;p&gt;Bei stöbern im FHEM Forum ist mir gerade ein &lt;link rel=dns-prefetch href=//forum.fhem.de /&gt; &lt;a href=&#34;https://forum.fhem.de/index.php/topic,90601.0.html&#34;
    title=&#34;Beitrag&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Beitrag&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; aufgefallen, wo der Ersteller den HP 8620 Drucker hinsichtlich des Druckerpatronenfüllstands überwachen ließ. Das habe ich direkt ausprobiert - funktioniert ;)&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Bei stöbern im FHEM Forum ist mir gerade ein <link rel=dns-prefetch href=//forum.fhem.de /> <a href="https://forum.fhem.de/index.php/topic,90601.0.html"
    title="Beitrag" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Beitrag&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> aufgefallen, wo der Ersteller den HP 8620 Drucker hinsichtlich des Druckerpatronenfüllstands überwachen ließ. Das habe ich direkt ausprobiert - funktioniert ;)</p>
<p>Ein paar Anpassungen habe ich durchgeführt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">defmod</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">HTTPMOD</span> <span class="n">http:</span><span class="sr">//</span><span class="n">hp8620</span><span class="sr">/DevMgmt/</span><span class="n">ConsumableConfigDyn</span><span class="o">.</span><span class="n">xml</span> <span class="mi">3600</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">userattr</span> <span class="n">reading01Name</span> <span class="n">reading01XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading02Name</span> <span class="n">reading02XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading03Name</span> <span class="n">reading03XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading04Name</span> <span class="n">reading04XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading05Name</span> <span class="n">reading05XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading06Name</span> <span class="n">reading06XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading07Name</span> <span class="n">reading07XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading08Name</span> <span class="n">reading08XPath</span><span class="o">-</span><span class="n">Strict</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">DbLogExclude</span> <span class="o">.*</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">alias</span> <span class="n">HP</span> <span class="mi">8620</span> <span class="o">-</span> <span class="n">Tintenfüllstand</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">httpVersion</span> <span class="mf">1.1</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading01Name</span> <span class="n">Cyan</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading01XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//cc</span><span class="n">dyn:ConsumableInfo</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="sr">/dd:ConsumablePercentageLevelRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading02Name</span> <span class="n">CyanReplaceBy</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading02XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//cc</span><span class="n">dyn:ConsumableInfo</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="sr">/dd:ConsumableSelectibilityNumber/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading03Name</span> <span class="n">Magenta</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading03XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//cc</span><span class="n">dyn:ConsumableInfo</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="sr">/dd:ConsumablePercentageLevelRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading04Name</span> <span class="n">MagentaReplaceBy</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading04XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//cc</span><span class="n">dyn:ConsumableInfo</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="sr">/dd:ConsumableSelectibilityNumber/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading05Name</span> <span class="n">Yellow</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading05XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//cc</span><span class="n">dyn:ConsumableInfo</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="sr">/dd:ConsumablePercentageLevelRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading06Name</span> <span class="n">YellowReplaceBy</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading06XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//cc</span><span class="n">dyn:ConsumableInfo</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="sr">/dd:ConsumableSelectibilityNumber/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading07Name</span> <span class="n">Black</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading07XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//cc</span><span class="n">dyn:ConsumableInfo</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="sr">/dd:ConsumablePercentageLevelRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading08Name</span> <span class="n">BlackReplaceBy</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">reading08XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//cc</span><span class="n">dyn:ConsumableInfo</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="sr">/dd:ConsumableSelectibilityNumber/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">room</span> <span class="n">Büro</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_CONSUMABLES</span> <span class="n">stateFormat</span> <span class="n">C:</span> <span class="n">Cyan</span><span class="nv">%</span> <span class="nv">M:</span> <span class="n">Magenta</span><span class="nv">%</span> <span class="nv">Y:</span> <span class="n">Yellow</span><span class="nv">%</span> <span class="nv">K:</span> <span class="n">Black</span><span class="nv">%</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Ausserdem kann man sich noch einige Statistiken holen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">defmod</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">HTTPMOD</span> <span class="n">http:</span><span class="sr">//</span><span class="n">hp8620</span><span class="sr">/DevMgmt/</span><span class="n">ProductUsageDyn</span><span class="o">.</span><span class="n">xml</span> <span class="mi">3600</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">userattr</span> <span class="n">reading01Name</span> <span class="n">reading01XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading02Name</span> <span class="n">reading02XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading03Name</span> <span class="n">reading03XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading04Name</span> <span class="n">reading04XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading05Name</span> <span class="n">reading05XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading06Name</span> <span class="n">reading06XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading07Name</span> <span class="n">reading07XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading08Name</span> <span class="n">reading08XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading09Name</span> <span class="n">reading09XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading10Name</span> <span class="n">reading10XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading11Name</span> <span class="n">reading11XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading20Name</span> <span class="n">reading20XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading30Name</span> <span class="n">reading30XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading40Name</span> <span class="n">reading40XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading41Name</span> <span class="n">reading41XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading50Name</span> <span class="n">reading50XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading51Name</span> <span class="n">reading51XPath</span><span class="o">-</span><span class="n">Strict</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">DbLogExclude</span> <span class="o">.*</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">DbLogInclude</span> <span class="n">Printer_Pages_Total</span><span class="p">,</span><span class="n">Scanner_Scans_Total</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">alias</span> <span class="n">HP</span> <span class="mi">8620</span> <span class="o">-</span> <span class="n">Statistik</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">httpVersion</span> <span class="mf">1.1</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading01Name</span> <span class="n">Printer_Pages_Total</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading01XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:PrinterSubunit</span><span class="sr">/dd:TotalImpressions/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading02Name</span> <span class="n">Printer_Pages_Monochrome</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading02XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:PrinterSubunit</span><span class="sr">/dd:MonochromeImpressions/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading03Name</span> <span class="n">Printer_Pages_Color</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading03XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:PrinterSubunit</span><span class="sr">/dd:ColorImpressions/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading04Name</span> <span class="n">Printer_Pages_Duplex</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading04XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:PrinterSubunit</span><span class="sr">/dd:DuplexSheets/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading05Name</span> <span class="n">Printer_Jam_Events</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading05XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:PrinterSubunit</span><span class="sr">/dd:JamEvents/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading06Name</span> <span class="n">Printer_Mispick_Events</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading06XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:PrinterSubunit</span><span class="sr">/dd:MispickEvents/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading10Name</span> <span class="n">Scanner_Scans_Total</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading10XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:ScannerEngineSubunit</span><span class="sr">/dd:ScanImages/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading11Name</span> <span class="n">Scanner_Scans_ADF_Image</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading11XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:ScannerEngineSubunit</span><span class="sr">/dd:AdfImages/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading12Name</span> <span class="n">Scanner_Scans_Flatbed_Image</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading12XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:ScannerEngineSubunit</span><span class="sr">/dd:FlatbedImages/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading13Name</span> <span class="n">Scanner_Jam_Events</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading13XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:ScannerEngineSubunit</span><span class="sr">/dd:JamEvents/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading14Name</span> <span class="n">Scanner_Mispick_Events</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading14XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:ScannerEngineSubunit</span><span class="sr">/dd:MispickEvents/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading20Name</span> <span class="n">InkMagentaPagesRemaining</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading20XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:Consumable</span><span class="p">[</span><span class="n">dd:MarkerColor</span><span class="o">=</span><span class="s">&#39;Magenta&#39;</span><span class="p">]</span><span class="sr">/dd:EstimatedPagesRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading21Name</span> <span class="n">InkMagentaPercentRemaining</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading21XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:Consumable</span><span class="p">[</span><span class="n">dd:MarkerColor</span><span class="o">=</span><span class="s">&#39;Magenta&#39;</span><span class="p">]</span><span class="sr">/dd:ConsumableRawPercentageLevelRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading30Name</span> <span class="n">InkCyanPagesRemaining</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading30XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:Consumable</span><span class="p">[</span><span class="n">dd:MarkerColor</span><span class="o">=</span><span class="s">&#39;Cyan&#39;</span><span class="p">]</span><span class="sr">/dd:EstimatedPagesRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading31Name</span> <span class="n">InkCyanPercentRemaining</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading31XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:Consumable</span><span class="p">[</span><span class="n">dd:MarkerColor</span><span class="o">=</span><span class="s">&#39;Cyan&#39;</span><span class="p">]</span><span class="sr">/dd:ConsumableRawPercentageLevelRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading40Name</span> <span class="n">InkYellowPagesRemaining</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading40XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:Consumable</span><span class="p">[</span><span class="n">dd:MarkerColor</span><span class="o">=</span><span class="s">&#39;Yellow&#39;</span><span class="p">]</span><span class="sr">/dd:EstimatedPagesRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading41Name</span> <span class="n">InkYellowPercentRemaining</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading41XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:Consumable</span><span class="p">[</span><span class="n">dd:MarkerColor</span><span class="o">=</span><span class="s">&#39;Yellow&#39;</span><span class="p">]</span><span class="sr">/dd:ConsumableRawPercentageLevelRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading50Name</span> <span class="n">InkBlackPagesRemaining</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading50XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:Consumable</span><span class="p">[</span><span class="n">dd:MarkerColor</span><span class="o">=</span><span class="s">&#39;Black&#39;</span><span class="p">]</span><span class="sr">/dd:EstimatedPagesRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading51Name</span> <span class="n">InkBlackPercentRemaining</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">reading51XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">pudyn:Consumable</span><span class="p">[</span><span class="n">dd:MarkerColor</span><span class="o">=</span><span class="s">&#39;Black&#39;</span><span class="p">]</span><span class="sr">/dd:ConsumableRawPercentageLevelRemaining/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">room</span> <span class="n">E6</span><span class="o">-</span><span class="n">Büro</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTUSAGE</span> <span class="n">stateFormat</span> <span class="n">Total:</span> <span class="n">Pages_Total</span> <span class="n">Monochrome:</span> <span class="n">Pages_Monochrome</span> <span class="n">Color:</span> <span class="n">Pages_Color</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Und noch ein paar Details des Druckers:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">defmod</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">HTTPMOD</span> <span class="n">http:</span><span class="sr">//</span><span class="n">hp8620</span><span class="sr">/DevMgmt/</span><span class="n">ProductConfigDyn</span><span class="o">.</span><span class="n">xml</span> <span class="mi">3600</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">userattr</span> <span class="n">reading01Name</span> <span class="n">reading01XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading02Name</span> <span class="n">reading02XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading03Name</span> <span class="n">reading03XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading04Name</span> <span class="n">reading04XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="n">reading05Name</span> <span class="n">reading05XPath</span><span class="o">-</span><span class="n">Strict</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">DbLogExclude</span> <span class="o">.*</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">enableControlSet</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">httpVersion</span> <span class="mf">1.1</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading01Name</span> <span class="n">Model</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading01XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">dd:MakeAndModel</span><span class="o">/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading02Name</span> <span class="n">Serial_Number</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading02XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">dd:SerialNumber</span><span class="o">/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading03Name</span> <span class="n">Firmware_Date</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading03XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">prdcfgdyn:ProductInformation</span><span class="sr">/dd:Version/</span><span class="n">dd:Date</span><span class="o">/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading04Name</span> <span class="n">Total_Memory</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading04XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">dd:TotalMemory</span><span class="o">/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading05Name</span> <span class="n">Available_Memory</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">reading05XPath</span><span class="o">-</span><span class="n">Strict</span> <span class="sr">//</span><span class="n">dd:AvailableMemory</span><span class="o">/</span><span class="n">text</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">room</span> <span class="n">E6</span><span class="o">-</span><span class="n">Büro</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">stateFormat</span> <span class="n">Modell:</span> <span class="n">Model</span> <span class="n">SN:</span> <span class="n">Serial_Number</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BUE_HTM_HP8620_PRODUCTCONFIG</span> <span class="n">userReadings</span> <span class="n">Memory_Usage_Percent</span> <span class="p">{</span><span class="n">round</span><span class="p">(</span><span class="mi">100</span><span class="o">-</span><span class="p">(</span><span class="n">ReadingsNum</span><span class="p">(</span><span class="nv">$name</span><span class="p">,</span><span class="s">&#34;Available_Memory&#34;</span><span class="p">,</span><span class="s">&#34;&#34;</span><span class="p">)</span><span class="o">/</span><span class="n">ReadingsNum</span><span class="p">(</span><span class="nv">$name</span><span class="p">,</span><span class="s">&#34;Total_Memory&#34;</span><span class="p">,</span><span class="s">&#34;&#34;</span><span class="p">))</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span><span class="mi">1</span><span class="p">)}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Vielen Dank an die Nutzer &ldquo;akw&rdquo; und &ldquo;somansch&rdquo; aus dem Forum!</p>
]]></content:encoded>
    </item>
    <item>
      <title>FHEM: Abfahrzeiten des VRN Verkehrsverbunds via HTTPMOD auslesen</title>
      
      
      <link>https://wolf-u.li/fhem-abfahrzeiten-des-vrn-verkehrsverbunds-via-httpmod-auslesen/</link>
      <pubDate>Sat, 09 Jan 2016 16:03:54 +0900</pubDate>
      <guid>https://wolf-u.li/fhem-abfahrzeiten-des-vrn-verkehrsverbunds-via-httpmod-auslesen/</guid>
      <description>&lt;p&gt;Nach dem Abruf der Google Maps Informationen hatte ich mich erinnert, dass VRN ebenso einen Abfahrtsmonitor anbietet. Diesen wollte ich natürlich auch auf jeden Fall in FHEM anbinden.&lt;/p&gt;
&lt;p&gt;Zunächst muss die Haltestelle herausgefunden werden. Am besten geht man dazu auf den &lt;link rel=dns-prefetch href=//fahrplanauskunft.vrn.de /&gt; &lt;a href=&#34;http://fahrplanauskunft.vrn.de/vrn/XSLT_DM_REQUEST?language=de&#34;
    title=&#34;Abfahrtsmonitor&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Abfahrtsmonitor&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; und sucht sich die Wunschhaltestelle. In meinem Falle nehme ich die &amp;ldquo;Lindenhof (MA), Windeckstraße&amp;rdquo;:
&lt;img src=&#34;https://wolf-u.li/upload/2016/01/5545-vrn-abfahrtsmonitor-01.webp&#34; alt=&#34;VRN Abfahrtsmonitor&#34; loading=&#34;lazy&#34;&gt;
Nun kann man noch die Richtung auswählen:
&lt;img src=&#34;https://wolf-u.li/upload/2016/01/5545-vrn-abfahrtsmonitor-02.webp&#34; alt=&#34;VRN Abfahrtsmonitor&#34; loading=&#34;lazy&#34;&gt;&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Nach dem Abruf der Google Maps Informationen hatte ich mich erinnert, dass VRN ebenso einen Abfahrtsmonitor anbietet. Diesen wollte ich natürlich auch auf jeden Fall in FHEM anbinden.</p>
<p>Zunächst muss die Haltestelle herausgefunden werden. Am besten geht man dazu auf den <link rel=dns-prefetch href=//fahrplanauskunft.vrn.de /> <a href="http://fahrplanauskunft.vrn.de/vrn/XSLT_DM_REQUEST?language=de"
    title="Abfahrtsmonitor" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Abfahrtsmonitor&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> und sucht sich die Wunschhaltestelle. In meinem Falle nehme ich die &ldquo;Lindenhof (MA), Windeckstraße&rdquo;:
<img src="/upload/2016/01/5545-vrn-abfahrtsmonitor-01.webp" alt="VRN Abfahrtsmonitor" loading="lazy">
Nun kann man noch die Richtung auswählen:
<img src="/upload/2016/01/5545-vrn-abfahrtsmonitor-02.webp" alt="VRN Abfahrtsmonitor" loading="lazy"></p>
<p>Schlussendlich bekommt man eine URL wie diese:</p>
<blockquote>
<p><code>http://efa9-5.vrn.de/dm_rbl/XSLT_DM_REQUEST?language=de&amp;itdLPxx_dmlayout=dm&amp;itdLPxx_realtime=1&amp;useRealtime=1&amp;itdLPxx_dmRefresh=1&amp;timeOffset=3&amp;limit=12&amp;includeCompleteStopSeq=1&amp;depType=stopEvents&amp;typeInfo_dm=stopID&amp;nameInfo_dm=6002500&amp;mode=direct&amp;line=VRN:08003:s:H&amp;itdLPxx_ie6layout=;</code></p>
</blockquote>
<p>Für die Anzeige in FHEM muss man nun in der URL relativ zu Beginn die Zeichenfolge &ldquo;<code>dm_rbl</code>&rdquo; gegen &ldquo;<code>lite</code>&rdquo; tauschen, wodurch bei Aufruf im Browser (am besten Chrome nehmen) eine JSON-Anzeige gestartet wird. Diese URL muss im <code>define</code> statt der unten stehenden verwendet werden. Ich habe hier 1800 als Abrufintervall eingetragen, was man natürlich ändern kann. Die definition des Devices folgt wie immer meiner <a href="/5530/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/"
    title="Namenskonvention" 
   >
  Namenskonvention</a>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span><span class="lnt">59
</span><span class="lnt">60
</span><span class="lnt">61
</span><span class="lnt">62
</span><span class="lnt">63
</span><span class="lnt">64
</span><span class="lnt">65
</span><span class="lnt">66
</span><span class="lnt">67
</span><span class="lnt">68
</span><span class="lnt">69
</span><span class="lnt">70
</span><span class="lnt">71
</span><span class="lnt">72
</span><span class="lnt">73
</span><span class="lnt">74
</span><span class="lnt">75
</span><span class="lnt">76
</span><span class="lnt">77
</span><span class="lnt">78
</span><span class="lnt">79
</span><span class="lnt">80
</span><span class="lnt">81
</span><span class="lnt">82
</span><span class="lnt">83
</span><span class="lnt">84
</span><span class="lnt">85
</span><span class="lnt">86
</span><span class="lnt">87
</span><span class="lnt">88
</span><span class="lnt">89
</span><span class="lnt">90
</span><span class="lnt">91
</span><span class="lnt">92
</span><span class="lnt">93
</span><span class="lnt">94
</span><span class="lnt">95
</span><span class="lnt">96
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">define</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">HTTPMOD</span> <span class="n">http:</span><span class="sr">//</span><span class="n">efa9</span><span class="o">-</span><span class="mi">5</span><span class="o">.</span><span class="n">vrn</span><span class="o">.</span><span class="n">de</span><span class="sr">/lite/</span><span class="n">XSLT_DM_REQUEST</span><span class="p">?</span><span class="n">language</span><span class="o">=</span><span class="n">de</span><span class="o">&amp;</span><span class="n">itdLPxx_dmlayout</span><span class="o">=</span><span class="n">gadget</span><span class="o">&amp;</span><span class="n">itdLPxx_realtime</span><span class="o">=</span><span class="mi">1</span><span class="o">&amp;</span><span class="n">useRealtime</span><span class="o">=</span><span class="mi">1</span><span class="o">&amp;</span><span class="n">itdLPxx_dmRefresh</span><span class="o">=</span><span class="mi">1</span><span class="o">&amp;</span><span class="n">timeOffset</span><span class="o">=</span><span class="mi">3</span><span class="o">&amp;</span><span class="n">limit</span><span class="o">=</span><span class="mi">12</span><span class="o">&amp;</span><span class="n">includeCompleteStopSeq</span><span class="o">=</span><span class="mi">1</span><span class="o">&amp;</span><span class="n">depType</span><span class="o">=</span><span class="n">stopEvents</span><span class="o">&amp;</span><span class="n">typeInfo_dm</span><span class="o">=</span><span class="n">stopID</span><span class="o">&amp;</span><span class="n">nameInfo_dm</span><span class="o">=</span><span class="mi">6002500</span><span class="o">&amp;</span><span class="n">mode</span><span class="o">=</span><span class="n">direct</span><span class="o">&amp;</span><span class="n">line</span><span class="o">=</span><span class="n">VRN:08003:s:H</span><span class="o">&amp;</span><span class="n">itdLPxx_ie6layout</span><span class="o">=</span><span class="p">;</span> <span class="mi">1800</span> <span class="c1">#Bitte URL tauschen!</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading11Name</span> <span class="n">departures_01_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading11JSON</span> <span class="n">departures_01_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading12Name</span> <span class="n">departures_01_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading12JSON</span> <span class="n">departures_01_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading13Name</span> <span class="n">departures_01_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading13JSON</span> <span class="n">departures_01_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading14Name</span> <span class="n">departures_01_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading14JSON</span> <span class="n">departures_01_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading15Name</span> <span class="n">departures_01_mode_destination_s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading15JSON</span> <span class="n">departures_01_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading15Format</span> <span class="nv">%</span><span class="err">.</span><span class="nv">1s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading16Name</span> <span class="n">departures_01_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading16JSON</span> <span class="n">departures_01_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading17Name</span> <span class="n">departures_01_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading17JSON</span> <span class="n">departures_01_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading21Name</span> <span class="n">departures_02_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading21JSON</span> <span class="n">departures_02_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading22Name</span> <span class="n">departures_02_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading22JSON</span> <span class="n">departures_02_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading23Name</span> <span class="n">departures_02_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading23JSON</span> <span class="n">departures_02_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading24Name</span> <span class="n">departures_02_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading24JSON</span> <span class="n">departures_02_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading25Name</span> <span class="n">departures_02_mode_destination_s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading25JSON</span> <span class="n">departures_02_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading25Format</span> <span class="nv">%</span><span class="err">.</span><span class="nv">1s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading26Name</span> <span class="n">departures_02_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading26JSON</span> <span class="n">departures_02_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading27Name</span> <span class="n">departures_02_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading27JSON</span> <span class="n">departures_02_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading31Name</span> <span class="n">departures_03_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading31JSON</span> <span class="n">departures_03_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading32Name</span> <span class="n">departures_03_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading32JSON</span> <span class="n">departures_03_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading33Name</span> <span class="n">departures_03_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading33JSON</span> <span class="n">departures_03_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading34Name</span> <span class="n">departures_03_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading34JSON</span> <span class="n">departures_03_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading35Name</span> <span class="n">departures_03_mode_destination_s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading35JSON</span> <span class="n">departures_03_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading35Format</span> <span class="nv">%</span><span class="err">.</span><span class="nv">1s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading36Name</span> <span class="n">departures_03_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading36JSON</span> <span class="n">departures_03_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading37Name</span> <span class="n">departures_03_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading37JSON</span> <span class="n">departures_03_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading41Name</span> <span class="n">departures_04_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading41JSON</span> <span class="n">departures_04_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading42Name</span> <span class="n">departures_04_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading42JSON</span> <span class="n">departures_04_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading43Name</span> <span class="n">departures_04_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading43JSON</span> <span class="n">departures_04_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading44Name</span> <span class="n">departures_04_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading44JSON</span> <span class="n">departures_04_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading45Name</span> <span class="n">departures_04_mode_destination_s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading45JSON</span> <span class="n">departures_04_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading45Format</span> <span class="nv">%</span><span class="err">.</span><span class="nv">1s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading46Name</span> <span class="n">departures_04_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading46JSON</span> <span class="n">departures_04_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading47Name</span> <span class="n">departures_04_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading47JSON</span> <span class="n">departures_04_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading51Name</span> <span class="n">departures_05_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading51JSON</span> <span class="n">departures_05_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading52Name</span> <span class="n">departures_05_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading52JSON</span> <span class="n">departures_05_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading53Name</span> <span class="n">departures_05_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading53JSON</span> <span class="n">departures_05_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading54Name</span> <span class="n">departures_05_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading54JSON</span> <span class="n">departures_05_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading55Name</span> <span class="n">departures_05_mode_destination_s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading55JSON</span> <span class="n">departures_05_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading55Format</span> <span class="nv">%</span><span class="err">.</span><span class="nv">1s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading56Name</span> <span class="n">departures_05_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading56JSON</span> <span class="n">departures_05_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading57Name</span> <span class="n">departures_05_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading57JSON</span> <span class="n">departures_05_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading61Name</span> <span class="n">departures_06_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading61JSON</span> <span class="n">departures_06_dateTime_rtTime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading62Name</span> <span class="n">departures_06_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading62JSON</span> <span class="n">departures_06_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading63Name</span> <span class="n">departures_06_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading63JSON</span> <span class="n">departures_06_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading64Name</span> <span class="n">departures_06_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading64JSON</span> <span class="n">departures_06_mode_delay</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading65Name</span> <span class="n">departures_06_mode_destination_s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading65JSON</span> <span class="n">departures_06_mode_destination</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading65Format</span> <span class="nv">%</span><span class="err">.</span><span class="nv">1s</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading66Name</span> <span class="n">departures_06_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading66JSON</span> <span class="n">departures_06_dateTime_time</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading67Name</span> <span class="n">departures_06_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">reading67JSON</span> <span class="n">departures_06_realtime</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">stateFormat</span> <span class="n">departures_01_dateTime_rtTime</span> <span class="o">+</span><span class="n">departures_01_mode_delay</span> <span class="p">(</span><span class="n">departures_01_mode_destination</span> <span class="o">/</span> <span class="n">departures_01_dateTime_rtDate</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">readingMaxAge</span> <span class="mi">300</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">readingMaxAgeReplacement</span> <span class="o">-</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">readingMaxAgeReplacementMode</span> <span class="n">text</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Im STATE des Geräts wird die nächste Abfahrt mit einer eventuellen Verspätung angezeigt. Schlussendlich hat man die nächsten sechs Abfahrten und kann diese dann weiterverarbeiten, beispielsweise in einer <link rel=dns-prefetch href=//fhem.de /> <a href="http://fhem.de/commandref.html#readingsGroup#readingsGroup"
    title="readingsGroup" 
     target="_blank" rel="nofollow noopener noreferrer" >
  readingsGroup&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>. Hier sieht man nun schön den Vorteil einer ordentlichen <a href="/5530/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/"
    title="Namenskonvention" 
   >
  Namenskonvention</a>, da sich das DEVICE nur um den Typ unterscheidet:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">define</span> <span class="n">INF_RGRP_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">readingsGroup</span> <span class="p">,,,</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE:departures_01_mode_destination</span><span class="p">,</span><span class="n">departures_01_dateTime_rtTime</span><span class="p">,</span><span class="n">departures_01_mode_delay</span><span class="p">,</span><span class="n">departures_01_dateTime_rtDate</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE:departures_02_mode_destination</span><span class="p">,</span><span class="n">departures_02_dateTime_rtTime</span><span class="p">,</span><span class="n">departures_02_mode_delay</span><span class="p">,</span><span class="n">departures_02_dateTime_rtDate</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE:departures_03_mode_destination</span><span class="p">,</span><span class="n">departures_03_dateTime_rtTime</span><span class="p">,</span><span class="n">departures_03_mode_delay</span><span class="p">,</span><span class="n">departures_03_dateTime_rtDate</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE:departures_04_mode_destination</span><span class="p">,</span><span class="n">departures_04_dateTime_rtTime</span><span class="p">,</span><span class="n">departures_04_mode_delay</span><span class="p">,</span><span class="n">departures_04_dateTime_rtDate</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE:departures_05_mode_destination</span><span class="p">,</span><span class="n">departures_05_dateTime_rtTime</span><span class="p">,</span><span class="n">departures_05_mode_delay</span><span class="p">,</span><span class="n">departures_05_dateTime_rtDate</span> <span class="n">INF_HTM_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE:departures_06_mode_destination</span><span class="p">,</span><span class="n">departures_06_dateTime_rtTime</span><span class="p">,</span><span class="n">departures_06_mode_delay</span><span class="p">,</span><span class="n">departures_06_dateTime_rtDate</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_RGRP_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">alias</span> <span class="n">Abfahrtmonitor</span> <span class="n">STR3</span> <span class="n">Ab</span> <span class="n">Windeckstrasse</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_RGRP_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">nonames</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_RGRP_ABFAHRTSMONITOR_STR3_WINDECKSTRASSE</span> <span class="n">valueStyle</span> <span class="p">{(</span><span class="nb">substr</span><span class="p">(</span><span class="nv">$READING</span><span class="p">,</span> <span class="o">-</span><span class="mi">5</span><span class="p">)</span> <span class="ow">eq</span> <span class="s">&#34;delay&#34;</span><span class="p">)?(</span><span class="nv">$VALUE</span> <span class="ow">ne</span> <span class="s">&#34;0&#34;</span><span class="p">)?</span><span class="s">&#39;style=&#34;color:red;;font-weight:bold&#34;&#39;</span><span class="p">:</span><span class="s">&#39;style=&#34;color:green;;font-weight:bold&#34;&#39;</span><span class="p">:</span><span class="s">&#39;&#39;</span><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Was dann so aussieht:
<img src="/upload/2016/01/5545-vrn-abfahrtsmonitor-03.webp" alt="5545-vrn-abfahrtsmonitor-03" loading="lazy"></p>
<p>Ganz praktisch ;)</p>
<p><strong>Versions Historie:</strong></p>
<ul>
<li>2016-01-10 - Update mit MaxAge, da ab und an keine Daten für bestimmte Zeiten gezogen werden.</li>
<li>2016-05-02 - Update mit Destination als ein Buchstabe für die schnelle Anzeige in FTUI</li>
<li>2016-05-09 - Aufnahme der regulären Abfahrtszeit</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>FHEM: watchdog - Funktion und Anwendungsfälle des Hilfsmoduls</title>
      
      
      <link>https://wolf-u.li/fhem-watchdog-funktion-und-anwendungsfaelle-des-hilfsmoduls/</link>
      <pubDate>Tue, 04 Oct 2016 19:38:09 +0400</pubDate>
      <guid>https://wolf-u.li/fhem-watchdog-funktion-und-anwendungsfaelle-des-hilfsmoduls/</guid>
      <description>&lt;p&gt;Das Hilfsmodul watchdog erlaubt es, gewisse Dinge - wie der Name schon sagt - wie ein Wachhund zu überwachen. Dabei kann zum einen nach einem Event nach einer gewissen Zeiten eine Aktion ausgelöst werden, diese aber bei Eintreffen eines anderen Ereignisses auch eben nicht ausgeführt werden. Ebenso kann auch das Ausbleiben von Ereignissen überwacht werden.&lt;/p&gt;
&lt;h2 id=&#34;beispiel-1&#34;&gt;Beispiel 1&lt;/h2&gt;
&lt;p&gt;Ein Thermostat soll auf eine bestimmte Temperatur gesetzt werden, sobald ein Fenster mehr als 90 Sekunden offen ist. Wird es innerhalb dieser Zeit wieder geschlossen, so soll der Watchdog natürlich nicht auslösen (und damit die Temperatur beibehalten). Als praktischer Anwendungsfall wäre eine Gartentür zu nennen. Der Grillmeister rennt ständig rein und raus und will nur kurz nach dem Grill sehen - hier lohnt es sich nicht, die Heizung permanent rauf und runter zu drehen. Vergisst er aber die Türe zu schließen, so wird ausgelöst.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Das Hilfsmodul watchdog erlaubt es, gewisse Dinge - wie der Name schon sagt - wie ein Wachhund zu überwachen. Dabei kann zum einen nach einem Event nach einer gewissen Zeiten eine Aktion ausgelöst werden, diese aber bei Eintreffen eines anderen Ereignisses auch eben nicht ausgeführt werden. Ebenso kann auch das Ausbleiben von Ereignissen überwacht werden.</p>
<h2 id="beispiel-1">Beispiel 1</h2>
<p>Ein Thermostat soll auf eine bestimmte Temperatur gesetzt werden, sobald ein Fenster mehr als 90 Sekunden offen ist. Wird es innerhalb dieser Zeit wieder geschlossen, so soll der Watchdog natürlich nicht auslösen (und damit die Temperatur beibehalten). Als praktischer Anwendungsfall wäre eine Gartentür zu nennen. Der Grillmeister rennt ständig rein und raus und will nur kurz nach dem Grill sehen - hier lohnt es sich nicht, die Heizung permanent rauf und runter zu drehen. Vergisst er aber die Türe zu schließen, so wird ausgelöst.</p>
<p>Definition wäre (Angelehnt an COMMANDREF und mit meiner <a href="/5530/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/"
    title="Namenskonvention" 
   >
  Namenskonvention</a>):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">define</span> <span class="n">BA1_WADG_SHUTTERCONTACT_OPENED</span> <span class="n">watchdog</span> <span class="n">BA1_STRUC_SHUTTERCONTACTS:opened</span> <span class="mo">00</span><span class="p">:</span><span class="mo">01</span><span class="p">:</span><span class="mi">30</span> <span class="n">BA1_STRUC_SHUTTERCONTACTS:closed</span> <span class="n">set</span> <span class="n">TEC_MAX_CUL</span> <span class="n">fakeSC</span> <span class="n">BA_THERMOSTAT</span> <span class="mi">1</span><span class="p">;</span> <span class="n">trigger</span> <span class="n">BA1_WADG_SHUTTERCONTACT_OPENED</span> <span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_OPENED</span> <span class="n">room</span> <span class="n">Technik</span><span class="o">-</span><span class="n">Bad</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_OPENED</span> <span class="n">group</span> <span class="n">BA</span><span class="o">-</span><span class="n">Klima</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_OPENED</span> <span class="n">icon</span> <span class="n">dog_silhouette</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_OPENED</span> <span class="n">regexp1WontReactivate</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_OPENED</span> <span class="n">verbose</span> <span class="mi">0</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun haben wir also das Fenster mindestens 90 Sekunden offen gelassen und der Watchdog hat auch reagiert. Nun wird das Fenster wieder geschlossen - der Watchdog hier soll ebenfalls 90 Sekunden warten. Dies sieht dann so aus (Angelehnt an COMMANDREF und mit meiner <a href="/5530/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/"
    title="Namenskonvention" 
   >
  Namenskonvention</a>):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">define</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">watchdog</span> <span class="n">BA1_STRUC_SHUTTERCONTACTS:closed</span> <span class="mo">00</span><span class="p">:</span><span class="mo">01</span><span class="p">:</span><span class="mi">30</span> <span class="n">BA1_STRUC_SHUTTERCONTACTS:opened</span> <span class="n">set</span> <span class="n">TEC_MAX_CUL</span> <span class="n">fakeSC</span> <span class="n">BA_THERMOSTAT</span> <span class="mi">0</span><span class="p">;</span> <span class="n">trigger</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">room</span> <span class="n">Technik</span><span class="o">-</span><span class="n">Bad</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">group</span> <span class="n">BA</span><span class="o">-</span><span class="n">Klima</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">icon</span> <span class="n">dog_silhouette</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">regexp1WontReactivate</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">verbose</span> <span class="mi">0</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Gehen wir kurz die Attribute durch:</p>
<ul>
<li>room, group &amp; icon: Lediglich zur Sortierung und Verschönerung des Interfaces</li>
<li>verbose: Wird hier auf 0 gesetzt, da bei Fehlen dieses Attributes (und bei Default verbose-Level 3 in FHEM) jede Auslösung einen Logeintrag erzeugt</li>
<li>regexp1WontReactivate: Dieses Attribut bewirkt, dass die Zeit bei erneutem Eintreffen des Events (in diesem Falle z.B. <em>BA_STRUC_SHUTTERCONTACTS:closed</em>) nicht zurückgesetzt wird. Trifft jedoch <em>BA_STRUC_SHUTTERCONTACTS:opened</em>  ein, so läuft der Watchdog wieder von vorne los.</li>
</ul>
<h2 id="beispiel-2">Beispiel 2</h2>
<p>Ein Sensor sendet lediglich Messdaten, jedoch keine Batteriewerte. Bleiben dessen Daten für mehr als 1 Stunde aus, so soll ein Alarm ausgelöst werden.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">define</span> <span class="n">BA1_WADG_BA_ULISTEMPERATURE_BATTERYISSUE</span> <span class="n">watchdog</span> <span class="n">BA1_ULISTEMPERATURE:temperature</span> <span class="mo">01</span><span class="p">:</span><span class="mo">00</span><span class="p">:</span><span class="mo">00</span> <span class="n">SAME</span> <span class="n">set</span> <span class="n">BA1_DMY_ULISTEMPERATURE_BATTERYISSUE</span> <span class="mi">1</span><span class="p">;</span> <span class="n">trigger</span> <span class="n">BA1_WADG_BA_ULISTEMPERATURE_BATTERYISSUE</span> <span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">room</span> <span class="n">Technik</span><span class="o">-</span><span class="n">Bad</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">group</span> <span class="n">BA</span><span class="o">-</span><span class="n">Klima</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">icon</span> <span class="n">dog_silhouette</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">BA1_WADG_SHUTTERCONTACT_CLOSED</span> <span class="n">verbose</span> <span class="mi">0</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="weitere-links">Weitere Links</h2>
<p>Für die weiteren Attribute des watchdogs empfehle ich einen Blick in die <link rel=dns-prefetch href=//fhem.de /> <a href="http://fhem.de/commandref_DE.html#watchdog#watchdog"
    title="deutsche" 
     target="_blank" rel="nofollow noopener noreferrer" >
  deutsche&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> oder <link rel=dns-prefetch href=//fhem.de /> <a href="http://fhem.de/commandref.html#watchdog#watchdog"
    title="englische" 
     target="_blank" rel="nofollow noopener noreferrer" >
  englische&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> Commandref. Ebenso hält das <link rel=dns-prefetch href=//www.fhemwiki.de /> <a href="http://www.fhemwiki.de/wiki/Watchdog"
    title="Wiki" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Wiki&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> nützliche Hinweise bereit.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Deep-Sleep des ESP-01 (ESP8266) mit 78 microAmpere</title>
      
      
      <link>https://wolf-u.li/deep-sleep-des-esp-01-esp8266-mit-78-microampere/</link>
      <pubDate>Sun, 05 Jun 2016 17:36:08 +0500</pubDate>
      <guid>https://wolf-u.li/deep-sleep-des-esp-01-esp8266-mit-78-microampere/</guid>
      <description>&lt;p&gt;Seit einiger Zeit beschäftige ich mich mit dem ESP8266 für einige Anwendungen rund um meine Heimautomation (mittels FHEM). Um die Wifi-Module so sparsam wie möglich zu betrieben, gibt es die Möglichkeit den Chip in den Deep-Sleep zu versetzen, wo dann nur noch 78 μA verbraucht werden (&lt;link rel=dns-prefetch href=//github.com /&gt; &lt;a href=&#34;https://github.com/esp8266/esp8266-wiki/wiki/Pin-definition&#34;
    title=&#34;Siehe Pin-Belegung des Chips, genauer des &amp;lsquo;post-sleep-reset-pin&amp;rsquo; XPD_DCDC hier&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Siehe Pin-Belegung des Chips, genauer des &amp;lsquo;post-sleep-reset-pin&amp;rsquo; XPD_DCDC hier&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;).&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Seit einiger Zeit beschäftige ich mich mit dem ESP8266 für einige Anwendungen rund um meine Heimautomation (mittels FHEM). Um die Wifi-Module so sparsam wie möglich zu betrieben, gibt es die Möglichkeit den Chip in den Deep-Sleep zu versetzen, wo dann nur noch 78 μA verbraucht werden (<link rel=dns-prefetch href=//github.com /> <a href="https://github.com/esp8266/esp8266-wiki/wiki/Pin-definition"
    title="Siehe Pin-Belegung des Chips, genauer des &lsquo;post-sleep-reset-pin&rsquo; XPD_DCDC hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Siehe Pin-Belegung des Chips, genauer des &lsquo;post-sleep-reset-pin&rsquo; XPD_DCDC hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>).</p>
<p>Wie das geht wird <link rel=dns-prefetch href=//tim.jagenberg.info /> <a href="http://tim.jagenberg.info/2015/01/18/low-power-esp8266/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> beschrieben. Der Autor hatte &ldquo;einfach&rdquo; ein Kabel vom Reset-Pin des Moduls an den XPD_DCDC (8) Pin des Chips geführt. Dieser ist, wenn man das ESP-Modul von &ldquo;oben&rdquo; (d.h. Chips ist sichtbar und Pins zeigen weg vom Betrachter) betrachtet und die Wifi-Antenne links ist, der Pin &ldquo;unten rechts&rdquo; am Chip. Ich habe meinen mal photographiert und dies dort aufgezeichnet:</p>
<p><img src="/upload/2015/08/5282-ESP8266-ESP-01-Deep-Sleep.webp" alt="ESP8266 ESP-01 Deep-Sleep Connections" loading="lazy"></p>
<p>Nun sieht das auf dem Photo nicht so schwer aus. Wenn man sich dann aber vergegenwärtigt, dass die gesamte Platine von links nach rechts gerade mal 2,5cm groß ist, so sieht das ganze schon anders aus. Zum löten braucht man dann doch einen sehr feinen Lötkolben.</p>
<p>In NodeMCU kann man nun den Deep-Sleep mittels</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-lua" data-lang="lua"><span class="line"><span class="cl"><span class="n">node.dsleep</span><span class="p">(</span><span class="n">microSecs</span><span class="p">);</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>auslösen um den Chip für eine definierte Anzahl von Microsekunden schlafen zu lassen.</p>
<p>Für die Arduino IDE nutze ich <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/Makuna/Task"
    title="Task" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Task&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>  von Makuna um nicht blockierend zu programmieren. Die Bibliothek kann auch die Steuerung des Tiefschlafs übernehmen, einfach mal die Doku lesen ;)</p>
]]></content:encoded>
    </item>
    <item>
      <title>Export einer Gerätedefinition aus FHEM</title>
      
      
      <link>https://wolf-u.li/export-einer-geraetedefinition-aus-fhem/</link>
      <pubDate>Sun, 05 Jun 2016 17:31:42 +0500</pubDate>
      <guid>https://wolf-u.li/export-einer-geraetedefinition-aus-fhem/</guid>
      <description>&lt;p&gt;Wenn man eine Gerätedefinition komplett mit allen Kommandos aus FHEM ziehen will, bekommt man meist gesagt, dass man doch &lt;code&gt;list [DEVICE]&lt;/code&gt; dazu verwenden kann. Was ja auch ganz nett ist, aber leider halt nicht mit &amp;ldquo;define&amp;hellip;&amp;rdquo; beginnt.&lt;/p&gt;
&lt;p&gt;Per Zufall bin ich heute über ein Kommando der configdb gestolpert, was genau das kann (bedingt natürlich, dass man configdb nutzt):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-perl&#34; data-lang=&#34;perl&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;configdb&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;list&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEVICE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Funktioniert super und endlich kann ich meine Devices einfach verbloggen :)&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Wenn man eine Gerätedefinition komplett mit allen Kommandos aus FHEM ziehen will, bekommt man meist gesagt, dass man doch <code>list [DEVICE]</code> dazu verwenden kann. Was ja auch ganz nett ist, aber leider halt nicht mit &ldquo;define&hellip;&rdquo; beginnt.</p>
<p>Per Zufall bin ich heute über ein Kommando der configdb gestolpert, was genau das kann (bedingt natürlich, dass man configdb nutzt):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">configdb</span> <span class="n">list</span> <span class="p">[</span><span class="n">DEVICE</span><span class="p">]</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Funktioniert super und endlich kann ich meine Devices einfach verbloggen :)</p>
]]></content:encoded>
    </item>
    <item>
      <title>Mein Batteriewächter für FHEM</title>
      
      
      <link>https://wolf-u.li/mein-batteriewaechter-fuer-fhem/</link>
      <pubDate>Sun, 05 Jun 2016 17:21:29 +0500</pubDate>
      <guid>https://wolf-u.li/mein-batteriewaechter-fuer-fhem/</guid>
      <description>&lt;p&gt;Ich wurde vor kurzem gefragt, wie denn eigentlich meine Batteriewarnung innerhalb von FHEM aussieht. Daher hier der Codeschnipsel. Ich verwende das msg modul für Benachrichtigungen, unten muss daher der Name des Empfängers unter Umständen angepasst werden. Es ist eine 300 Sekunden Zeit eingebaut, welche die Meldung &amp;ldquo;entprellt&amp;rdquo;, um sozusagen nicht hunderte Mails oder Pushes zu bekommen, wenn ein Schalter mal über 20 Sekunden langsam hoch dimmt und dabei &amp;ldquo;battery: low&amp;rdquo; sendet.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Ich wurde vor kurzem gefragt, wie denn eigentlich meine Batteriewarnung innerhalb von FHEM aussieht. Daher hier der Codeschnipsel. Ich verwende das msg modul für Benachrichtigungen, unten muss daher der Name des Empfängers unter Umständen angepasst werden. Es ist eine 300 Sekunden Zeit eingebaut, welche die Meldung &ldquo;entprellt&rdquo;, um sozusagen nicht hunderte Mails oder Pushes zu bekommen, wenn ein Schalter mal über 20 Sekunden langsam hoch dimmt und dabei &ldquo;battery: low&rdquo; sendet.</p>
<p>Der Aufbau der Namensdefinition folgt wie immer meiner <a href="/5530/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/"
    title="Namenskonvention" 
   >
  Namenskonvention</a>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">define</span> <span class="n">TEC_NFY_BATTERY_WARNING</span> <span class="n">notify</span> <span class="o">.*</span><span class="p">:[</span><span class="n">Bb</span><span class="p">]</span><span class="n">attery:</span><span class="o">.*</span> <span class="p">{</span><span class="o">\</span>
</span></span><span class="line"><span class="cl">    <span class="k">my</span> <span class="nv">$CURRENTTIME</span> <span class="o">=</span> <span class="nb">time</span><span class="p">();;</span><span class="o">\</span>
</span></span><span class="line"><span class="cl">    <span class="k">my</span> <span class="nv">$BOUNCETIME</span> <span class="o">=</span> <span class="mi">300</span><span class="p">;;</span><span class="o">\</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span><span class="p">(</span><span class="nb">lc</span><span class="p">(</span><span class="nv">$EVTPART1</span><span class="p">)</span> <span class="ow">ne</span> <span class="s">&#34;ok&#34;</span> <span class="ow">and</span> <span class="p">(</span><span class="nv">$CURRENTTIME</span><span class="o">-</span><span class="n">ReadingsVal</span><span class="p">(</span><span class="nv">$NAME</span><span class="p">,</span><span class="s">&#34;battery_warning&#34;</span><span class="p">,</span><span class="nv">$CURRENTTIME</span><span class="o">-</span><span class="nv">$BOUNCETIME</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="ow">gt</span> <span class="nv">$BOUNCETIME</span><span class="p">))</span> <span class="p">{</span><span class="o">\</span>
</span></span><span class="line"><span class="cl">        <span class="n">fhem</span> <span class="s">&#34;msg \@rr_Uli $NAME: $EVENT&#34;</span><span class="p">;;</span><span class="o">\</span>
</span></span><span class="line"><span class="cl">        <span class="n">fhem</span> <span class="s">&#34;setreading $NAME battery_warning $CURRENTTIME&#34;</span><span class="p">;;</span><span class="o">\</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span><span class="o">\</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Wie man sieht geht die Benachrichtigung via &ldquo;msg&rdquo; raus, was man dazu konfigurieren sollte. Ist aber generell empfehlenswert ;)</p>
]]></content:encoded>
    </item>
    <item>
      <title>FHEM: Fahrzeiten mit Verkehr mittels Google Maps API anzeigen</title>
      
      
      <link>https://wolf-u.li/fhem-fahrzeiten-mit-verkehr-mittels-google-maps-api-anzeigen/</link>
      <pubDate>Sat, 09 Jan 2016 13:29:55 +0900</pubDate>
      <guid>https://wolf-u.li/fhem-fahrzeiten-mit-verkehr-mittels-google-maps-api-anzeigen/</guid>
      <description>&lt;p&gt;Inspiriert von einem Artikel, den ich &lt;link rel=dns-prefetch href=//www.juergenstechnikwelt.de /&gt; &lt;a href=&#34;http://www.juergenstechnikwelt.de/smarthome-2/smarthome-mit-fhem-fahrzeiten-mit-verkehr-mittels-google-maps-api-anzeigen/&#34;
    title=&#34;hier&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  hier&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; gefunden habe, habe ich mir ebenfalls mal HTTPMOD mit der Google Maps Api angesehen. Die Grundzüge hat der Author schon erläutert - ich mache hier lediglich eine Vereinfachung und Update.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Inspiriert von einem Artikel, den ich <link rel=dns-prefetch href=//www.juergenstechnikwelt.de /> <a href="http://www.juergenstechnikwelt.de/smarthome-2/smarthome-mit-fhem-fahrzeiten-mit-verkehr-mittels-google-maps-api-anzeigen/"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> gefunden habe, habe ich mir ebenfalls mal HTTPMOD mit der Google Maps Api angesehen. Die Grundzüge hat der Author schon erläutert - ich mache hier lediglich eine Vereinfachung und Update.</p>
<p><strong>Achtung: Dieser Beitrag benötigt eine noch experimentelle Version von HTTPMOD aus diesem <link rel=dns-prefetch href=//forum.fhem.de /> <a href="http://forum.fhem.de/index.php/topic,45176.msg369686.html#msg369686#msg369686"
    title="Forumsthread" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Forumsthread&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></strong></p>
<p>Los gehts mit der Erstellung des API-Keys via <link rel=dns-prefetch href=//console.developers.google.com /> <a href="https://console.developers.google.com/start?hl=de"
    title="Google Developer Console" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Google Developer Console&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>. Dort auf &ldquo;APIs aktivieren und verwalten&rdquo;:
<a href="/upload/2016/01/5535-FHEM-MAPS-API-01.webp"
    title="" 
   >
  <img src="/upload/2016/01/5535-FHEM-MAPS-API-01.webp" alt="5535-FHEM-MAPS-API-01" loading="lazy"></a>
Dann ein neues Projekt erstellen und einen Projektnamen vergeben (z.B. <code>fhem-maps-api</code>):
<a href="/upload/2016/01/5535-FHEM-MAPS-API-02.webp"
    title="" 
   >
  <img src="/upload/2016/01/5535-FHEM-MAPS-API-02.webp" alt="5535-FHEM-MAPS-API-02" loading="lazy"></a>
Dann suche in der nächsten Übersicht nach &ldquo;<code>Google Maps Distance</code>&rdquo; und nimm die &ldquo;Google Maps Distance Matrix API&rdquo;:
<a href="/upload/2016/01/5535-FHEM-MAPS-API-03.webp"
    title="" 
   >
  <img src="/upload/2016/01/5535-FHEM-MAPS-API-03.webp" alt="5535-FHEM-MAPS-API-03" loading="lazy"></a>
Aktiviere diese:
<a href="/upload/2016/01/5535-FHEM-MAPS-API-04.webp"
    title="" 
   >
  <img src="/upload/2016/01/5535-FHEM-MAPS-API-04.webp" alt="5535-FHEM-MAPS-API-04" loading="lazy"></a>
Klicke dann links auf &ldquo;Zugangsdaten&rdquo;:
<a href="/upload/2016/01/5535-FHEM-MAPS-API-05.webp"
    title="" 
   >
  <img src="/upload/2016/01/5535-FHEM-MAPS-API-05.webp" alt="5535-FHEM-MAPS-API-05" loading="lazy"></a>
Wähle &ldquo;Browser-Schlüssel&rdquo;:
<a href="/upload/2016/01/5535-FHEM-MAPS-API-06.webp"
    title="" 
   >
  <img src="/upload/2016/01/5535-FHEM-MAPS-API-06.webp" alt="5535-FHEM-MAPS-API-06" loading="lazy"></a>
Nimm einen beliebigen Namen, welcher für dich Aussagekraft hat.
<a href="/upload/2016/01/5535-FHEM-MAPS-API-07.webp"
    title="" 
   >
  <img src="/upload/2016/01/5535-FHEM-MAPS-API-07.webp" alt="5535-FHEM-MAPS-API-07" loading="lazy"></a>
Nun ist dein API-Schlüssel erstellt. Diesen musst du kopieren.
<a href="/upload/2016/01/5535-FHEM-MAPS-API-08.webp"
    title="" 
   >
  <img src="/upload/2016/01/5535-FHEM-MAPS-API-08.webp" alt="5535-FHEM-MAPS-API-08" loading="lazy"></a></p>
<p>Dann gehts in FHEM. Im untenstehenden Code muss YOURAPIKEY gegen den soeben erstellten API Key getauscht werden, ebenso natürlich dein Abfahrtsort (ORIGIN) und ZIEL (DESTINATION). Um letztere herauszufinden, würde ich eine Google Maps Suche machen und dann das Feld jeweils herauskopieren. Leerzeichen sollten durch %20 ersetzt werden, also beispielsweise wird aus: <code>Robert-Schuman-Straße 8, 68519 Viernheim</code> dann <code>Robert-Schuman-Straße%208,%2068519%20Viernheim</code>. Die definition des Devices folgt wie immer meiner <a href="/5530/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/"
    title="Namenskonvention" 
   >
  Namenskonvention</a>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">define</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">HTTPMOD</span> <span class="n">https:</span><span class="sr">//m</span><span class="n">aps</span><span class="o">.</span><span class="n">googleapis</span><span class="o">.</span><span class="n">com</span><span class="sr">/maps/</span><span class="n">api</span><span class="sr">/distancematrix/</span><span class="n">json</span><span class="p">?</span><span class="n">origins</span><span class="o">=</span><span class="n">ORIGIN</span><span class="o">&amp;</span><span class="n">destinations</span><span class="o">=</span><span class="n">DESTINATION</span><span class="o">&amp;</span><span class="n">mode</span><span class="o">=</span><span class="n">driving</span><span class="o">&amp;</span><span class="n">language</span><span class="o">=</span><span class="n">de</span><span class="o">-</span><span class="n">DE</span><span class="o">&amp;</span><span class="n">departure_time</span><span class="o">=</span><span class="n">now</span><span class="o">&amp;</span><span class="n">key</span><span class="o">=</span><span class="n">YOURAPIKEY</span> <span class="mi">3600</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading01Name</span> <span class="n">standard</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading01JSON</span> <span class="n">rows_01_elements_01_duration_value</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading01Expr</span> <span class="n">strftime</span><span class="p">(</span><span class="s">&#34;%T&#34;</span><span class="p">,</span> <span class="nb">gmtime</span> <span class="nv">$val</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading02Name</span> <span class="n">traffic</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading02JSON</span> <span class="n">rows_01_elements_01_duration_in_traffic_value</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading02Expr</span> <span class="n">strftime</span><span class="p">(</span><span class="s">&#34;%T&#34;</span><span class="p">,</span> <span class="nb">gmtime</span> <span class="nv">$val</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading03Name</span> <span class="n">distance</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading03JSON</span> <span class="n">rows_01_elements_01_distance_value</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">reading03Expr</span> <span class="nb">sprintf</span><span class="p">(</span><span class="s">&#34;%.1f&#34;</span><span class="p">,</span> <span class="nv">$val</span><span class="o">/</span><span class="mi">1000</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">INF_HTM_FAHRZEIT_HOME_WORK</span> <span class="n">stateFormat</span> <span class="n">Normal:standard</span> <span class="n">Aktuell:traffic</span> <span class="p">(</span><span class="n">distance</span> <span class="n">km</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Vielen Dank nochmals an <link rel=dns-prefetch href=//www.juergenstechnikwelt.de /> <a href="http://www.juergenstechnikwelt.de/smarthome-2/smarthome-mit-fhem-fahrzeiten-mit-verkehr-mittels-google-maps-api-anzeigen/"
    title="Jürgen für die Idee" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Jürgen für die Idee&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> - sehr cool :)</p>
]]></content:encoded>
    </item>
    <item>
      <title>FHEM: Meine Namenskonvention als Starthilfe für Einsteiger</title>
      
      
      <link>https://wolf-u.li/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/</link>
      <pubDate>Wed, 06 Jan 2016 10:12:57 +0600</pubDate>
      <guid>https://wolf-u.li/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/</guid>
      <description>&lt;p&gt;Als ich mit FHEM angefangen hatte, war mir nicht klar, wie ich eigentlich meine Geräte benennen darf oder in welche Fallen man tappen kann. Die nachfolgende Namenskonvention ist daher lediglich als eine Sammlung von Ideen, welches sich bei mir über die Jahre angesammelt haben, zu verstehen. Ich rate dazu, sich darüber mal anfangs Gedanken zu machen, denn die Umbenennung von Geräten mittels &amp;ldquo;rename&amp;rdquo; ist zwar möglich, aber sehr schmerzhaft mitunter.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Als ich mit FHEM angefangen hatte, war mir nicht klar, wie ich eigentlich meine Geräte benennen darf oder in welche Fallen man tappen kann. Die nachfolgende Namenskonvention ist daher lediglich als eine Sammlung von Ideen, welches sich bei mir über die Jahre angesammelt haben, zu verstehen. Ich rate dazu, sich darüber mal anfangs Gedanken zu machen, denn die Umbenennung von Geräten mittels &ldquo;rename&rdquo; ist zwar möglich, aber sehr schmerzhaft mitunter.</p>
<h2 id="großkleinschreibung-von-gerätenamen">Groß/Kleinschreibung von Gerätenamen</h2>
<p>Ich habe mich dazu entschlossen, alle Geräte einfach mit Großbuchstaben zu benennen, sodass ich keine Probleme dadurch bekommen kann. Beispielsweise ist das Device ULI ein anderes als Uli und dieses wiederrum ein anderes als uli. Genau diese Verwirrung sorgt dann für lustige Probleme - eine Sache, die ich nicht mehr haben wollte.</p>
<h2 id="aufbau-von-gerätenamen">Aufbau von Gerätenamen</h2>
<p>Das Problem mit Gerätenamen ist, dass diese nur einmal vorkommen können was daher heisst: Ich kann nicht in jedem Raum ein Gerät namens &ldquo;Thermostat&rdquo; haben. Daher muss eine Unterscheidung her. Ich bin dazu übergegangen, den Aufenthaltsort des Geräts mit in den Gerätenamen aufzunehmen. Zudem nehme ich den Typ des Geräts mit auf - dies verhindert, dass man den Watchdog für das Fenster genauso benennt wie das Fenster selbst.</p>
<h3 id="raumname-im-gerätenamen">Raumname im Gerätenamen</h3>
<p>Für die Räume will man wohl kaum den vollen Namen im Gerätenamen haben (dazu dient ja nun auch das Attribut &ldquo;room&rdquo;), da es nur um eine Unterscheidung geht. Mein Vorschlag ist, die Raumnamen auf drei Zeichen zu begrenzen und daher die Räume beispielsweise so zu benennen:</p>
<ul>
<li>BA1: Das erste Bad</li>
<li>BA2: Das zweite Bad</li>
<li>BAL: Balkon</li>
<li>WOH: Wohnzimmer</li>
<li>KIN: Kinderzimmer</li>
<li>KUE: Küche</li>
<li>GAN: Gang</li>
<li>BUE: Büro</li>
<li>TRE: Treppenhaus</li>
<li>TEC: Technik</li>
<li>INF: Informationen</li>
</ul>
<h3 id="etagennamen-im-gerätenamen">Etagennamen im Gerätenamen</h3>
<p>Wenn man im beabsichtigten Zielobjekt der Heimautomation mehrere Stockwerke abdeckt, so würde ich den Raumanteil des Gerätenamens zusätzlich mit einer Zahl prefixen, also beispielsweise <em>1BAL</em> für den Balkon im ersten Stock oder <em>KWAS</em> die Waschküche im Keller.</p>
<h3 id="gerätetyp-im-gerätenamen">Gerätetyp im Gerätenamen</h3>
<p>Wenn man für einen bestimmten Anwendungsfall eine Automatisierung aufbaut, so hat man meist mehrere Geräte die zusammen spielen. Um nun kein Namenschaos auszulösen, bin ich dazu übergegangen, die Gerätetypen in den Namen aufzunehmen. Einige Typen sind dabei aber relativ häufig verwendet und bekommen daher bei mir eine Abkürzung, welche zwischen 2 und 4 Zeichen lang ist:</p>
<ul>
<li>DMY: dummy</li>
<li>HTM: HTTPMOD</li>
<li>HM: Homematic</li>
<li>NFY: notify</li>
<li>RGRP: readingsGroup</li>
<li>RPXY: readingsproxy</li>
<li>WADG: watchdog</li>
</ul>
<p>Andere, welche ich entweder nur einmal verwende (z.B. KS300) oder die schon weniger als 5 Zeichen haben, bleiben einfach so wie diese sind (z.B. MAX, FS20 oder DOIF).</p>
<h3 id="unterscheidung-von-geräten">Unterscheidung von Geräten</h3>
<p>Ich unterschiede gleiche Geräte innerhalb eines Raumes mit einem Suffix. Habe ich beispielsweise drei Thermostaten im gleichem Raum so benenne ich diese zwar mit THERMOSTAT als Gerätename, hänge jedoch das Suffix NORD, WEST ODER OST mit dran. Oder habe ich mehrere Funksteckdosen innerhalb eines Raumes, so benenne ich diese sprechend. Beispielsweise ist die des Heimkinos, dann eben STECKDOSE_HEIMKINO.</p>
<h2 id="vorstellung-der-namenskonvention">Vorstellung der Namenskonvention</h2>
<p>So sieht also dann die Konvention aus:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">&lt;RAUM&gt;_&lt;GERÄTETYP&gt;_&lt;GERÄTENAME&gt;
</span></span></code></pre></td></tr></table>
</div>
</div><p>Verschiedene Beispiele:</p>
<ul>
<li>BA1_MAX_THERMOSTAT (Thermostat im Bad)</li>
<li>BAL_KS300_WETTERSTATION (Wetterstation auf dem Balkon)</li>
<li>WOH_HM_STECKDOSE_HEIMKINO (Steckdose im Wohnzimmer für das Heimkino)</li>
<li>WOH_HM_STECKDOSE_ECKLAMPE (Steckdose im Wohnzimmer für die Ecklampe)</li>
</ul>
<h2 id="ein-achtung-noch">Ein &ldquo;Achtung&rdquo; noch</h2>
<p>Bindet man weitere Oberflächen usw. an, so muss man sich im klaren sein, dass bei einer Änderung des Gerätenamens man diese unter Umständen ebenso ändern muss (Beispielsweise wenn man die MAX-Thermostate gegen HomeMatic tauscht). Hier muss man dann eben einen TradeOff hinnehmen oder Lösungen wie &ldquo;<link rel=dns-prefetch href=//fhem.de /> <a href="http://fhem.de/commandref.html#structure#structure"
    title="structure" 
     target="_blank" rel="nofollow noopener noreferrer" >
  structure&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>&rdquo; oder &ldquo;<link rel=dns-prefetch href=//fhem.de /> <a href="http://fhem.de/commandref.html#readingsProxy#readingsProxy"
    title="readingsProxy" 
     target="_blank" rel="nofollow noopener noreferrer" >
  readingsProxy&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>&rdquo; verwenden.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Anbindung des Fonera Gramofon an FHEM (Spotify Connect Empfäger)</title>
      
      
      <link>https://wolf-u.li/anbindung-des-fonera-gramofon-an-fhem-spotify-connect-empfaenger/</link>
      <pubDate>Wed, 06 Jan 2016 11:19:04 +0600</pubDate>
      <guid>https://wolf-u.li/anbindung-des-fonera-gramofon-an-fhem-spotify-connect-empfaenger/</guid>
      <description>&lt;p&gt;Seit einiger Zeit besitze ich mehrere Fonera Gramofon als Spotify Connect Empfänger. Was leider an den Playern etwas nervig ist, dass diese keine Lautsprecher besitzen und somit am Kopfhörerausgang aktive Verstärkung brauchen. Dazu schalte ich die Lautsprecher via Funksteckdose ein. Wenn man also nun via Spotify Connect dann Musik auf den Player schickt, muss man zusätzlich die Lautsprecher einschalten. Via FHEM wollte ich das nun automatisieren - was mir nun mittels des Moduls HTTPMOD gelungen ist.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Seit einiger Zeit besitze ich mehrere Fonera Gramofon als Spotify Connect Empfänger. Was leider an den Playern etwas nervig ist, dass diese keine Lautsprecher besitzen und somit am Kopfhörerausgang aktive Verstärkung brauchen. Dazu schalte ich die Lautsprecher via Funksteckdose ein. Wenn man also nun via Spotify Connect dann Musik auf den Player schickt, muss man zusätzlich die Lautsprecher einschalten. Via FHEM wollte ich das nun automatisieren - was mir nun mittels des Moduls HTTPMOD gelungen ist.</p>
<p>Hier ist die genutzte Definition nach meiner <a href="/5530/fhem-meine-namenskonvention-als-starthilfe-fuer-einsteiger/"
    title="Device Namenskonvention" 
   >
  Device Namenskonvention</a>. Folgendes ist zu beachten:</p>
<ul>
<li>In der ersten Zeile ist die IP auszutauschen (wahlweise kann man dort den DNS-Namen eintragen)</li>
<li>Per default ist auf dem gramofon das Passwort &ldquo;admin&rdquo; gesetzt, dies muss, sofern es geändert wurde, in der zweiten Zeile am Ende geändert werden.</li>
<li>In der untenstehenden Definition wird der Gramofon alle 30 Sekunden nach dem aktuellen Status gefragt - dies kann man ebenso in der ersten Zeile ändern</li>
<li>Weiterhin wird jede Stunde der Spotify-Name und der DNS-Name abgefragt</li>
<li>Ist der Abruf mehr als 5 Minuten nicht erfolgt, so wechseln die Readings für color (Farbe der LED), mode und status (abspielen oder WifiStatus bei gestoppter Musik) auf &ldquo;offline&rdquo;</li>
<li>Via set kann man den Gramofon rebooten</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-perl" data-lang="perl"><span class="line"><span class="cl"><span class="n">define</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">HTTPMOD</span> <span class="n">http:</span><span class="sr">//</span><span class="mf">192.168.1.2</span><span class="sr">/api/</span><span class="nv">$sid</span> <span class="mi">30</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">sid1Data</span> <span class="p">{</span><span class="s">&#34;jsonrpc&#34;</span><span class="p">:</span><span class="s">&#34;2.0&#34;</span><span class="p">,</span><span class="s">&#34;id&#34;</span><span class="p">:</span><span class="mi">63</span><span class="p">,</span><span class="s">&#34;method&#34;</span><span class="p">:</span><span class="s">&#34;call&#34;</span><span class="p">,</span><span class="s">&#34;params&#34;</span><span class="p">:[</span><span class="s">&#34;session&#34;</span><span class="p">,</span><span class="s">&#34;login&#34;</span><span class="p">,{</span><span class="s">&#34;username&#34;</span><span class="p">:</span><span class="s">&#34;admin&#34;</span><span class="p">,</span><span class="s">&#34;password&#34;</span><span class="p">:</span><span class="s">&#34;admin&#34;</span> <span class="p">}]}</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">stateFormat</span> <span class="n">status</span> <span class="p">(</span><span class="n">color</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">enableControlSet</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">reAuthRegex</span> <span class="o">-</span><span class="mi">32002</span><span class="o">|.*</span><span class="n">Access</span> <span class="n">Denied</span><span class="o">.*|.*</span><span class="n">Bad</span> <span class="n">Request</span><span class="o">.*</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">sidHeader1</span> <span class="n">Content</span><span class="o">-</span><span class="n">Type:</span> <span class="n">application</span><span class="o">/</span><span class="n">x</span><span class="o">-</span><span class="n">www</span><span class="o">-</span><span class="n">form</span><span class="o">-</span><span class="n">urlencoded</span><span class="p">;;</span> <span class="n">charset</span><span class="o">=</span><span class="n">UTF</span><span class="o">-</span><span class="mi">8</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">sidHeader2</span> <span class="n">Accept:</span> <span class="o">*/*</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">sidHeader3</span> <span class="n">X</span><span class="o">-</span><span class="n">Requested</span><span class="o">-</span><span class="n">With:</span> <span class="n">XMLHttpRequest</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">sidHeader4</span> <span class="n">Referer:</span> <span class="n">http:</span><span class="sr">//</span><span class="nv">%%internal_host%%</span><span class="err">/</span>
</span></span><span class="line"><span class="cl"><span class="nv">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">sid1URL</span> <span class="n">http:</span><span class="sr">//</span><span class="nv">%%internal_host%%</span><span class="err">/</span><span class="nv">api</span><span class="o">/</span><span class="mo">00000000000000000000000000000000</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">sid1Data</span> <span class="p">{</span><span class="s">&#34;jsonrpc&#34;</span><span class="p">:</span><span class="s">&#34;2.0&#34;</span><span class="p">,</span><span class="s">&#34;id&#34;</span><span class="p">:</span><span class="mi">63</span><span class="p">,</span><span class="s">&#34;method&#34;</span><span class="p">:</span><span class="s">&#34;call&#34;</span><span class="p">,</span><span class="s">&#34;params&#34;</span><span class="p">:[</span><span class="s">&#34;session&#34;</span><span class="p">,</span><span class="s">&#34;login&#34;</span><span class="p">,{</span><span class="s">&#34;username&#34;</span><span class="p">:</span><span class="s">&#34;admin&#34;</span><span class="p">,</span><span class="s">&#34;password&#34;</span><span class="p">:</span><span class="s">&#34;admin&#34;</span> <span class="p">}]}</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">sidIDRegex</span> <span class="n">sid</span><span class="s">&#34;:[ \t]+&#34;</span><span class="p">([</span><span class="o">\</span><span class="n">w</span><span class="o">\.</span><span class="p">]</span><span class="o">+</span><span class="p">)</span><span class="s">&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON getURL http://%%internal_host%%/api/$sid
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON getHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON getHeader2 Accept: */*
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON getHeader3 X-Requested-With: XMLHttpRequest
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON getHeader4 Referer: http://%%internal_host%%/
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON requestHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON requestHeader2 Accept: */*
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON requestHeader3 X-Requested-With: XMLHttpRequest
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON requestHeader4 Referer: http://%%internal_host%%/
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON requestData {&#34;</span><span class="n">jsonrpc</span><span class="s">&#34;:&#34;</span><span class="mf">2.0</span><span class="s">&#34;,&#34;</span><span class="n">id</span><span class="s">&#34;:81,&#34;</span><span class="n">method</span><span class="s">&#34;:&#34;</span><span class="n">call</span><span class="s">&#34;,&#34;</span><span class="n">params</span><span class="s">&#34;:[&#34;</span><span class="n">ledd</span><span class="s">&#34;,&#34;</span><span class="n">get</span><span class="s">&#34;,{&#34;</span><span class="n">device_status</span><span class="s">&#34;:true}]}
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON replacement01Mode internal
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON replacement01Regex %%internal_host%%
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON replacement01Value host
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading01Name color
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading01JSON result_02_color
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading01MaxAge 300
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading01MaxAgeReplacement offline
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading01MaxAgeReplacementMode text
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading02Name mode
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading02JSON result_02_mode
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading02MaxAge 300
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading02MaxAgeReplacement offline
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading02MaxAgeReplacementMode text
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading03Name status
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading03JSON result_02_name
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading03MaxAge 300
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading03MaxAgeReplacement offline
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON reading03MaxAgeReplacementMode text
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get01Name spotifyname
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get01Data {&#34;</span><span class="n">jsonrpc</span><span class="s">&#34;:&#34;</span><span class="mf">2.0</span><span class="s">&#34;,&#34;</span><span class="n">id</span><span class="s">&#34;:6,&#34;</span><span class="n">method</span><span class="s">&#34;:&#34;</span><span class="n">call</span><span class="s">&#34;,&#34;</span><span class="n">params</span><span class="s">&#34;:[&#34;</span><span class="n">anet</span><span class="s">&#34;,&#34;</span><span class="n">get_gramofonname</span><span class="s">&#34;,{}]}
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get01JSON result_02_spotifyname
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get01Poll 1
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get01PollDelay 3600
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get02Name mdnsname
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get02Data {&#34;</span><span class="n">jsonrpc</span><span class="s">&#34;:&#34;</span><span class="mf">2.0</span><span class="s">&#34;,&#34;</span><span class="n">id</span><span class="s">&#34;:6,&#34;</span><span class="n">method</span><span class="s">&#34;:&#34;</span><span class="n">call</span><span class="s">&#34;,&#34;</span><span class="n">params</span><span class="s">&#34;:[&#34;</span><span class="n">anet</span><span class="s">&#34;,&#34;</span><span class="n">get_gramofonname</span><span class="s">&#34;,{}]}
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get02JSON result_02_mdnsname
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get02Poll 1
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON get02PollDelay 3600
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON set01Name reboot
</span></span></span><span class="line"><span class="cl"><span class="s">attr KUE_HTM_GRAMOFON set01Data {&#34;</span><span class="n">jsonrpc</span><span class="s">&#34;:&#34;</span><span class="mf">2.0</span><span class="s">&#34;,&#34;</span><span class="n">id</span><span class="s">&#34;:14,&#34;</span><span class="n">method</span><span class="s">&#34;:&#34;</span><span class="n">call</span><span class="s">&#34;,&#34;</span><span class="n">params</span><span class="s">&#34;:[&#34;</span><span class="n">mfgd</span><span class="s">&#34;,&#34;</span><span class="n">reboot</span><span class="err">&#34;</span><span class="p">,{}]}</span>
</span></span><span class="line"><span class="cl"><span class="n">attr</span> <span class="n">KUE_HTM_GRAMOFON</span> <span class="n">set01NoArg</span>
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
  </channel>
</rss>
