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

<channel>
	<title>AF-Blog</title>
	<atom:link href="https://af-blog.de/feed/" rel="self" type="application/rss+xml" />
	<link>https://af-blog.de</link>
	<description>Digitale Welt</description>
	<lastBuildDate>Mon, 13 Dec 2021 08:15:43 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.1</generator>
	<item>
		<title>Apple Magic Mouse 2 unter Windows 10</title>
		<link>https://af-blog.de/2021/12/13/apple-magic-mouse-2-unter-windows-10/</link>
					<comments>https://af-blog.de/2021/12/13/apple-magic-mouse-2-unter-windows-10/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Mon, 13 Dec 2021 08:15:42 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[magic]]></category>
		<guid isPermaLink="false">https://af-blog.de/?p=1713</guid>

					<description><![CDATA[Die Apple Magic Mouse2 lässt sich relativ einfach Windows 10 einrichten. Damit aber auch mit der Magic Mouse gescrollt werden kann, ist noch etwas mehr Aufwand notwendig. Aber keine Angst, es ist einfach. Apple Magic Mouse 2 einrichten Der einfachste Weg, die Apple Magic Mouse 2 zu installieren, ist die Einstellungen unter Windows zu öffnen. &#8230; <a href="https://af-blog.de/2021/12/13/apple-magic-mouse-2-unter-windows-10/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[
<p>Die Apple Magic Mouse2 lässt sich relativ einfach Windows 10 einrichten. Damit aber auch mit der Magic Mouse gescrollt werden kann, ist noch etwas mehr Aufwand notwendig.</p>



<p>Aber keine Angst, es ist einfach.</p>



<span id="more-1713"></span>



<h2>Apple Magic Mouse 2 einrichten</h2>



<p>Der einfachste Weg, die Apple Magic Mouse 2 zu installieren, ist die Einstellungen unter Windows zu öffnen.</p>



<p>Dort auf Bluetooth- &amp; andere Geräte zu gehen und mit dem Plus Symbol nach Bluetooth Geräten zu sichen.</p>



<p>Die Magic Mouse wird, wenn diese eingeschalten ist, gefunden und installiert.</p>



<figure class="wp-block-image size-full"><img width="743" height="246" src="https://af-blog.de/wp-content/uploads/2021/12/grafik.png" alt="" class="wp-image-1714" srcset="https://af-blog.de/wp-content/uploads/2021/12/grafik.png 743w, https://af-blog.de/wp-content/uploads/2021/12/grafik-300x99.png 300w" sizes="(max-width: 743px) 100vw, 743px" /></figure>



<p>Jedoch fehlt über diesen Schritt die Scrollfunktion.</p>



<h2>Apple Magic Mouse 2 unter Windows 10 mit Scrollfunktion einrichten</h2>



<p>Um die Scrollfunktion der Magic Mouse 2 unter Windows 10 zu benutzen, müssen noch Bootcamp Treiber installiert werden.</p>



<p>Das klingt komplizierter als es ist. Dazu gibt es auf Github ein kleines Projekt mit einer EXE die geladen werden muss.</p>



<p>Unter <a href="https://github.com/timsutton/brigadier/releases" target="_blank" rel="noreferrer noopener">https://github.com/timsutton/brigadier/releases</a> findet Ihr das aktuelle Release von Brigadier. Dazu einfach die EXE downloaden. Ein kurzer Viren Check mit <a href="https://www.virustotal.com/gui/home/upload" target="_blank" rel="noreferrer noopener">https://www.virustotal.com/gui/home/upload</a> kann ja nicht Schaden. Bis zum erstellen des Artikel war die Datei Virenfrei.</p>



<p>Die exe Datei lädt, abhängig vom Mac Modell die richtig Bootcamp Version. Richtig, abhängig vom Mac Modell. Doch das ist kein Problem. Mit dem folgenden Aufruf, wird Bootcamp auch auf Windows Rechnern geladen.</p>



<p><code>brigadier.exe -m MacBookPro16,1</code></p>



<p>Damit wird Bootcamp auf Euren Windows Rechner geladen. </p>



<p>Nun in den Ordner &#8222;BootCamp\Drivers\Apple\AppleWirelessMouse&#8220; wechseln.</p>



<p>Die Datei &#8222;AppleWirelessMouse.inf&#8220; suchen und mit rechter Maustaste &#8222;Installieren&#8220;.</p>



<p>Jetzt noch einmal Apple Magic Mouse 2 ausschalten und wieder einschalten.</p>



<p>Die Scrollfunktion der Apple Magic Mouse 2 sollte nun funktionieren.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2021/12/13/apple-magic-mouse-2-unter-windows-10/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi &#8211; täglicher Neustart</title>
		<link>https://af-blog.de/2021/11/01/raspberry-pi-taeglicher-neustart/</link>
					<comments>https://af-blog.de/2021/11/01/raspberry-pi-taeglicher-neustart/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Mon, 01 Nov 2021 12:52:14 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[Pi]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[reboot]]></category>
		<guid isPermaLink="false">https://af-blog.de/?p=1701</guid>

					<description><![CDATA[Manchmal kann es notwendig sein, dass ein Raspberry täglich neu gestartet werden soll. In meinem Fall ist es so, dass auf meinem Pi ein Pihole läuft. Ab und an hängt sich Pihole auf. Meistens in der Nacht von Freitag auf Samstag. Ist das der Fall, starte ich den Raspberry einfach neu. Das manuelle Neustarten ist &#8230; <a href="https://af-blog.de/2021/11/01/raspberry-pi-taeglicher-neustart/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[
<p>Manchmal kann es notwendig sein, dass ein Raspberry täglich neu gestartet werden soll. In meinem Fall ist es so, dass auf meinem Pi ein Pihole läuft. Ab und an hängt sich Pihole auf. Meistens in der Nacht von Freitag auf Samstag. Ist das der Fall, starte ich den Raspberry einfach neu.</p>



<p>Das manuelle Neustarten ist mir zu umständlich. Also habe ich einen automatischen Neustart vom Raspberry mittels Crontab eingerichtet.</p>



<span id="more-1701"></span>



<h2>Crontab konfigurieren</h2>



<p>Um Crontab einzurichten, auf den Pi mittels SSH verbinden oder Ihr seid direkt drauf.<br>Anschliend wird die Crontab zum bearbeiten geöffnet.</p>


<pre class="wp-block-code"><div><code class="hljs">sudo su
sudo crontab -e</code></div></pre>


<p>Beim ersten Start wird gefragt welchen Editor man nutzen möchte. Ich nutze den Editor nano. Am Ende der Datei nun folgendes Beispiel einfügen.</p>


<pre class="wp-block-code"><div><code class="hljs">00 6 * * 6 sudo reboot</code></div></pre>


<p>Diese Zeile bewirkt, dass der Pi am 6. Tag der Woche, also Samstag, um 6 Uhr früh gebootet wird.</p>



<h2>Crontab Befehl erklärt</h2>



<p>Die Crontab Anweisung besteht aus im Prinzip aus 6 Teilen.</p>


<pre class="wp-block-code" aria-describedby="shcb-language-1" data-shcb-language-name="HTML, XML" data-shcb-language-slug="xml"><div><code class="hljs language-xml">* * * * * <span class="hljs-tag">&lt;<span class="hljs-name">Befehl</span>&gt;</span></code></div><small class="shcb-language" id="shcb-language-1"><span class="shcb-language__label">Code-Sprache:</span> <span class="shcb-language__name">HTML, XML</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">xml</span><span class="shcb-language__paren">)</span></small></pre>


<p>Die Sterne stehen für Zeitangaben. Steht ein Stern, ist keine Zeit hinterlegt.</p>



<p>Stern 1: Minuten von 0-60<br>Stern 2: Stunden von 0-24<br>Stern 3: alle Tage von 1-31 eines Monats<br>Stern 4: alle Tage bestimmter Monate von 1-12<br>Stern 5: alle Wochentage von 0 – 7, 0 und 7 stehen für Sonntag</p>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2021/11/01/raspberry-pi-taeglicher-neustart/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ioBroker &#8211; Räume / Funktionen von Datenpunkten bestimmen</title>
		<link>https://af-blog.de/2021/07/05/iobroker-raeume-funktionen-von-datenpunkten-bestimmen/</link>
					<comments>https://af-blog.de/2021/07/05/iobroker-raeume-funktionen-von-datenpunkten-bestimmen/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Mon, 05 Jul 2021 05:55:07 +0000</pubDate>
				<category><![CDATA[ioBroker]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[datenpunkt]]></category>
		<category><![CDATA[funktionen]]></category>
		<category><![CDATA[iobroker]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[räume]]></category>
		<guid isPermaLink="false">https://blog.af-network.de/?p=1675</guid>

					<description><![CDATA[Mit dem folgendem JavaScript lässt sich ermitteln welcher Raum einem Datenpunkt DP zugeordnet ist. oder auch Das funktioniert natürlich auch mit Funktionen die einem Datenpunkt zugeordnet werden können. oder auch Das ganze klappt aber nur so lange, so lange ein Datenpunkt lediglich ein Raum / eine Funktion hat. Sind mehrere Räume / Funktionen zugeordnet ist &#8230; <a href="https://af-blog.de/2021/07/05/iobroker-raeume-funktionen-von-datenpunkten-bestimmen/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[
<p>Mit dem folgendem JavaScript lässt sich ermitteln welcher Raum einem Datenpunkt DP zugeordnet ist.</p>


<pre class="wp-block-code" aria-describedby="shcb-language-2" data-shcb-language-name="JavaScript" data-shcb-language-slug="javascript"><div><code lang="javascript" class="hljs language-javascript language-javascript"><span class="hljs-keyword">let</span> room = getObject(ObjectID, <span class="hljs-string">'rooms'</span>).enumNames[<span class="hljs-number">0</span>];
<span class="hljs-keyword">return</span> room.de;</code></div><small class="shcb-language" id="shcb-language-2"><span class="shcb-language__label">Code-Sprache:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>


<p>oder auch</p>



<span id="more-1688"></span>


<pre class="wp-block-code" aria-describedby="shcb-language-3" data-shcb-language-name="JavaScript" data-shcb-language-slug="javascript"><div><code lang="javascript" class="hljs language-javascript language-javascript"><span class="hljs-keyword">let</span> room = getObject(ObjectID, <span class="hljs-string">'rooms'</span>).enumNames[<span class="hljs-number">0</span>];
<span class="hljs-keyword">return</span> room;</code></div><small class="shcb-language" id="shcb-language-3"><span class="shcb-language__label">Code-Sprache:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>


<p>Das funktioniert natürlich auch mit Funktionen die einem Datenpunkt zugeordnet werden können.</p>


<pre class="wp-block-code" aria-describedby="shcb-language-4" data-shcb-language-name="JavaScript" data-shcb-language-slug="javascript"><div><code lang="javascript" class="hljs language-javascript language-javascript"><span class="hljs-keyword">let</span> func = getObject(ObjectID, <span class="hljs-string">'functions'</span>).enumNames[<span class="hljs-number">0</span>];
<span class="hljs-keyword">return</span> func.de;</code></div><small class="shcb-language" id="shcb-language-4"><span class="shcb-language__label">Code-Sprache:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>


<p>oder auch</p>


<pre class="wp-block-code" aria-describedby="shcb-language-5" data-shcb-language-name="JavaScript" data-shcb-language-slug="javascript"><div><code lang="javascript" class="hljs language-javascript language-javascript"><span class="hljs-keyword">let</span> func = getObject(ObjectID, <span class="hljs-string">'functions'</span>).enumNames[<span class="hljs-number">0</span>];
<span class="hljs-keyword">return</span> func;</code></div><small class="shcb-language" id="shcb-language-5"><span class="shcb-language__label">Code-Sprache:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>


<p>Das ganze klappt aber nur so lange, so lange ein Datenpunkt lediglich ein Raum / eine Funktion hat.</p>



<p>Sind mehrere Räume / Funktionen zugeordnet ist ein klein wenig mehr JavaScript zum ermitteln der Räume / Funktionen eines ioBroker Datenpunktes notwendig.</p>


<pre class="wp-block-code" aria-describedby="shcb-language-6" data-shcb-language-name="JavaScript" data-shcb-language-slug="javascript"><div><code lang="javascript" class="hljs language-javascript language-javascript"><span class="hljs-keyword">let</span> func = getObject(ObjectID, <span class="hljs-string">'functions'</span>).enumNames;
<span class="hljs-keyword">let</span> funcGetName = <span class="hljs-string">''</span>;

<span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> key <span class="hljs-keyword">in</span> func) {
    funcGetName = <span class="hljs-string">''</span>;

    <span class="hljs-keyword">if</span> (<span class="hljs-keyword">typeof</span> func[key] == <span class="hljs-string">'object'</span>) {
        funcGetName = func[key].de;
    } <span class="hljs-keyword">else</span> {
        funcGetName = func[key];
    }
    
    log(<span class="hljs-string">'Funktion: '</span> + funcGetName);
}</code></div><small class="shcb-language" id="shcb-language-6"><span class="shcb-language__label">Code-Sprache:</span> <span class="shcb-language__name">JavaScript</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">javascript</span><span class="shcb-language__paren">)</span></small></pre>]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2021/07/05/iobroker-raeume-funktionen-von-datenpunkten-bestimmen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Proxmox – Time Machine Backup auf LXC Server erstellen</title>
		<link>https://af-blog.de/2021/02/07/proxmox-time-machine-backup-auf-lxc-server-erstellen/</link>
					<comments>https://af-blog.de/2021/02/07/proxmox-time-machine-backup-auf-lxc-server-erstellen/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Sun, 07 Feb 2021 18:54:56 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[VM]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[lxc]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[timemachine]]></category>
		<guid isPermaLink="false">https://blog.af-network.de/?p=1656</guid>

					<description><![CDATA[Hat man einen Proxmox Server zu Hause laufen, ist dieser in der Regel 24 Stunden, 7 Tage in Betrieb. Was liegt dann näher, ein Time Machine Backup Server unter Proxmox einzurichten. Dies ist auch relativ schnell erledigt. File Server erstellen Wenn Ihr noch keinen File Server unter Proxmox erstellt habt, legt einen neuen an. Ansonsten &#8230; <a href="https://af-blog.de/2021/02/07/proxmox-time-machine-backup-auf-lxc-server-erstellen/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Hat man einen Proxmox Server zu Hause laufen, ist dieser in der Regel 24 Stunden, 7 Tage in Betrieb. Was liegt dann näher, ein Time Machine Backup Server unter Proxmox einzurichten.</p>
<p>Dies ist auch relativ schnell erledigt.</p>
<p><span id="more-1656"></span></p>
<h2>File Server erstellen</h2>
<p>Wenn Ihr noch keinen File Server unter Proxmox erstellt habt, legt einen neuen an. Ansonsten könnt Ihr diesen Schritt überspringen.</p>
<p>Ich erstelle hierzu einen LXC Container.</p>
<p><img class="size-full wp-image-1657 aligncenter" src="http://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen.png" alt="" width="1412" height="490" srcset="https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen.png 1412w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen-300x104.png 300w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen-1024x355.png 1024w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen-768x267.png 768w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen-1080x375.png 1080w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen-1280x444.png 1280w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen-980x340.png 980w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-erstellen-480x167.png 480w" sizes="(max-width: 1412px) 100vw, 1412px" /></p>
<p>Als Basis dient in meinem Fall Debian Buster.</p>
<p><img class="size-full wp-image-1658 aligncenter" src="http://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl.png" alt="" width="1412" height="490" srcset="https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl.png 1412w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl-300x104.png 300w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl-1024x355.png 1024w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl-768x267.png 768w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl-1080x375.png 1080w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl-1280x444.png 1280w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl-980x340.png 980w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc.betriebssystem-auswahl-480x167.png 480w" sizes="(max-width: 1412px) 100vw, 1412px" /></p>
<p>8GB Festplatte mit einer CPU und 512 MB RAM sollten reichen.</p>
<p><img class="size-full wp-image-1659 aligncenter" src="http://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse.png" alt="" width="1412" height="490" srcset="https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse.png 1412w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse-300x104.png 300w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse-1024x355.png 1024w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse-768x267.png 768w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse-1080x375.png 1080w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse-1280x444.png 1280w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse-980x340.png 980w, https://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-speichergroesse-480x167.png 480w" sizes="(max-width: 1412px) 100vw, 1412px" /></p>
<p><img class="size-full wp-image-1660 aligncenter" src="http://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-cpu-auswahl.png" alt="" width="1412" height="336" /></p>
<p><img class="size-full wp-image-1661 aligncenter" src="http://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-ram-auswahl.png" alt="" width="1412" height="302" /></p>
<h2>Software installieren</h2>
<p>Nach dem der LXC Container erstellt ist, kommt das obligatorische:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">apt update &amp;&amp; apt dist-upgrade -y</pre>
<p>Anschließend installieren wir die Software Netatalk.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">apt install netatalk</pre>
<h2>Server konfigurieren</h2>
<p>Ist das Paket installiert müssen wir den Server ein wenig konfigurieren. Als erstes legen wir einen Zielordner für das Time Machine Backup an.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">mkdir /data/timemachine</pre>
<p>Nun noch einen Benutzer anlegen mit dem wir uns später per Time Machine verbinden und dem Nutzer die Rechte geben.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">adduser --home /data/timemachine timemachine
chown -R timemachine:timemachine /data/timemachine</pre>
<h2>Netatalk konfigurieren</h2>
<p>Fast geschafft. Nun muss noch Netatalk konfiguriert werden. Dazu die Konfigurationsdatei von Netatalk öffnen.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">nano /etc/netatalk/afp.conf</pre>
<p>Im Abschnitt [Global] folgende Zeile hinzufügen.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">mimicmodel = TimeCapsule6,106</pre>
<p>Danach die Konfiguration für Time Machine.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">[TimeCapsule]
time machine = yes
path = /data/timemachine
vol size limit = 1000000
valid users = timemachine</pre>
<h2>ZFS Laufwerk in LXC einbinden</h2>
<p>Wer genug Speicher auf seinem Server hat, kann ggf. die Festplatte vergrößern.</p>
<p>Ich habe ein ZFS Laufwerk auf /data/timemachine gemountet.</p>
<p><img class="size-full wp-image-1663 aligncenter" src="http://af-blog.de/wp-content/uploads/2021/02/proxmox-lxc-zfs-einbinden.png" alt="" width="1228" height="594" /></p>
<p>Jetzt den Server Neustarten.</p>
<h2>MacOS vorbereiten</h2>
<p>Damit Time Machine unseren Server akzeptiert, müssen wir MacOS überreden. Dazu im Terminal folgende Zeilen eingeben. Damit werden auch nichtunterstützte Netzwerklauferke akzeptiert.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1</pre>
<h2>Time Machine einrichten</h2>
<p>Über den Apfel (oben links) die Einstellungen öffnen. Dann Time Machine starten und Backup Volume auswählen.</p>
<p><img class="size-full wp-image-1664 aligncenter" src="http://af-blog.de/wp-content/uploads/2021/02/timemachine-backup-volume.png" alt="" width="1528" height="918" /></p>
<p>Unser Fileserver sollte nun angezeigt werden.</p>
<p><img class="alignleft size-full wp-image-1665" src="http://af-blog.de/wp-content/uploads/2021/02/timemachine-fileserver.png" alt="" width="1014" height="662" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2021/02/07/proxmox-time-machine-backup-auf-lxc-server-erstellen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Proxmox &#8211; Dark Theme installieren</title>
		<link>https://af-blog.de/2020/12/18/proxmox-dark-theme-installieren/</link>
					<comments>https://af-blog.de/2020/12/18/proxmox-dark-theme-installieren/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Fri, 18 Dec 2020 03:00:12 +0000</pubDate>
				<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[dark theme]]></category>
		<category><![CDATA[proxmox]]></category>
		<guid isPermaLink="false">https://blog.af-network.de/?p=1632</guid>

					<description><![CDATA[Gute Nachricht für Admins von Proxmox die lieber mit dunklen Themen arbeiten. Inzwischen gibt es ein Dark Theme für Proxmox. Die Installation ist auch recht einfach. Auf Github wurde das Dark Theme veröffentlicht. Doch nun zur Installation Installation Proxmox &#8211; Dark Theme an Proxmox anmelden Shell öffnen Das Python Script laden wget https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.py Python Script &#8230; <a href="https://af-blog.de/2020/12/18/proxmox-dark-theme-installieren/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Gute Nachricht für Admins von Proxmox die lieber mit dunklen Themen arbeiten. Inzwischen gibt es ein Dark Theme für Proxmox. Die Installation ist auch recht einfach.</p>
<p><span id="more-1632"></span></p>
<p>Auf <a href="https://github.com/Weilbyte/PVEDiscordDark" target="_blank" rel="noopener">Github</a> wurde das Dark Theme veröffentlicht. Doch nun zur Installation</p>
<h2>Installation Proxmox &#8211; Dark Theme</h2>
<ol>
<li>an Proxmox anmelden<br />
<img class="size-full wp-image-1633 alignnone" src="http://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme001.png" alt="Proxmox Anmeldung" width="824" height="416" srcset="https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme001.png 824w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme001-300x151.png 300w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme001-768x388.png 768w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme001-480x242.png 480w" sizes="(max-width: 824px) 100vw, 824px" /></li>
<li>Shell öffnen<br />
<img class="size-full wp-image-1634 alignnone" src="http://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme002.png" alt="Proxmox Shell" width="724" height="442" srcset="https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme002.png 724w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme002-300x183.png 300w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme002-480x293.png 480w" sizes="(max-width: 724px) 100vw, 724px" /></li>
<li>Das Python Script laden <strong>wget https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.py</strong><br />
<img class="size-full wp-image-1635 alignnone" src="http://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003.png" alt="Script laden" width="2492" height="442" srcset="https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003.png 2492w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-300x53.png 300w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-1024x182.png 1024w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-768x136.png 768w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-1536x272.png 1536w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-2048x363.png 2048w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-1080x192.png 1080w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-1280x227.png 1280w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-980x174.png 980w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme003-480x85.png 480w" sizes="(max-width: 2492px) 100vw, 2492px" /></li>
<li>Python Script <strong>python3 PVEDiscordDark.py</strong> ausführen.<br />
<img class="size-full wp-image-1636 alignnone" src="http://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme004.png" alt="" width="528" height="294" srcset="https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme004.png 528w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme004-300x167.png 300w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme004-480x267.png 480w" sizes="(max-width: 528px) 100vw, 528px" /><br />
Installation mit I starten.</li>
<li>Installation erfolgreich abgeschlossen<br />
<img class="size-full wp-image-1637 alignnone" src="http://af-blog.de/wp-content/uploads/2020/12/ProxmoDarkTheme005.png" alt="" width="662" height="426" srcset="https://af-blog.de/wp-content/uploads/2020/12/ProxmoDarkTheme005.png 662w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoDarkTheme005-300x193.png 300w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoDarkTheme005-480x309.png 480w" sizes="(max-width: 662px) 100vw, 662px" /></li>
</ol>
<h2>Proxmox &#8211; Dark Theme deinstallieren</h2>
<ol>
<li>Python Script <strong>python3 PVEDiscordDark.py</strong> ausführen.<br />
<img class="size-full wp-image-1639 alignnone" src="http://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme006.png" alt="" width="534" height="310" srcset="https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme006.png 534w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme006-300x174.png 300w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme006-480x279.png 480w" sizes="(max-width: 534px) 100vw, 534px" /></li>
<li>Deinstallation mit U starten</li>
<li>Deinstallation erfolgreich abgeschlossen<br />
<img class="alignleft size-full wp-image-1640" src="http://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme007.png" alt="" width="662" height="470" srcset="https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme007.png 662w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme007-300x213.png 300w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme007-400x284.png 400w, https://af-blog.de/wp-content/uploads/2020/12/ProxmoxDarkTheme007-480x341.png 480w" sizes="(max-width: 662px) 100vw, 662px" /></li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2020/12/18/proxmox-dark-theme-installieren/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ioBroker und find-my-iphone Adapter</title>
		<link>https://af-blog.de/2020/12/15/iobroker-und-find-my-iphone-adapter/</link>
					<comments>https://af-blog.de/2020/12/15/iobroker-und-find-my-iphone-adapter/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Tue, 15 Dec 2020 00:30:54 +0000</pubDate>
				<category><![CDATA[ioBroker]]></category>
		<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[adapter]]></category>
		<category><![CDATA[find-my-iphone]]></category>
		<category><![CDATA[iobroker]]></category>
		<guid isPermaLink="false">https://blog.af-network.de/?p=1608</guid>

					<description><![CDATA[Mit dem Adpater find-my-iphone konnte man seine Apple Geräte, die mit der iCloud verbunden sind, in ioBroker einbinden. Leider ist der Entwickler des Adapter nicht mehr aktiv. Der Fork find-my-iphone-community ist noch nicht lauffähig. Jedoch mit kleinen lokalen Anpassungen bekommt man den Adapter wieder zum laufen. Wie User clmpng schreibt, kann mit einer einfachen Anpassung &#8230; <a href="https://af-blog.de/2020/12/15/iobroker-und-find-my-iphone-adapter/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Mit dem Adpater find-my-iphone konnte man seine Apple Geräte, die mit der iCloud verbunden sind, in ioBroker einbinden.<br />
Leider ist der Entwickler des Adapter nicht mehr aktiv. Der Fork find-my-iphone-community ist noch nicht lauffähig.</p>
<p>Jedoch mit kleinen lokalen Anpassungen bekommt man den Adapter wieder zum laufen.</p>
<p><span id="more-1608"></span>Wie User <a href="https://github.com/clmpng" target="_blank" rel="noopener noreferrer">clmpng</a> schreibt, kann mit einer einfachen Anpassung der Datei soef.js der Adapter wieder zum laufen gebracht werden.</p>
<ol>
<li>Die fehlende <strong>index_m.html</strong> findest Du im community Adapter.</li>
<li>Nun wird noch die Datei <strong>/opt/iobroker/node_modules/iobroker.find-my-iphone/node_modules/soef/soef.js</strong> angepasst.<br />
Dazu in der Datei alle Einträge mit <strong>adapter.states.</strong> und <strong>adapter.objects.</strong> durch <strong>adapter.</strong> ersetzen.</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2020/12/15/iobroker-und-find-my-iphone-adapter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Outlook &#8211; Mail verschieben mit VBA</title>
		<link>https://af-blog.de/2020/12/08/outlook-mail-verschieben-mit-vba/</link>
					<comments>https://af-blog.de/2020/12/08/outlook-mail-verschieben-mit-vba/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Tue, 08 Dec 2020 16:15:12 +0000</pubDate>
				<category><![CDATA[Outlook]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[E-Mail]]></category>
		<category><![CDATA[makro]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[sortieren]]></category>
		<category><![CDATA[vba]]></category>
		<guid isPermaLink="false">https://blog.af-network.de/?p=1613</guid>

					<description><![CDATA[Ich organisiere meine E-Mails in Outlook in verschiedenen Ordnern. Dabei landen diese in den Unterordnern wenn ich die Mails gelesen habe. Die Anzahl der Unterordner in Outlook wird mit der Zeit recht groß. Jedoch gibt es eine &#8222;Top Ten&#8220; der Ordner in denen die E-Mails landen. Um die E-Mails schneller dahin zu verschieben, habe ich &#8230; <a href="https://af-blog.de/2020/12/08/outlook-mail-verschieben-mit-vba/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Ich organisiere meine E-Mails in Outlook in verschiedenen Ordnern. Dabei landen diese in den Unterordnern wenn ich die Mails gelesen habe. Die Anzahl der Unterordner in Outlook wird mit der Zeit recht groß. Jedoch gibt es eine &#8222;Top Ten&#8220; der Ordner in denen die E-Mails landen.</p>
<p>Um die E-Mails schneller dahin zu verschieben, habe ich im Outlook die Ribbon Bar angepasst und verschiedene Makros abgelegt. Mit Hilfe der Makros werden die markierten Mails dann in entsprechende Ordner verschoben und als gelesen markiert.</p>
<p><span id="more-1613"></span></p>
<h2>VBA &#8211; Makros zum verschieben von E-Mails</h2>
<p>Mit dem folgenden VBA Makros werden meine Mails verschoben.</p>
<h3>Teil 1 &#8211; <strong>VerschiebeInGelesen()</strong></h3>
<p>Die Funktion <strong>VerschiebeInGelesen()</strong> gibt es pro Zielordner . Hier wird die Hauptfunktion aufgerufen und der Pfad zum Ordner übergeben.</p>
<h3>Teil 2 &#8211; <strong>VerschiebeEMail(ZielOrdner As String)</strong></h3>
<p>Hier wird in der Funktion <strong>VerschiebeEMail(ZielOrdner As String)</strong> in einer FOR Schleife jede markierte E-Mail als gelesen markiert und in den Unterordner verschoben.</p>
<p>Zuvor wird der Zielordner Pfad in ein Array umgewandelt und anschließend als <strong>MAPIFolder</strong> Objekt zurück gegeben.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic">''' Je Ordner ein Sub Aufruf
''' Teil 1
Sub VerschiebeInGelesen()
    VerschiebeEMail ("\\&lt;Postfachname&gt;\Posteingang\&lt;Zielordner&gt;")
End Sub

''' Verschiebt E-Mails in einen Zielordner
''' Die Pfadangabe aus Outlook kopieren
''' Teil 2
Sub VerschiebeEMail(ZielOrdner As String)
    Dim strOutlookFolderPath As String
    Dim oulAusgewaehlte As Outlook.Selection
    Dim intZähler As Integer
    Dim strOutlookMAPIFolders() As String
    Dim mapFld As MAPIFolder
    
    Set oulAnwendung = CreateObject("Outlook.Application")
    Set oulAusgewaehlte = oulAnwendung.ActiveExplorer.Selection
    
    strOutlookFolderPath = ZielOrdner
    strOutlookMAPIFolders = GetOutlookMapiFolder(strOutlookFolderPath)
    Set mapFld = GetOutlookMapiObject(strOutlookMAPIFolders)
       
    For intZähler = 1 To oulAusgewaehlte.Count
        oulAusgewaehlte.Item(intZähler).UnRead = False
        oulAusgewaehlte.Item(intZähler).Move mapFld
    Next intZähler
End Sub
</pre>
<h3>Teil 3 &#8211; GetOutlookMapiObject(OutlookMAPIFolders() As String) As MAPIFolder</h3>
<p>Erstellt aus dem Array OutlookMAPIFolders() ein MAPIFolder Objekt. Dieses enthält den Pfad zum Ziel Ordner in Outlook</p>
<h3>Teil 4 &#8211; GetOutlookMapiFolder(OutlookPath As String) As Variant</h3>
<p>Wandelt den String Pfad zum Zielordner in ein Array um</p>
<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic">''' Erstellt aus einem Outlook Ordner Array eine MAPIFolder Objekt
''' Teil 3
Private Function GetOutlookMapiObject(OutlookMAPIFolders() As String) As MAPIFolder
    Dim zaehler As Integer
    Dim retVal As MAPIFolder
    Dim mapFld As MAPIFolder
    
    zaehler = 0
    ''Set retVal = Application.Session.Folders()
    
    For Each strFolder In OutlookMAPIFolders
        If zaehler = 0 Then
            Set retVal = Application.Session.Folders(strFolder)
            zaehler = zaehler + 1
        Else
            Set retVal = retVal.Folders(strFolder)
        End If
    Next
    Set GetOutlookMapiObject = retVal
End Function

''' String mit Pfad zum Outlook Ordner in Array speichern
''' Teil 4
Private Function GetOutlookMapiFolder(OutlookPath As String) As Variant
    Dim retVal() As String
    
    If InStr(1, OutlookPath, "\\") Then
        strTemp = Mid(OutlookPath, 3)
        retVal = Split(strTemp, "\")
    End If
    
    GetOutlookMapiFolder = retVal
End Function</pre>
<p>Das damit angelegte Makro kann nun in Outlook eingebunden werden.</p>
<p>Ich habe dazu im Ribbon eine neue Registerkarte angelegt.</p>
<h2>Neue Registerkarte im Outlook Ribbon / Menüband anlegen</h2>
<p>In Outlook <strong>Datei</strong> und dann <strong>Optionen</strong> öffnen. In den <strong>Outlook-Optionen</strong> auf <strong>Menüband anpassen</strong> klicken.</p>
<p><img class="size-full wp-image-1615 alignnone" src="http://af-blog.de/wp-content/uploads/2020/12/Outlook-Menueband-anpassen.png" alt="Outlook Menüband anpassen" width="950" height="685" srcset="https://af-blog.de/wp-content/uploads/2020/12/Outlook-Menueband-anpassen.png 950w, https://af-blog.de/wp-content/uploads/2020/12/Outlook-Menueband-anpassen-300x216.png 300w, https://af-blog.de/wp-content/uploads/2020/12/Outlook-Menueband-anpassen-768x554.png 768w, https://af-blog.de/wp-content/uploads/2020/12/Outlook-Menueband-anpassen-480x346.png 480w" sizes="(max-width: 950px) 100vw, 950px" /></p>
<p><strong>Neue Registerkarte</strong> anklicken. Dort <strong>Neue Gruppe</strong> öffnen.</p>
<p><img class="size-full wp-image-1617 alignnone" src="http://af-blog.de/wp-content/uploads/2020/12/Outlook-Neue-Registerkarte.png" alt="Outlook Neue Registerkarte" width="701" height="206" srcset="https://af-blog.de/wp-content/uploads/2020/12/Outlook-Neue-Registerkarte.png 701w, https://af-blog.de/wp-content/uploads/2020/12/Outlook-Neue-Registerkarte-300x88.png 300w, https://af-blog.de/wp-content/uploads/2020/12/Outlook-Neue-Registerkarte-480x141.png 480w" sizes="(max-width: 701px) 100vw, 701px" /></p>
<p>Nun kann über <strong>Befehle auswählen</strong> &#8211; <strong>Makros</strong> ein Makros in die neue Registerkarte hinzugefügt werden.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2020/12/08/outlook-mail-verschieben-mit-vba/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Proxmox &#8211; VM powerdown Error</title>
		<link>https://af-blog.de/2020/11/17/proxmox-vm-powerdown-error/</link>
					<comments>https://af-blog.de/2020/11/17/proxmox-vm-powerdown-error/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Tue, 17 Nov 2020 08:49:41 +0000</pubDate>
				<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[acpid]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[reboot]]></category>
		<category><![CDATA[shutdown]]></category>
		<guid isPermaLink="false">https://blog.af-network.de/?p=1604</guid>

					<description><![CDATA[Beim Auslösen eines Reboot oder Shutdown für eine VM über die Proxmox GUI kommt die Fehlermeldung TASK ERROR: VM quit/powerdown failed. Die Lösung dafür ist recht einfach. Lösung In der VM fehlen zwei Programm die noch installiert werden müssen. Einmal das Paket qemu-guest-agent und das Paket acpid. Sind diese beiden Paket bereits vorhanden, bitte einmal &#8230; <a href="https://af-blog.de/2020/11/17/proxmox-vm-powerdown-error/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Beim Auslösen eines Reboot oder Shutdown für eine VM über die Proxmox GUI kommt die Fehlermeldung <strong>TASK ERROR: VM quit/powerdown failed</strong>.</p>
<p>Die Lösung dafür ist recht einfach.</p>
<p><span id="more-1604"></span></p>
<h2>Lösung</h2>
<p>In der VM fehlen zwei Programm die noch installiert werden müssen. Einmal das Paket <strong>qemu-guest-agent</strong> und das Paket <strong>acpid</strong>.</p>
<p>Sind diese beiden Paket bereits vorhanden, bitte einmal deinstallieren und anschließend wieder installieren. Nach einem Reboot klappt auch das Herunterfahren über die Proxmox GUI.</p>
<p>Deinstallieren:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell">apt remove qemu-guest-agent &amp;&amp; apt remove acpid</pre>
<p>Installieren:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">apt install qemu-guest-agent &amp;&amp; apt install acpid</pre>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2020/11/17/proxmox-vm-powerdown-error/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ioBroker &#8211; Alexa Geräte verschwinden im IOT Adapter &#8211; Linkeddevices</title>
		<link>https://af-blog.de/2020/11/10/iobroker-alexa-geraete-verschwinden-im-iot-adapter-linkeddevices/</link>
					<comments>https://af-blog.de/2020/11/10/iobroker-alexa-geraete-verschwinden-im-iot-adapter-linkeddevices/#respond</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Tue, 10 Nov 2020 08:19:54 +0000</pubDate>
				<category><![CDATA[ioBroker]]></category>
		<category><![CDATA[iobroker]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[linkeddevice]]></category>
		<guid isPermaLink="false">https://blog.af-network.de/?p=1597</guid>

					<description><![CDATA[Ihr habt Eure Smarthome Geräte, wie zum Beispiel Shelly Schalter, Leuchtmittel oder Homematic Geräte, im IOT-Adapter als Alexa Gerät eingerichtet. Doch nach einer Weile sind plötzlich viele oder sogar alle Geräte weg und die Steuerung funktioniert nicht mehr über Alexa. Die Ursache ist in diesem Fall nicht der IOT-Adapter sondern der Adapter Linkeddevices. Im Logfile &#8230; <a href="https://af-blog.de/2020/11/10/iobroker-alexa-geraete-verschwinden-im-iot-adapter-linkeddevices/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Ihr habt Eure Smarthome Geräte, wie zum Beispiel Shelly Schalter, Leuchtmittel oder Homematic Geräte, im IOT-Adapter als Alexa Gerät eingerichtet. Doch nach einer Weile sind plötzlich viele oder sogar alle Geräte weg und die Steuerung funktioniert nicht mehr über Alexa.</p>
<p>Die Ursache ist in diesem Fall nicht der IOT-Adapter sondern der Adapter Linkeddevices.</p>
<p><span id="more-1597"></span></p>
<p>Im Logfile gibt es keine fehlerhaften Einträge die auf ein verschwinden der Geräte hinweisen. Auch ein aktualisieren aller Adapter auf die aktuelle Version bringt keine Lösung.</p>
<p>Wie kann man nun die Smart Devices wieder für Alexa zugänglich machen?</p>
<h2>Lösung</h2>
<p>Als erstes sucht Ihr den Datenpunkt auf den das Linkeddevice verlinkt ist. Dazu im Linkeddevice auf den Schraubenschlüssel klicken.</p>
<p><img class="size-full wp-image-1598 alignnone" src="http://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_.png" alt="Linkeddevice - Verknüpfung" width="1364" height="323" srcset="https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_.png 1364w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_-300x71.png 300w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_-1024x242.png 1024w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_-768x182.png 768w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_-1080x256.png 1080w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_-1280x303.png 1280w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_-980x232.png 980w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h04m32s_004_-480x114.png 480w" sizes="(max-width: 1364px) 100vw, 1364px" /></p>
<p>Im Quelldatenpunkt angekommen, den Haken bei &#8222;Einstellungen beim Neustart des Adapter zusammenführen&#8220; setzen.</p>
<p><img class="size-full wp-image-1599 alignnone" src="http://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h07m25s_005_.png" alt="Quelldatenpunt - Linkeddevice" width="981" height="412" srcset="https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h07m25s_005_.png 981w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h07m25s_005_-300x126.png 300w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h07m25s_005_-768x323.png 768w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h07m25s_005_-480x202.png 480w" sizes="(max-width: 981px) 100vw, 981px" /></p>
<p>Nun geht Ihr aus den Einstellung des Datenpunktes raus und auf Bearbeiten. Das ist das Symbol mit dem Stift.</p>
<p>Dort auf RAW (Nur Experten) gehen und den Eintrag <strong>smartName</strong>: suchen. Der Eintrag sollte auf false stehen.</p>
<p><img class="size-full wp-image-1600 alignnone" src="http://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_.png" alt="Datenpunkt RAW smartName" width="1337" height="699" srcset="https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_.png 1337w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_-300x157.png 300w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_-1024x535.png 1024w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_-768x402.png 768w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_-1080x565.png 1080w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_-1280x669.png 1280w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_-980x512.png 980w, https://af-blog.de/wp-content/uploads/2020/11/2020.11.10_09h13m34s_006_-480x251.png 480w" sizes="(max-width: 1337px) 100vw, 1337px" /></p>
<p>Diesen Wert ändert Ihr nun auf <strong>null</strong>.</p>
<p>Nun könnt Ihr den Datenpunkt von Linkeddevice als neues Alexa Gerät einrichten.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2020/11/10/iobroker-alexa-geraete-verschwinden-im-iot-adapter-linkeddevices/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Im ioBroker den Batterie Status von Geräten abfragen</title>
		<link>https://af-blog.de/2020/10/29/im-iobroker-den-batterie-status-von-geraeten-abfragen/</link>
					<comments>https://af-blog.de/2020/10/29/im-iobroker-den-batterie-status-von-geraeten-abfragen/#comments</comments>
		
		<dc:creator><![CDATA[A Fi]]></dc:creator>
		<pubDate>Thu, 29 Oct 2020 10:57:05 +0000</pubDate>
				<category><![CDATA[ioBroker]]></category>
		<category><![CDATA[batterie]]></category>
		<category><![CDATA[battery]]></category>
		<category><![CDATA[homemati]]></category>
		<category><![CDATA[homematicip]]></category>
		<category><![CDATA[iobroker]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[zigbee]]></category>
		<guid isPermaLink="false">https://blog.af-network.de/?p=1586</guid>

					<description><![CDATA[Im ioBroker wird von Geräten, die eine Batterie haben, auf unterschiedlichen Arten die Zustände der Batterien angezeigt. Bei HomematicIP Geräten zum Beispiel, gibt es den Datenpunkt LOW_BAT der einen true oder false Wert darstellt. Bei ZigBee Geräten, zum Beispiel Aqara Tür-Fenster Sensor, wird der Datenpunkt battery benutzt um den Zustand der Batterie prozentual auszugeben. Wie &#8230; <a href="https://af-blog.de/2020/10/29/im-iobroker-den-batterie-status-von-geraeten-abfragen/" class="excerpt-link">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Im ioBroker wird von Geräten, die eine Batterie haben, auf unterschiedlichen Arten die Zustände der Batterien angezeigt.</p>
<p>Bei <strong>HomematicIP</strong> Geräten zum Beispiel, gibt es den Datenpunkt <strong>LOW_BAT</strong> der einen true oder false Wert darstellt. Bei <strong>ZigBee</strong> Geräten, zum Beispiel Aqara Tür-Fenster Sensor, wird der Datenpunkt <strong>battery</strong> benutzt um den Zustand der Batterie prozentual auszugeben.</p>
<p>Wie die Zusände der Batterien automatisch überprüft werden können, zeige ich Euch hier.</p>
<p><span id="more-1586"></span></p>
<p>Dazu benötigt man ein Blocky Script und in den Aufzählungen eine Function.</p>
<p>Der Name der Function kann frei gewählt werden. Ist die Funktion angelegt, werden dort alle zu überwachenden Geräte hineingezogen.</p>
<p><img class="size-full wp-image-1587 alignnone" src="http://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h36m26s_002_.png" alt="ioBroker_Function_CheckBattery" width="841" height="422" srcset="https://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h36m26s_002_.png 841w, https://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h36m26s_002_-300x151.png 300w, https://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h36m26s_002_-768x385.png 768w, https://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h36m26s_002_-480x241.png 480w" sizes="(max-width: 841px) 100vw, 841px" /></p>
<p>Anschließend Importiert Ihr das folgende Blockly Script.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="xml">&lt;xml xmlns="https://developers.google.com/blockly/xml"&gt;
  &lt;variables&gt;
    &lt;variable id="(qTUpSTHa{aGLMu%OApC"&gt;LowBattery&lt;/variable&gt;
    &lt;variable id="64cz2+If*eW+1?:s@R$+"&gt;NameStateLow_Bat&lt;/variable&gt;
    &lt;variable id="Jwq6=[}Z|V~[J_j=biiJ"&gt;NameStateBattery&lt;/variable&gt;
    &lt;variable id=")^=hv+[]V?0J+W|T$VKG"&gt;DPPathCheckBattery&lt;/variable&gt;
    &lt;variable id="Ho[~fO([8}H5Q5oooRi["&gt;EnumFunctionName&lt;/variable&gt;
    &lt;variable id="4wB:/!YE{cHL9D_%0znY"&gt;Message&lt;/variable&gt;
    &lt;variable id="@Qn$1x_,s/TD=W%hi!PB"&gt;SendToInstance&lt;/variable&gt;
    &lt;variable id="f#*Z/ltgn)xY5W2jBz]W"&gt;SendToInstanceCommand&lt;/variable&gt;
  &lt;/variables&gt;
  &lt;block type="schedule" id="n%kpfPen#|ULUc}SI38;" x="38" y="166"&gt;
    &lt;field name="SCHEDULE"&gt;0 0 * * *&lt;/field&gt;
    &lt;comment pinned="true" h="50" w="407"&gt;Prüft den Batterie Status von Geräten. Die Geräte müssen in ein Aufzählung =&amp;gt; Funktion stehen.&lt;/comment&gt;
    &lt;statement name="STATEMENT"&gt;
      &lt;block type="procedures_callcustomnoreturn" id="-;(N=F*]k%Kq^.QhZ0Sz"&gt;
        &lt;mutation name="BatteryCheck"&gt;
          &lt;arg name="LowBattery"&gt;&lt;/arg&gt;
          &lt;arg name="NameStateLow_Bat"&gt;&lt;/arg&gt;
          &lt;arg name="NameStateBattery"&gt;&lt;/arg&gt;
          &lt;arg name="DPPathCheckBattery"&gt;&lt;/arg&gt;
          &lt;arg name="EnumFunctionName"&gt;&lt;/arg&gt;
          &lt;arg name="Message"&gt;&lt;/arg&gt;
          &lt;arg name="SendToInstance"&gt;&lt;/arg&gt;
          &lt;arg name="SendToInstanceCommand"&gt;&lt;/arg&gt;
        &lt;/mutation&gt;
        &lt;value name="ARG0"&gt;
          &lt;block type="math_number" id="0*L=lfYDiB_*s:Ef:T8j"&gt;
            &lt;field name="NUM"&gt;30&lt;/field&gt;
          &lt;/block&gt;
        &lt;/value&gt;
        &lt;value name="ARG1"&gt;
          &lt;block type="text" id="^_`AqW!qu%FaJ7NDA0F."&gt;
            &lt;field name="TEXT"&gt;LOW_BAT&lt;/field&gt;
          &lt;/block&gt;
        &lt;/value&gt;
        &lt;value name="ARG2"&gt;
          &lt;block type="text" id="w(*$*4cPT{tZ)1^[S{zg"&gt;
            &lt;field name="TEXT"&gt;battery&lt;/field&gt;
          &lt;/block&gt;
        &lt;/value&gt;
        &lt;value name="ARG3"&gt;
          &lt;block type="text" id="4cdYl%KE*DZm=h2AOIqG"&gt;
            &lt;field name="TEXT"&gt;0_userdata.0.Checks.BatteryStatus&lt;/field&gt;
          &lt;/block&gt;
        &lt;/value&gt;
        &lt;value name="ARG4"&gt;
          &lt;block type="text" id=")*j5UQ;CfKEcO!EDd9a$"&gt;
            &lt;field name="TEXT"&gt;enum.functions.checkbattery&lt;/field&gt;
          &lt;/block&gt;
        &lt;/value&gt;
        &lt;value name="ARG5"&gt;
          &lt;block type="text" id="SHtF_q@HUe8V_*}%IB!S"&gt;
            &lt;field name="TEXT"&gt; Batterie ist fast leer.&lt;/field&gt;
          &lt;/block&gt;
        &lt;/value&gt;
        &lt;value name="ARG6"&gt;
          &lt;block type="text" id="vK@R%|P7f@LT0aGoS0{m"&gt;
            &lt;field name="TEXT"&gt;telegram.0&lt;/field&gt;
          &lt;/block&gt;
        &lt;/value&gt;
        &lt;value name="ARG7"&gt;
          &lt;block type="text" id="075Gr!evgZ:$!n[+H0:)"&gt;
            &lt;field name="TEXT"&gt;send&lt;/field&gt;
          &lt;/block&gt;
        &lt;/value&gt;
      &lt;/block&gt;
    &lt;/statement&gt;
  &lt;/block&gt;
  &lt;block type="procedures_defcustomnoreturn" id="K.d-N,j*cjgC:uFNlC:e" x="38" y="513"&gt;
    &lt;mutation statements="false"&gt;
      &lt;arg name="LowBattery" varid="(qTUpSTHa{aGLMu%OApC"&gt;&lt;/arg&gt;
      &lt;arg name="NameStateLow_Bat" varid="64cz2+If*eW+1?:s@R$+"&gt;&lt;/arg&gt;
      &lt;arg name="NameStateBattery" varid="Jwq6=[}Z|V~[J_j=biiJ"&gt;&lt;/arg&gt;
      &lt;arg name="DPPathCheckBattery" varid=")^=hv+[]V?0J+W|T$VKG"&gt;&lt;/arg&gt;
      &lt;arg name="EnumFunctionName" varid="Ho[~fO([8}H5Q5oooRi["&gt;&lt;/arg&gt;
      &lt;arg name="Message" varid="4wB:/!YE{cHL9D_%0znY"&gt;&lt;/arg&gt;
      &lt;arg name="SendToInstance" varid="@Qn$1x_,s/TD=W%hi!PB"&gt;&lt;/arg&gt;
      &lt;arg name="SendToInstanceCommand" varid="f#*Z/ltgn)xY5W2jBz]W"&gt;&lt;/arg&gt;
    &lt;/mutation&gt;
    &lt;field name="NAME"&gt;BatteryCheck&lt;/field&gt;
    &lt;field name="SCRIPT"&gt;Ly9jb25zdCBMT1dCQVRURVJZID0gOTA7DQovL2NvbnN0IFNFTkRUT0lOU1RBTkNFID0gInRlbGVncmFtLjAiOw0KLy9jb25zdCBTRU5EVE9JTlNUQU5DRUNPTU1BTkQgPSAic2VuZCI7DQovL2NvbnN0IE1FU1NBR0VCQVRURVJZSVNFTVBUWSA9ICcgQmF0dGVyaWUgaXN0IGZhc3QgbGVlci4nOw0KLy9jb25zdCBCQVRURVJZTE9XX0JBVCA9ICdMT1dfQkFUJzsNCi8vY29uc3QgQkFUVEVSWUJBVFRFUlkgPSAnYmF0dGVyeSc7DQovL2NvbnN0IFBBVEhEUEJBVFRFUllTVEFUVVMgPSAnMF91c2VyZGF0YS4wLkNoZWNrcy5CYXR0ZXJ5U3RhdHVzJzsNCi8vY29uc3QgRU5VTUZVTkNUSU9OTkFNRUJBVFRFUllDSEVDSyA9ICdlbnVtLmZ1bmN0aW9ucy5jaGVja2JhdHRlcnknOw0KDQp2YXIgc2VuZE1lc3NhZ2UgPSAnJzsNCnZhciBvbGRCYXR0ZXJ5U3RhdHVzID0gJChEUFBhdGhDaGVja0JhdHRlcnkgKyAnLionKTsNCnZhciBuZXdCYXR0ZXJ5U3RhdHVzID0gZ2V0T2JqZWN0KEVudW1GdW5jdGlvbk5hbWUpLmNvbW1vbi5tZW1iZXJzOw0KDQpsb2coIkFuemFobCBCYXR0ZXJ5IFN0YXR1cyBhbHRlIERldmljZXM6ICIgKyBvbGRCYXR0ZXJ5U3RhdHVzLmxlbmd0aCk7DQpsb2coIkFuemFobCBCYXR0ZXJ5IFN0YXR1cyB6dSBwcsO8ZmVuZGUgRGV2aWNlczogIiArIG5ld0JhdHRlcnlTdGF0dXMubGVuZ3RoKTsNCg0KLy8gYWx0ZW4gU3RhdHVzIGzDtnNjaGVuDQpmb3IoIGEgPSAwOyBhIDwgb2xkQmF0dGVyeVN0YXR1cy5sZW5ndGg7IGErKykgew0KICAgIGRlbGV0ZVN0YXRlKG9sZEJhdHRlcnlTdGF0dXNbYV0pOw0KfQ0KICAgIA0KLy8gQmF0dGVyeSBTdGF0dXMgcHLDvGZlbg0KZm9yKGxldCBpID0gMDsgaSA8IG5ld0JhdHRlcnlTdGF0dXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgYmF0dGVySXNMb3cgPSBmYWxzZTsNCiAgICB2YXIgbmV3QmF0dGVyeVZhbHVlOw0KICAgIHZhciBiYXR0ZXJ5U3RhdGVuYW1lOw0KICAgIHZhciBCYXR0ZXJ5U3RhdHVzSW5Qcm96ZW50ID0gZ2V0U3RhdGUobmV3QmF0dGVyeVN0YXR1c1tpXSArICcuJyArIE5hbWVTdGF0ZUJhdHRlcnkpLnZhbDsNCiAgICB2YXIgQmF0dGVyeUxvd0JhdCA9IGdldFN0YXRlKG5ld0JhdHRlcnlTdGF0dXNbaV0gKyAnLicgKyBOYW1lU3RhdGVMb3dfQmF0KS52YWw7DQogICAgdmFyIEdlcmFldGVOYW1lID0gZ2V0T2JqZWN0KG5ld0JhdHRlcnlTdGF0dXNbaV0pLmNvbW1vbi5uYW1lOw0KICAgIA0KICAgIGxvZyhHZXJhZXRlTmFtZSArICIgQmF0dGVyeVN0YXR1c0luUHJvemVudDogIiArIEJhdHRlcnlTdGF0dXNJblByb3plbnQpOw0KICAgIGxvZyhHZXJhZXRlTmFtZSArICIgQmF0dGVyeUxvd0JhdDogIiArIEJhdHRlcnlMb3dCYXQpOw0KICAgIA0KICAgIGlmIChCYXR0ZXJ5TG93QmF0ICE9IG51bGwpew0KICAgICAgICAvL0hvbWVtYXRpYyBHZXLDpHRlDQogICAgICAgIA0KICAgICAgICBpZiAoQmF0dGVyeUxvd0JhdCA9PSB0cnVlKXsNCiAgICAgICAgICAgIHNlbmRNZXNzYWdlID0gR2VyYWV0ZU5hbWUgKyBNZXNzYWdlOw0KICAgICAgICAgICAgYmF0dGVySXNMb3cgPSBCYXR0ZXJ5TG93QmF0Ow0KICAgICAgICAgICAgbmV3QmF0dGVyeVZhbHVlID0gQmF0dGVyeUxvd0JhdDsNCiAgICAgICAgICAgIGJhdHRlcnlTdGF0ZW5hbWUgPSBOYW1lU3RhdGVMb3dfQmF0Ow0KICAgICAgICB9DQogICAgfSBlbHNlIHsNCiAgICAgICAgLy9hbmRlcmUgR2Vyw6R0ZQ0KICAgICAgICBpZiAoIEJhdHRlcnlTdGF0dXNJblByb3plbnQgPD0gTG93QmF0dGVyeSkgew0KICAgICAgICAgICAgc2VuZE1lc3NhZ2UgPSBHZXJhZXRlTmFtZSArIE1lc3NhZ2UgKyAnICcgKyBCYXR0ZXJ5U3RhdHVzSW5Qcm96ZW50ICsgJyUnOw0KICAgICAgICAgICAgYmF0dGVySXNMb3cgPSB0cnVlOw0KICAgICAgICAgICAgbmV3QmF0dGVyeVZhbHVlID0gQmF0dGVyeVN0YXR1c0luUHJvemVudDsNCiAgICAgICAgICAgIGJhdHRlcnlTdGF0ZW5hbWUgPSBOYW1lU3RhdGVCYXR0ZXJ5Ow0KICAgICAgICB9DQogICAgfQ0KICAgIA0KICAgIC8vIE5hY2hyaWNodCBzZW5kZW4gJiBEYXRlbnB1bmt0IHNjaHJlaWJlbiB3ZW5uIEJhdHRlcmllIGxlZXIgaXN0DQogICAgaWYgKGJhdHRlcklzTG93KSB7DQogICAgICAgIC8vRGF0ZW5wdW5rdCBzY2hyZWliZW4NCiAgICAgICAgY3JlYXRlU3RhdGUoRFBQYXRoQ2hlY2tCYXR0ZXJ5ICsgJy4nICsgbmV3QmF0dGVyeVN0YXR1c1tpXSwNCiAgICAgICAgICAgICcnLCANCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZWFkOiB0cnVlLCANCiAgICAgICAgICAgICAgICB3cml0ZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICBuYW1lOiBHZXJhZXRlTmFtZSwNCiAgICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIiwNCiAgICAgICAgICAgICAgICByb2xlOiAnJywNCiAgICAgICAgICAgICAgICBkZWY6IDANCiAgICAgICAgICAgIH0NCiAgICAgICAgKTsNCiAgICAgICAgDQogICAgICAgIGNyZWF0ZVN0YXRlKERQUGF0aENoZWNrQmF0dGVyeSArICcuJyArIG5ld0JhdHRlcnlTdGF0dXNbaV0gKyAiLiIgKyBiYXR0ZXJ5U3RhdGVuYW1lLA0KICAgICAgICAgICAgbmV3QmF0dGVyeVZhbHVlLCANCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICByZWFkOiB0cnVlLCANCiAgICAgICAgICAgICAgICB3cml0ZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICBuYW1lOiAnQmF0dGVyeScsDQogICAgICAgICAgICAgICAgdHlwZTogInN0cmluZyIsDQogICAgICAgICAgICAgICAgcm9sZTogJ2JhdHRlcnknLA0KICAgICAgICAgICAgICAgIGRlZjogMA0KICAgICAgICAgICAgfQ0KICAgICAgICApOw0KICAgICAgICANCiAgICAgICAgc2VuZFRvKFNlbmRUb0luc3RhbmNlLCBTZW5kVG9JbnN0YW5jZUNvbW1hbmQsIHsNCiAgICAgICAgICAgIHRleHQ6IHNlbmRNZXNzYWdlDQogICAgICAgIH0pOw0KICAgIH0NCn0NCg==&lt;/field&gt;
    &lt;comment pinned="false" h="80" w="160"&gt;Beschreibe diese Funktion …&lt;/comment&gt;
  &lt;/block&gt;
&lt;/xml&gt;</pre>
<p>Nach dem Import sollte das Blockly wie folgt aussehen</p>
<p><img class="size-full wp-image-1588 alignnone" src="http://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h44m05s_003_.png" alt="Blockly CheckBattery" width="811" height="565" srcset="https://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h44m05s_003_.png 811w, https://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h44m05s_003_-300x209.png 300w, https://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h44m05s_003_-768x535.png 768w, https://af-blog.de/wp-content/uploads/2020/10/2020.10.29_11h44m05s_003_-480x334.png 480w" sizes="(max-width: 811px) 100vw, 811px" /></p>
<p>Das Blockly prüft alle Geräte die in der Funktion &#8222;enum.functions.checkbattery&#8220; hinterlegt sind. Ist LOW_BAT (Homematic) gleich true oder battery &lt;=30 (zum Beispiel ZigBee), wird per Telegram eine Nachricht versendet.</p>
<p>Zusätzlich wird ein Datenpunkt angelegt in dem das Gerät mit einer schwachen Batterie gespeichert ist. Diese Liste wird vor jedem Lauf gelöscht. Somit sind die Daten darin immer aktuell.</p>
<p>In meinem Fall läuft das Script immer um 00:00 Uhr.</p>
<p>Wie Ihr seht, können statt Telegram auch andere Empfänger festgelegt werden. Auch der Pfad für die Datenpunkte ist dynamisch.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://af-blog.de/2020/10/29/im-iobroker-den-batterie-status-von-geraeten-abfragen/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
