http://wiki.fhem.de/w/api.php?action=feedcontributions&user=BastianW&feedformat=atomFHEMWiki - Benutzerbeiträge [de]2024-03-28T19:35:28ZBenutzerbeiträgeMediaWiki 1.39.3http://wiki.fhem.de/w/index.php?title=Raspberry_Pi&diff=9928Raspberry Pi2015-02-07T20:03:17Z<p>BastianW: Kapitel Interne Links eingebaut</p>
<hr />
<div>Beim '''Raspberry Pi''' handelt es sich um einen postkartengroßen Einplatinen-Computer, der von der Raspberry Pi Foundation entwickelt wird. Die Hardware basiert auf dem BCM 2835 SoC (System-on-Chip) von Broadcom, einem 700 MHz ARM-Prozessor der ARMv6-Architektur/ARM11-Familie. Zu Hardwaredetails und den verschiedenen Modellen sowie Produktentwicklungen siehe [http://de.wikipedia.org/wiki/Raspberry_Pi#Hardware Wikipedia].<br />
Dank der kleinen Abmessungen, dem recht geringen Energieverbrauch (ca. 3,5 Watt) sowie der günstigen Anschaffungskosten (ca. 30€) ist der Raspberry Pi eine attraktive Hardware für die Heimautomatisierung mit Fhem. Er ist dank dem Linux-Betriebssystem vollständig kompatibel zur aktuell vorhandenen und von FHEM unterstützen Hardware. Das derzeit empfohlene Standard-Image zum Betrieb des Raspberry Pi ist die auf Debian 7.0 Wheezy basierende Raspbian Distribution.<br />
<br />
== Installation / Setup ==<br />
=== Betriebssystem ===<br />
Das Betriebssystem sollte direkt bei Raspberry unter dem Link [http://www.raspberrypi.org/downloads http://www.raspberrypi.org/downloads] ([http://downloads.raspberrypi.org/raspbian_latest Raspbian]) geholt werden.<br />
<br />
Nach dem Herunterladen des entsprechenden Archivs muss das Image entpackt und auf die Speicherkarte (SD-Karte bis Modell B / MicroSD ab Modell B+) geschrieben werden. Detaillierte englische Anleitungen zum Vorgehen für verschiedene Betriebssysteme stellt Raspberry [http://www.raspberrypi.org/documentation/installation/installing-images/README.md hier] zur Verfügung.<br />
<br />
Unter '''Unix/Linux''' erfolgt dies via dd-Befehl. Zum Beispiel:<br />
:<code>sudo dd bs=1M if=2012-08-16-wheezy-raspbian.img of=/dev/sdz</code><br />
<br />
'''Achtung:''' Bei Angabe eines falschen Device hinter of= kann der Anfang der eigenen Festplatte überschrieben werden. (Datenverlust!)<br />
<br />
Je nach System/Distribution und vorhandenen Festplatten variiert das Device, z.B. /dev/mmcblk0 (Ubuntu), /dev/sdb, /dev/sdc oder /dev/rdisk1 (OSX). Folgende Möglichkeiten können helfen, das richtige Device zu ermitteln:<br />
* Mit dem Befehl <code>df</code> erhält kann eine Übersicht aller angeschlossenen und gemounteten(!) Speichermedien. <br />
* Beim Einstecken der Speicherkarte in den PC wird in die Log-Datei <code>/var/log/messages</code> ein Eintrag gemacht. Beispiel: <code>kernel: [2077612.776470] sd 14:0:0:0: ['''sdb'''] 7954432 512-byte logical blocks: ('''4.07 GB'''/3.79 GiB)</code><br />
* Mit dem Befehl fdisk kann die Größe eines bestimmten Devices geprüft werden: <code>fdisk -l /dev/sdb</code> Beispielausgabe: <code>Platte /dev/sdb: 4072 MByte, 4072669184 Byte</code><br />
<br />
Unter '''Windows''' kann das Tool [https://launchpad.net/win32-image-writer Win32DiskImager] genutzt werden.<br />
<br />
Nach der Installation des Images sollte der Raspberry Pi von der Speicherkarte booten.<br />
<br />
Um eventuell eine größere Speicherkarte komplett zu nutzen, kann dies per folgendem Menu erledigt werden:<br />
:<code>sudo raspi-config</code><br />
<br />
Stand 08/14 grundsätzlich nicht mehr notwendig: Es kann erforderlich sein, einen KernelUpdate einzuspielen, um einen USB-Bug zu beheben. Dieses Update ist zu finden auf [https://github.com/Hexxeh/rpi-update github].<br />
<br />
=== Fhem ===<br />
Die Installation auf dem Raspberry Pi kann nach der Installation des Betriebssystems automatisiert per Skript oder auch manuell vorgenommen werden<br />
<br />
==== Skript-basiert ====<br />
Durch Ausführung des in diesem {{Link2Forum|Topic=15848|Message=103268}} dargestellten Skriptes nach Installation eines "nackten" Raspian OS wird automatisiert ein funktionsfähiges Fhem (inkl. korrekter Rechtevergabe) auf dem Raspberry Pi installiert.<br />
<br />
==== Manuell ====<br />
Die Installation von FHEM auf dem Raspberry Pi kann mit dem fertigen debian-package erledigt werden. Lediglich das Perl-Modul "Serialport" wird benötigt - Perl ist in der Regel bereits installiert, kann aber sicherheitshalber einfach mit dem apt-get-Befehl zugefügt werden:<br />
<br />
sudo apt-get install perl libdevice-serialport-perl<br />
sudo apt-get install libio-socket-ssl-perl<br />
# fhem-X.Y.deb bitte mit der [http://fhem.de/fhem.html#Download aktuellsten, stabilen Version] ersetzen<br />
wget [http://fhem.de/fhem-X.Y.deb http://fhem.de/fhem-X.Y.deb]<br />
sudo dpkg -i fhem-X.Y.deb<br />
<br />
Möglicherweise ist es noch nötig, fehlende Abhängigkeiten aufzulösen. Das kann mit folgendem Befehl erledigt werden:<br />
:<code>sudo apt-get install -f</code><br />
<br />
== Bekannte Probleme ==<br />
=== Netzteil ===<br />
Der RPi verwendet ein USB Netzteil als Spannungsversorgung. Gemessen kann der RPi allein bereits um die 900mA Strom fordern. Das bringt kleine Netzteile, besonders wenn noch CULs oder WLAN Sticks an USB hängen schnell an die Grenze. Die Fehler die daraus resultieren sind Abstürze, Netzwerkprobleme uvm. Daher bitte ein ausreichend starkes Netzteil mit mind. 2000mA oder einen aktiven USB-HUB für die Periperie verwenden.<br />
<br />
=== Echtzeituhr ===<br />
Der RPi hat keine [http://de.wikipedia.org/wiki/Echtzeituhr Real-Time-Clock] (RTC), das heißt, dass er nach einem Neustart keine gültige (im Sinne von aktuell) Systemzeit hat, sondern ein Datum in der Vergangenheit. Dieses Problem wird sinnvollerweise mit einer [http://de.wikipedia.org/wiki/Network_Time_Protocol NTP-Konfiguration] umgangen.<br />
<br />
Dabei muss Sorge getragen werden, dass der [http://wiki.debian.org/NTP ntpd] schon einen Datums-/Zeitabgleich gemacht hat, bevor FHEM gestartet wird. Geschieht der Abgleich nicht vorher, sondern erst nachdem FHEM schon läuft, stellt FHEM die Logs zwar auf das nun aktuelle Datum um (die "alten" Logs mit dem eigentlich ungültigen Datum werden natürlich behalten), aber irgendetwas scheint FHEM dabei so zu belasten, dass es eine Last von über 0.8 bis 0.9 erzeugt. Diese Last besteht auf Dauer und verschwindet erst, wenn man das Ganze sauber durchkonfiguriert und FHEM neu gestartet hat. Die hohe Systemauslastung zeigt sich auch in einem sehr trägen Laden der FHEM-Webseiten in einem beliebigen Browser.<br />
<br />
=== Last durch Backup (während update) ===<br />
Bei einen Update von FHEM durch den Befehl <code>update</code> kann ein Backup durchgeführt werden. Die (ggf. großen) Log-Dateien werden dabei ebenfalls archiviert. Während der Archivierung ist FHEM blockiert. Durch die beschränkte Leistungsfähigkeit des Raspberry Pi kann das Backup lange dauern. Durch Setzen des Attributs "<code>attr global backup_before_update 1</code>" wird beim Update ein Backup erstellt. Dies war bis 18.08.2014 die Standardeinstellung, seitdem ist es standardmäßig ausgeschaltet und es gibt weitere Neuerungen (siehe [[FHEM_Command_Beispiele#update_...|update]]). Durch ein "<code>attr global updateInBackground 1</code>" wird ein Backup im Hintergrund ausgeführt (Quelle: {{Link2Forum|Topic=15729}}). <br />
<br />
Alternative Möglichkeiten: <br />
* Backup ausschalten und manuell durchführen <br />
* Backup-Befehl anpassen und so große Dateien bzw. Verzeichnisse (log/) nicht archivieren<br />
<br />
== Interne Links ==<br />
* Erste Schritte: [[FHEM auf Raspberry PI mit COC betreiben]]<br />
<br />
== Externe Links ==<br />
* [http://www.raspberrypi.org/ Offizielle Webseite der Raspberry Pi Foundation]<br />
* [http://www.raspberrypi.org/downloads Offizielle Downloads der Raspberry Pi Foundation]<br />
* {{Link2Forum|Topic=15848|Message=103268|LinkText=Skript}} zur automatisierten Installation von Fhem auf "nacktem" Raspian OS in wenigen Minuten<br />
* Blog mit dem Thema [http://www.meintechblog.de/2013/05/fhem-server-auf-dem-raspberry-pi-in-einer-stunde-einrichten/ FHEM-Server auf RaspBerry Pi in einer Stunde einrichten]<br />
<br />
[[Kategorie:Raspberry Pi]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=FHT:_Datum_und_Zeit_von_FHEM_setzen_lassen&diff=8278FHT: Datum und Zeit von FHEM setzen lassen2014-10-30T22:50:26Z<p>BastianW: /* Mögliche Probleme */</p>
<hr />
<div>Läuft Fhem auf einem Rechner mit aktuellem Datum, bietet es sich an, Datum und Uhrzeit regelmäßig an alle FHTs zu senden.<br />
<br />
==Variante A==<br />
<nowiki>define fht_setdate notify fht_setdate { \<br />
if ( $year gt 2010 ) {\<br />
my @@fhts=devspec2array(&quot;TYPE=FHT&quot;);; \<br />
foreach(@@fhts) { \<br />
my $cmd=&quot;set &quot;.$_.&quot; date time&quot;;;\<br />
fhem $cmd;;\<br />
Log 4, &quot;sent cmd &quot;.$cmd;;\<br />
} \<br />
} else {\<br />
Log 1, &quot;error setting date for fhts: year &lt;= 2010 - date invalid?!&quot;\<br />
}\<br />
}<br />
define t_fht_setdate at *02:00:00 trigger fht_setdate</nowiki><br />
<br />
Die Abfrage <code>$year gt 2010</code> ist eine Überprüfung, ob das Datum des Fhem Hostrechners noch stimmt oder (z.B. bei einer Fritzbox direkt nach einem Neustart) das Datum falsch ist.<br />
<br />
==Variante B==<br />
Da die Funkbefehle mit einem gewissen Zeitversatz verschickt werden, kann es unter ungünstigen Umständen passieren, dass der "time"-Befehl erst in der ''nächsten'' Stunde ausgeführt wird. Nur die Minuten werden von Fhem automatisch nachgezogen. Sofern man die Uhr jeweils zur vollen Stunde stellt wie im vorgenannten Beispiel, sollte es nie Probleme geben. Andernfalls kann man mit folgendem Code die korrekte Stunde sicherstellen:<br />
<br />
<nowiki>define n_Uhrvergleich notify .*:hour.* { \<br />
my $zeit=&quot;%EVTPART1&quot;;; \<br />
if($zeit==$hour) { \<br />
Log(4,&quot;Uhrzeit für @ erfolgreich nachgestellt.&quot;) \<br />
} else { \<br />
Log(2,&quot;Uhr stellen bei @ fehlgeschlagen!&quot;);; \<br />
fhem(&quot;set @ time&quot;) \<br />
} \<br />
}</nowiki><br />
Dieser notify überwacht die "hour"-Meldungen aller Geräte und vergleicht diese mit der Systemzeit. Sofern diese ungleich ist, wird der "time"-Befehl an den falsch gestellten FHT erneut abgesetzt.<br />
<br />
<br />
==Variante C==<br />
Eine recht unaufwändige Variante ist möglich, wenn alle FHTs so benannt sind, dass der Name gleich anfängt, z.B. mit "hzg" (Heizung). In diesem Fall kann das Datum aller FHTs zugleich gesetzt werden mit:<br />
set hzg.* date<br />
und die Zeit mit<br />
set hzg.* time<br />
<br />
==Variante D==<br />
Statt des Gerätename(präfixes) kann auch der Gerätetyp zur Adressierung aller FHTs verwendet werden. Die Anweisungen zum Setzen des Datums und der Zeit sehen dann folgendermaßen aus:<br />
set TYPE=FHT date<br />
set TYPE=FHT time<br />
<br />
==Mögliche Probleme==<br />
<br />
Vorsicht ist geboten, wenn die gesamte FHT-Installation schon mit Funkproblemen behaftet ist (siehe dazu auch [[Kommunikationsprobleme mit FHT]]). Dann kann dieses Makro eine zusätzliche Belastung darstellen, die die Kommunikation vollends zusammenbrechen lässt.<br />
<br />
Es ist daher sinnvoll, die Datums- und Uhrzeitupdates in Zeiten zu legen, die funklastarm sind. Eine zusätzliche Entlastung kann man erreichen, indem Datum und Uhrzeit jeweils nur einmal pro Woche und an unterschiedlichen Tagen erledigt werden. Unter Verwendung der Methode aus Variante D würde das z.b. so aussehen:<br />
<br />
define fht_dateupdate at *04:00:01 {if ($wday == 4) { fhem("set TYPE=FHT date") } }<br />
define fht_timeupdate at *04:00:01 {if ($wday == 5) { fhem("set TYPE=FHT time") } }<br />
<br />
Eine solche Entzerrung ist insbesondere dann sinnvoll, wenn viele FHT80 (mehr als ca. sechs) betrieben werden. Um das unter Variante B genannte Problem der Uhrzeit (time Befehl erst in der nächsten Stunde) zu entschärfen, ist es sinnvoll als Ausführungsuhrzeit immer die erste Sekunde einer Stunde zu wählen, also z.b. xy:00:01<br />
<br />
Zur zusätzlichen Funkentlastung kann das FHT Attribute "lazymode" verwendet werden. Dann wird das Datum nicht neu gesendet, wenn das am FHT80b bereits eingestellte Datum mit dem neuen Datum übereinstimmt.<br />
<br />
[[Kategorie:Code Snippets]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC_am_Raspberry_Pi_flashen&diff=8235COC am Raspberry Pi flashen2014-10-26T14:04:49Z<p>BastianW: /* Aktuelle Firmware kontrollieren */</p>
<hr />
<div>Um (die aktuelle) [[CUL]] Firmware auf einen [[COC]] zu bringen, kann/muss man den [[COC am Raspberry Pi flashen]].<br />
<br />
== Vorausetzung ==<br />
Erforderliche Hardware:<br />
* [[Raspberry Pi]]<br />
* Busware COC<br />
<br />
== Aktuelle Firmware kontrollieren ==<br />
Ob ein Flashen überhaupt notwendig ist, lässt sich feststellen, indem man das Changelog (http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/CHANGED) und die momentan installierte Firmware kontrolliert.<br />
<br />
An die aktuelle Firmware vom COC kommt man wie folgt:<br />
# Anmelden an der Fhem Weboberfläche<br />
# Öffnen der Fhem [[Konfiguration]]<br />
# Suchen nach dem COC Namen. In meinem Falle sieht der benötigte Eintrag wie folgt aus:<br><code>define COC CUL /dev/ttyAMA0@38400 4624</code><br />
# In das Textfeld oben in der FHEM Weboberfläche nun folgendes eingeben<br><code>get COC raw V</code><br />
<br />
Wenn die angezeigte Firmware älter als im Changelog ist, kann man sie updaten.<br />
<br />
== Firmware updaten/flashen ==<br />
Zum flashen der Firmware müssen die folgenden Schritte ausgeführt werden:<br />
<br />
# Fhem Server stoppen<br><code>/etc/init.d/fhem stop</code><br />
# Flashtool installieren <br><code>sudo apt-get install -y avrdude</code><br />
# Eine Sudo session öffnen <br><code>sudo -s</code><br />
# Aktuelle Firmware herunterladen. Bei Geräten mit "nur Funk" muss folgendes ausgeführt werden <br><code>sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.radio_only.hex?format=raw -O /tmp/COC.hex</code> <br>bei dem anderen COC folgendes:<br><code>sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.hex?format=raw -O /tmp/COC.hex</code> <br>Dies läd die aktuelle Flashdatei herunter und speichert sie im Verzeichnis <code>tmp</code><br />
# Den COC zurücksetzen und folgendes (Zeile für Zeile!) ausführen: <br /><!-- <br />
--><code>if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi </code><br /><!-- <br />
--><code>if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi </code><br /><!-- <br />
--><code>echo out > /sys/class/gpio/gpio17/direction </code><br /><!-- <br />
--><code>echo out > /sys/class/gpio/gpio18/direction </code><br /><!-- <br />
--><code>echo 0 > /sys/class/gpio/gpio18/value </code><br /><!-- <br />
--><code>echo 0 > /sys/class/gpio/gpio17/value </code><br /><!-- <br />
--><code>sleep 1 </code><br /><!-- <br />
--><code>echo 1 > /sys/class/gpio/gpio17/value </code><br /><!-- <br />
--><code>sleep 1 </code><br /><!-- <br />
--><code>echo 1 > /sys/class/gpio/gpio18/value </code><br /><br />
# Anschließend kann der COC geflasht werden mit: <br /><!-- <br />
--><code>avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109 -U flash:w:/tmp/COC.hex</code><br />
# Fhem Server wieder starten mittels<br><code>/etc/init.d/fhem start</code><br />
<br />
[[Kategorie:HOWTOS]]<br />
[[Kategorie:Raspberry Pi]]<br />
<!-- (neue aber unnötige bzw. nicht sinnvolle) Kategorie-Einträge "COC" und "Flashen" entfernt; bitte ggf. erst auf der Seite FHEMWiki_Diskussion:ÜberFHEMWiki diskutieren --></div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC_am_Raspberry_Pi_flashen&diff=8234COC am Raspberry Pi flashen2014-10-26T14:04:20Z<p>BastianW: /* Aktuelle Firmware kontrollieren */</p>
<hr />
<div>Um (die aktuelle) [[CUL]] Firmware auf einen [[COC]] zu bringen, kann/muss man den [[COC am Raspberry Pi flashen]].<br />
<br />
== Vorausetzung ==<br />
Erforderliche Hardware:<br />
* [[Raspberry Pi]]<br />
* Busware COC<br />
<br />
== Aktuelle Firmware kontrollieren ==<br />
Ob ein Flashen überhaupt notwendig ist, lässt sich feststellen, indem man das Changelog (http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/CHANGED) und die momentan installierte Firmware kontrolliert.<br />
<br />
An die aktuelle Firmware vom COC kommt man wie folgt:<br />
# Anmelden an der Fhem Weboberfläche<br />
# Öffnen der Fhem [[Konfiguration]]<br />
# Suchen nach dem COC Namen. In meinem Falle sieht der benötigte Eintrag wie folgt aus:<br><code>define COC CUL /dev/ttyAMA0@38400 4624</code><br />
# In das Textfeld im FHEM nun folgendes eingeben<br><code>get COC raw V</code><br />
<br />
Wenn die angezeigte Firmware älter als im Changelog ist, kann man sie updaten.<br />
<br />
== Firmware updaten/flashen ==<br />
Zum flashen der Firmware müssen die folgenden Schritte ausgeführt werden:<br />
<br />
# Fhem Server stoppen<br><code>/etc/init.d/fhem stop</code><br />
# Flashtool installieren <br><code>sudo apt-get install -y avrdude</code><br />
# Eine Sudo session öffnen <br><code>sudo -s</code><br />
# Aktuelle Firmware herunterladen. Bei Geräten mit "nur Funk" muss folgendes ausgeführt werden <br><code>sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.radio_only.hex?format=raw -O /tmp/COC.hex</code> <br>bei dem anderen COC folgendes:<br><code>sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.hex?format=raw -O /tmp/COC.hex</code> <br>Dies läd die aktuelle Flashdatei herunter und speichert sie im Verzeichnis <code>tmp</code><br />
# Den COC zurücksetzen und folgendes (Zeile für Zeile!) ausführen: <br /><!-- <br />
--><code>if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi </code><br /><!-- <br />
--><code>if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi </code><br /><!-- <br />
--><code>echo out > /sys/class/gpio/gpio17/direction </code><br /><!-- <br />
--><code>echo out > /sys/class/gpio/gpio18/direction </code><br /><!-- <br />
--><code>echo 0 > /sys/class/gpio/gpio18/value </code><br /><!-- <br />
--><code>echo 0 > /sys/class/gpio/gpio17/value </code><br /><!-- <br />
--><code>sleep 1 </code><br /><!-- <br />
--><code>echo 1 > /sys/class/gpio/gpio17/value </code><br /><!-- <br />
--><code>sleep 1 </code><br /><!-- <br />
--><code>echo 1 > /sys/class/gpio/gpio18/value </code><br /><br />
# Anschließend kann der COC geflasht werden mit: <br /><!-- <br />
--><code>avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109 -U flash:w:/tmp/COC.hex</code><br />
# Fhem Server wieder starten mittels<br><code>/etc/init.d/fhem start</code><br />
<br />
[[Kategorie:HOWTOS]]<br />
[[Kategorie:Raspberry Pi]]<br />
<!-- (neue aber unnötige bzw. nicht sinnvolle) Kategorie-Einträge "COC" und "Flashen" entfernt; bitte ggf. erst auf der Seite FHEMWiki_Diskussion:ÜberFHEMWiki diskutieren --></div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC_am_Raspberry_Pi_flashen&diff=8233COC am Raspberry Pi flashen2014-10-26T14:03:49Z<p>BastianW: /* Firmware updaten/flashen */</p>
<hr />
<div>Um (die aktuelle) [[CUL]] Firmware auf einen [[COC]] zu bringen, kann/muss man den [[COC am Raspberry Pi flashen]].<br />
<br />
== Vorausetzung ==<br />
Erforderliche Hardware:<br />
* [[Raspberry Pi]]<br />
* Busware COC<br />
<br />
== Aktuelle Firmware kontrollieren ==<br />
Ob ein Flashen überhaupt notwendig ist, lässt sich feststellen, indem man das Changelog (http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/CHANGED) und die momentan installierte Firmware kontrolliert.<br />
<br />
An die aktuelle Firmware vom COC kommt man wie folgt:<br />
# Anmelden am Fhem<br />
# Öffnen der Fhem [[Konfiguration]]<br />
# Suchen nach dem COC Namen. In meinem Falle sieht der benötigte Eintrag wie folgt aus:<br><code>define COC CUL /dev/ttyAMA0@38400 4624</code><br />
# In das Textfeld im FHEM nun folgendes eingeben<br><code>get COC raw V</code><br />
<br />
Wenn die angezeigte Firmware älter als im Changelog ist, kann man sie updaten.<br />
<br />
== Firmware updaten/flashen ==<br />
Zum flashen der Firmware müssen die folgenden Schritte ausgeführt werden:<br />
<br />
# Fhem Server stoppen<br><code>/etc/init.d/fhem stop</code><br />
# Flashtool installieren <br><code>sudo apt-get install -y avrdude</code><br />
# Eine Sudo session öffnen <br><code>sudo -s</code><br />
# Aktuelle Firmware herunterladen. Bei Geräten mit "nur Funk" muss folgendes ausgeführt werden <br><code>sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.radio_only.hex?format=raw -O /tmp/COC.hex</code> <br>bei dem anderen COC folgendes:<br><code>sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.hex?format=raw -O /tmp/COC.hex</code> <br>Dies läd die aktuelle Flashdatei herunter und speichert sie im Verzeichnis <code>tmp</code><br />
# Den COC zurücksetzen und folgendes (Zeile für Zeile!) ausführen: <br /><!-- <br />
--><code>if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi </code><br /><!-- <br />
--><code>if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi </code><br /><!-- <br />
--><code>echo out > /sys/class/gpio/gpio17/direction </code><br /><!-- <br />
--><code>echo out > /sys/class/gpio/gpio18/direction </code><br /><!-- <br />
--><code>echo 0 > /sys/class/gpio/gpio18/value </code><br /><!-- <br />
--><code>echo 0 > /sys/class/gpio/gpio17/value </code><br /><!-- <br />
--><code>sleep 1 </code><br /><!-- <br />
--><code>echo 1 > /sys/class/gpio/gpio17/value </code><br /><!-- <br />
--><code>sleep 1 </code><br /><!-- <br />
--><code>echo 1 > /sys/class/gpio/gpio18/value </code><br /><br />
# Anschließend kann der COC geflasht werden mit: <br /><!-- <br />
--><code>avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109 -U flash:w:/tmp/COC.hex</code><br />
# Fhem Server wieder starten mittels<br><code>/etc/init.d/fhem start</code><br />
<br />
[[Kategorie:HOWTOS]]<br />
[[Kategorie:Raspberry Pi]]<br />
<!-- (neue aber unnötige bzw. nicht sinnvolle) Kategorie-Einträge "COC" und "Flashen" entfernt; bitte ggf. erst auf der Seite FHEMWiki_Diskussion:ÜberFHEMWiki diskutieren --></div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC&diff=8232COC2014-10-26T13:55:31Z<p>BastianW: /* Links */</p>
<hr />
<div>{{Infobox Hardware<br />
|Bild=Busware_coc.jpg<br />
|Bildbeschreibung=Funk, 1-Wire, Uhr<br />
|HWProtocol=FS20, FHT, HomeMatic, 1-Wire, ...<br />
|HWType=[[Interface]]<br />
|HWCategory=<br />
|HWComm=433/868&nbsp;MHz<br />
|HWChannels=?<br />
|HWVoltage=?<br />
|HWPowerConsumption=?<br />
|HWPoweredBy=Raspberry Pi<br />
|HWSize=?<br />
|HWDeviceFHEM=[http://fhem.de/commandref.html#CUL CUL]<br>[http://fhem.de/commandref.html#OWX OWX (1-Wire)]<br />
|HWManufacturer=busware<br />
}}<br />
<br />
[[COC]] (CC1101-OneWire-Clock) ist eine Aufsteckplatine für den [[Raspberry Pi]] und bietet als Funk-[[Interface]] die gleiche Funktionalität wie ein [[CUL]], ermöglicht aber gleichzeitig auch den Anschluss von [[1-Wire]]-Geräten und enthält eine Echtzeituhr. Vorteile dabei sind, dass beide USB Schnittstellen des Raspberry weiterhin genutzt werden können, und dass das Modul (bis auf die Antenne) im Gehäuse des Raspberry sitzt und so nicht absteht.<br />
<br />
== Hinweise zum Betrieb mit FHEM ==<br />
Einsetzbar, derzeit unterstützte [[Systemübersicht#Protokolle|Protokolle]]:<br />
* MAX!<br />
* Intertechno<br />
* FS20<br />
* HomeMatic<br />
<br />
Ein Zeitgleicher Betrieb von FS20 und HomeMatic Komponenten ist nicht möglich.<br />
<br />
=== Konfiguration ===<br />
Folgende [[Konfiguration|Konfigurations]]-Optionen können über FHEM gesetzt werden:<br />
* set CUL1 raw l02 = LED blinkt (1&nbsp;Hz, Standard)<br />
* set CUL1 raw l00 = LED blinkt nur bei Sendung<br />
* set CUL1 raw l01 = LED ist dauern an<br />
<br />
== Links ==<br />
* Hersteller / Bezugsquelle für COC: [http://www.busware.de/tiki-index.php?page=COC busware.de]<br />
* Kurzanleitung: [[COC am Raspberry Pi flashen]]<br />
* Erste Schritte: [[FHEM auf Raspberry PI mit COC betreiben]]<br />
<br />
[[Kategorie:Interfaces]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC&diff=6836COC2014-07-13T12:50:15Z<p>BastianW: /* Hinweise zum Betrieb mit FHEM */</p>
<hr />
<div>{{Infobox Hardware<br />
|Bild=Busware_coc.jpg<br />
|Bildbeschreibung=Funk, 1-Wire, Uhr<br />
|HWProtocol=FS20, FHT, HomeMatic, 1-Wire, ...<br />
|HWType=[[Interface]]<br />
|HWCategory=<br />
|HWComm=433/868&nbsp;MHz<br />
|HWChannels=?<br />
|HWVoltage=?<br />
|HWPowerConsumption=?<br />
|HWPoweredBy=Raspberry Pi<br />
|HWSize=?<br />
|HWDeviceFHEM=[http://fhem.de/commandref.html#CUL CUL]<br>[http://fhem.de/commandref.html#OWX OWX (1-Wire)]<br />
|HWManufacturer=busware<br />
}}<br />
<br />
[[COC]] (CC1101-OneWire-Clock) ist eine Aufsteckplatine für den [[Raspberry Pi]] und bietet als Funk-[[Interface]] die gleiche Funktionalität wie ein [[CUL]], ermöglicht aber gleichzeitig auch den Anschluss von [[1-Wire]]-Geräten und enthält eine Echtzeituhr. Vorteile dabei sind, dass beide USB Schnittstellen des Raspberry weiterhin genutzt werden können, und dass das Modul (bis auf die Antenne) im Gehäuse des Raspberry sitzt und so nicht absteht.<br />
<br />
== Hinweise zum Betrieb mit FHEM ==<br />
Einsetzbar, derzeit unterstützte [[Systemübersicht#Protokolle|Protokolle]]:<br />
* MAX!<br />
* Intertechno<br />
* FS20<br />
* HomeMatic<br />
<br />
Ein Zeitgleicher Betrieb von FS20 und HomeMatic Komponenten ist nicht möglich.<br />
<br />
=== Konfiguration ===<br />
Folgende [[Konfiguration|Konfigurations]]-Optionen können über FHEM gesetzt werden:<br />
* set CUL1 raw l02 = LED blinkt (1&nbsp;Hz, Standard)<br />
* set CUL1 raw l00 = LED blinkt nur bei Sendung<br />
* set CUL1 raw l01 = LED ist dauern an<br />
<br />
== Links ==<br />
* Hersteller / Bezugsquelle für COC: [http://www.busware.de/tiki-index.php?page=COC busware.de]<br />
* Kurzanleitung: [[COC am Raspberry Pi flashen]]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:Transceiver]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC&diff=6835COC2014-07-13T12:49:18Z<p>BastianW: </p>
<hr />
<div>{{Infobox Hardware<br />
|Bild=Busware_coc.jpg<br />
|Bildbeschreibung=Funk, 1-Wire, Uhr<br />
|HWProtocol=FS20, FHT, HomeMatic, 1-Wire, ...<br />
|HWType=[[Interface]]<br />
|HWCategory=<br />
|HWComm=433/868&nbsp;MHz<br />
|HWChannels=?<br />
|HWVoltage=?<br />
|HWPowerConsumption=?<br />
|HWPoweredBy=Raspberry Pi<br />
|HWSize=?<br />
|HWDeviceFHEM=[http://fhem.de/commandref.html#CUL CUL]<br>[http://fhem.de/commandref.html#OWX OWX (1-Wire)]<br />
|HWManufacturer=busware<br />
}}<br />
<br />
[[COC]] (CC1101-OneWire-Clock) ist eine Aufsteckplatine für den [[Raspberry Pi]] und bietet als Funk-[[Interface]] die gleiche Funktionalität wie ein [[CUL]], ermöglicht aber gleichzeitig auch den Anschluss von [[1-Wire]]-Geräten und enthält eine Echtzeituhr. Vorteile dabei sind, dass beide USB Schnittstellen des Raspberry weiterhin genutzt werden können, und dass das Modul (bis auf die Antenne) im Gehäuse des Raspberry sitzt und so nicht absteht.<br />
<br />
== Hinweise zum Betrieb mit FHEM ==<br />
Einsetzbar, derzeit unterstützte [[Systemübersicht#Protokolle|Protokolle]]:<br />
* MAX!<br />
* Intertechno<br />
* FS20<br />
<br />
=== Konfiguration ===<br />
Folgende [[Konfiguration|Konfigurations]]-Optionen können über FHEM gesetzt werden:<br />
* set CUL1 raw l02 = LED blinkt (1&nbsp;Hz, Standard)<br />
* set CUL1 raw l00 = LED blinkt nur bei Sendung<br />
* set CUL1 raw l01 = LED ist dauern an<br />
<br />
== Links ==<br />
* Hersteller / Bezugsquelle für COC: [http://www.busware.de/tiki-index.php?page=COC busware.de]<br />
* Kurzanleitung: [[COC am Raspberry Pi flashen]]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:Transceiver]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=Datei:Busware_coc.jpg&diff=6834Datei:Busware coc.jpg2014-07-13T12:48:34Z<p>BastianW: http://www.busware.de/tiki-browse_image.php?galleryId=35&sort_mode=created_desc&imageId=348&scalesize=o</p>
<hr />
<div>http://www.busware.de/tiki-browse_image.php?galleryId=35&sort_mode=created_desc&imageId=348&scalesize=o</div>BastianWhttp://wiki.fhem.de/w/index.php?title=FHEM_auf_Raspberry_PI_mit_COC_betreiben&diff=6770FHEM auf Raspberry PI mit COC betreiben2014-07-07T18:57:52Z<p>BastianW: /* FHEM Installieren */</p>
<hr />
<div>Um einen [[COC]] mit einem Raspberry Pi und FHEM zu nutzen sind mehrere Schnitte notwendig. Die folgende Anleitung zeigt diese entsprechend auf.<br />
<br />
== Vorausetzung ==<br />
Erforderliche Hardware:<br />
* [[Raspberry Pi]]<br />
* Busware [[COC]]<br />
<br />
Erforderliche Software:<br />
* Raspbian OS (Debian Wheezy Version June 2014, oder aktueller)<br />
<br />
Notwendige Vorbereitungen:<br />
* Busware [[COC]] ist auf dem [[Raspberry Pi]] montiert<br />
* [[Raspberry Pi]] ist per LAN Kabel an den Router angeschlossen und hat eine IP via DHCP bekommen und kann in das Internet (keine Firewall Restriktion)<br />
<br />
<br />
== Raspberry OS auf die Speicherkarte übertragen ==<br />
<br />
# Raspberry OS als Image von der Raspberry PI Webseite http://downloads.raspberrypi.org/raspbian_latest herunterladen<br />
# Mit win32diskimager http://win32diskimager.sourceforge.net auf die Speicherkarte übertragen<br />
<br />
<br />
== FHEM Installieren ==<br />
<br />
# Raspberry Pi booten<br />
# Einloggen als User: Pi mit dem Password: Raspberry<br />
# Danach sollte das Raspberry OS upgedatet werden: <br><code>sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo reboot</code><br />
# nach dem neustart sollte auch kurz die Firmware aktuallisiert werden. Das geht wie folgt: <br><code>sudo apt-get install rpi-update</code><br><code>sudo rpi-update</code><br />
# Anschließend sollte der Raspberry PI neu gestarted werden mittels <br><code>sudo shutdown -r now</code><br />
# Danach muss die richtige Zeitzone für unseren RPI eingestellt werden, das geht mittels <br><code>sudo dpkg-reconfigure tzdata</code><br />
# Damit der RPI den gesamten Speicherplatz der SD-Karte nutzt, kann man (sofern noch nicht nach dem ersten Start getan) das Filesystem mit folgendem Menü erweitern<br><code>sudo raspi-config</code><br />
# Anschließend rebooten wir den RPI mittels <br><code>sudo shutdown -r now</code><br />
# Einloggen als User: Pi mit dem Password: Raspberry<br />
# Da wir davon ausgehen das wir FHEM mit Zeitprofielen verwenden werden ist das korrekte Datum sehr wichtig. Daher installieren wir einen NTP Client, der die Zeit aktuell hält und richten ihn für Deutschland ein. Dies geht wie folgt: <br><code>sudo apt-get install ntpdate</code><br><code>sudo ntpdate -u de.pool.ntp.org</code><br />
# Da der FHEM auf Pearl basiert müssen jetzt die notwendigen Packete Installiert werden:<br><code>sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl -y</code><br />
# Jetzt können wir FHEM herunterladen und zwischenspeichern: <br><code>sudo wget http://fhem.de/fhem-5.5.deb -O /tmp/fhem-5.5.deb</code><br> Es ist darüber hinaus sinvoll kurz zu kontrollieren, ob die Version aktuell ist. das Kann auf der FHEM Webseite http://fhem.de/fhem.html getan werden.<br />
# Anschließend kann FHEM installiert werden:<br><code>sudo dpkg -i /tmp/fhem-5.5.deb</code><br />
# Da FHEM automatisch gestarted hat, müssen wir ihn jetzt kurz beenden via:<code>/etc/init.d/fhem stop</code><br />
# Jetzt müssen wir noch die Rechte des FHEM Verzeichnisses anpassen.<br>Dafür vergeben wir auf alle Dateien unter /opt/fhem Schreibrechte<code>sudo chmod -R a+w /opt/fhem</code><br />
# Nun fügen wir die Benutzer pi und fhem der Gruppe tty hinzu (Zugriffsrechte auf Serial- und USB-Ports)<br><code>sudo usermod -aG tty pi && sudo usermod -aG tty fhem</code><br />
# Jetzt müssen wir den Speicherort des Logfiles anpassen. Dafür editieren wir die FHEM config via <br><code>nano fhem.cfg</code><br>und ändern alle einträge der art "./log/" nach "/opt/fhem/log"<br />
# Jetzt starten wir FHEM kurz neu <code>/etc/init.d/fhem stop</code><br><code>/etc/init.d/fhem start</code><br />
# Anschließend können wir uns über http://<dieRaspberryIP>:8083/fhem am FHEM anmelden. In der dialogbox oben geben wir nun folgendes ein um FHEM zu updaten<br><code>attr global sendStatistics onUpdate</code><br><code>update</code>und wenn uns FHEM nach einem neustart fragt, kommen wir dem mittels <br><code>shutdown restart</code> nach.<br />
<br />
== COC in Betrieb nehmen ==<br />
# Nun muss der serielle Port für den Raspberry freigegeben werden. Dazu muss die Datei /etc/inittab mittels <code>sudo nano /etc/inittab</code> angepasst werden und folgende Zeile löschen <code>T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100</code> oder auskommentieren<br />
# Ähnlich verfahren wir mit der /boot/cmdline.txt. Sie wird mittels <code>sudo nano /boot/cmdline.txt</code> editiert und Referenzen auf ttyAMA0 entfernt <code>console=ttyAMA0,115200 kgdboc=ttyAMA0,115200</code><br />
# Damit der COC beim Start vom FHEM initialisiert wird, muss die /etc/init.d/fhem editiert werden. Dies machen wir mittels <code>sudo nano /etc/init.d/fhem</code><br>und fügen unterhalb von "Start)" folgendes in die Datei ein<br />
<br />
<code><br />
echo "resetting 868MHz extension..."<br><br />
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi<br><br />
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi<br><br />
echo out > /sys/class/gpio/gpio17/direction<br><br />
echo out > /sys/class/gpio/gpio18/direction<br><br />
echo 1 > /sys/class/gpio/gpio18/value<br><br />
echo 0 > /sys/class/gpio/gpio17/value<br><br />
sleep 1<br><br />
echo 1 > /sys/class/gpio/gpio17/value<br><br />
sleep 1<br><br />
</code><br />
<br />
Achtung: Nach einem Update von FHEM könnte diese Datei überschrieben werden. Dann muss die Änderung oben wieder hinzugefügt werden.<br />
<br />
# nun wird der COC in die FHEM config hinzugefügt. Dafür wird die config editiert "sudo nano /opt/fhem/fhem.cfg" und ganz zum Schluss folgendes hinzugefügt "define COC CUL /dev/ttyAMA0@38400 1234"<br />
<br />
# Nun wird der Raspberry PI vollständig neu gestarted <code>sudo shutdown -r now</code><br />
<br />
# Der Raspberry PI sollte nun via auto detect die Komponenten auffinden</div>BastianWhttp://wiki.fhem.de/w/index.php?title=FHEM_auf_Raspberry_PI_mit_COC_betreiben&diff=6769FHEM auf Raspberry PI mit COC betreiben2014-07-07T18:56:44Z<p>BastianW: /* FHEM Installieren */</p>
<hr />
<div>Um einen [[COC]] mit einem Raspberry Pi und FHEM zu nutzen sind mehrere Schnitte notwendig. Die folgende Anleitung zeigt diese entsprechend auf.<br />
<br />
== Vorausetzung ==<br />
Erforderliche Hardware:<br />
* [[Raspberry Pi]]<br />
* Busware [[COC]]<br />
<br />
Erforderliche Software:<br />
* Raspbian OS (Debian Wheezy Version June 2014, oder aktueller)<br />
<br />
Notwendige Vorbereitungen:<br />
* Busware [[COC]] ist auf dem [[Raspberry Pi]] montiert<br />
* [[Raspberry Pi]] ist per LAN Kabel an den Router angeschlossen und hat eine IP via DHCP bekommen und kann in das Internet (keine Firewall Restriktion)<br />
<br />
<br />
== Raspberry OS auf die Speicherkarte übertragen ==<br />
<br />
# Raspberry OS als Image von der Raspberry PI Webseite http://downloads.raspberrypi.org/raspbian_latest herunterladen<br />
# Mit win32diskimager http://win32diskimager.sourceforge.net auf die Speicherkarte übertragen<br />
<br />
<br />
== FHEM Installieren ==<br />
<br />
# Raspberry Pi booten<br />
# Einloggen als User: Pi mit dem Password: Raspberry<br />
# Danach sollte das Raspberry OS upgedatet werden: <br><code>sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo reboot</code><br />
# nach dem neustart sollte auch kurz die Firmware aktuallisiert werden. Das geht wie folgt: <code>sudo apt-get install rpi-update</code><br><code>sudo rpi-update</code><br />
# Anschließend sollte der Raspberry PI neu gestarted werden mittels <code>sudo shutdown -r now</code><br />
# Danach muss die richtige Zeitzone für unseren RPI eingestellt werden, das geht mittels <br><code>sudo dpkg-reconfigure tzdata</code><br />
# Damit der RPI den gesamten Speicherplatz der SD-Karte nutzt, kann man (sofern noch nicht nach dem ersten Start getan) das Filesystem mit folgendem Menü erweitern<br><code>sudo raspi-config</code><br />
# Anschließend rebooten wir den RPI mittels <br><code>sudo shutdown -r now</code><br />
# Einloggen als User: Pi mit dem Password: Raspberry<br />
# Da wir davon ausgehen das wir FHEM mit Zeitprofielen verwenden werden ist das korrekte Datum sehr wichtig. Daher installieren wir einen NTP Client, der die Zeit aktuell hält und richten ihn für Deutschland ein. Dies geht wie folgt: <br><code>sudo apt-get install ntpdate</code><br><code>sudo ntpdate -u de.pool.ntp.org</code><br />
# Da der FHEM auf Pearl basiert müssen jetzt die notwendigen Packete Installiert werden:<br><code>sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl -y</code><br />
# Jetzt können wir FHEM herunterladen und zwischenspeichern: <br><code>sudo wget http://fhem.de/fhem-5.5.deb -O /tmp/fhem-5.5.deb</code><br> Es ist darüber hinaus sinvoll kurz zu kontrollieren, ob die Version aktuell ist. das Kann auf der FHEM Webseite http://fhem.de/fhem.html getan werden.<br />
# Anschließend kann FHEM installiert werden:<br><code>sudo dpkg -i /tmp/fhem-5.5.deb</code><br />
# Da FHEM automatisch gestarted hat, müssen wir ihn jetzt kurz beenden via:<code>/etc/init.d/fhem stop</code><br />
# Jetzt müssen wir noch die Rechte des FHEM Verzeichnisses anpassen.<br>Dafür vergeben wir auf alle Dateien unter /opt/fhem Schreibrechte<code>sudo chmod -R a+w /opt/fhem</code><br />
# Nun fügen wir die Benutzer pi und fhem der Gruppe tty hinzu (Zugriffsrechte auf Serial- und USB-Ports)<br><code>sudo usermod -aG tty pi && sudo usermod -aG tty fhem</code><br />
# Jetzt müssen wir den Speicherort des Logfiles anpassen. Dafür editieren wir die FHEM config via <br><code>nano fhem.cfg</code><br>und ändern alle einträge der art "./log/" nach "/opt/fhem/log"<br />
# Jetzt starten wir FHEM kurz neu <code>/etc/init.d/fhem stop</code><br><code>/etc/init.d/fhem start</code><br />
# Anschließend können wir uns über http://<dieRaspberryIP>:8083/fhem am FHEM anmelden. In der dialogbox oben geben wir nun folgendes ein um FHEM zu updaten<br><code>attr global sendStatistics onUpdate</code><br><code>update</code>und wenn uns FHEM nach einem neustart fragt, kommen wir dem mittels <br><code>shutdown restart</code> nach.<br />
<br />
== COC in Betrieb nehmen ==<br />
# Nun muss der serielle Port für den Raspberry freigegeben werden. Dazu muss die Datei /etc/inittab mittels <code>sudo nano /etc/inittab</code> angepasst werden und folgende Zeile löschen <code>T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100</code> oder auskommentieren<br />
# Ähnlich verfahren wir mit der /boot/cmdline.txt. Sie wird mittels <code>sudo nano /boot/cmdline.txt</code> editiert und Referenzen auf ttyAMA0 entfernt <code>console=ttyAMA0,115200 kgdboc=ttyAMA0,115200</code><br />
# Damit der COC beim Start vom FHEM initialisiert wird, muss die /etc/init.d/fhem editiert werden. Dies machen wir mittels <code>sudo nano /etc/init.d/fhem</code><br>und fügen unterhalb von "Start)" folgendes in die Datei ein<br />
<br />
<code><br />
echo "resetting 868MHz extension..."<br><br />
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi<br><br />
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi<br><br />
echo out > /sys/class/gpio/gpio17/direction<br><br />
echo out > /sys/class/gpio/gpio18/direction<br><br />
echo 1 > /sys/class/gpio/gpio18/value<br><br />
echo 0 > /sys/class/gpio/gpio17/value<br><br />
sleep 1<br><br />
echo 1 > /sys/class/gpio/gpio17/value<br><br />
sleep 1<br><br />
</code><br />
<br />
Achtung: Nach einem Update von FHEM könnte diese Datei überschrieben werden. Dann muss die Änderung oben wieder hinzugefügt werden.<br />
<br />
# nun wird der COC in die FHEM config hinzugefügt. Dafür wird die config editiert "sudo nano /opt/fhem/fhem.cfg" und ganz zum Schluss folgendes hinzugefügt "define COC CUL /dev/ttyAMA0@38400 1234"<br />
<br />
# Nun wird der Raspberry PI vollständig neu gestarted <code>sudo shutdown -r now</code><br />
<br />
# Der Raspberry PI sollte nun via auto detect die Komponenten auffinden</div>BastianWhttp://wiki.fhem.de/w/index.php?title=FHEM_auf_Raspberry_PI_mit_COC_betreiben&diff=6737FHEM auf Raspberry PI mit COC betreiben2014-07-02T19:54:40Z<p>BastianW: Die Seite wurde neu angelegt: „Um einen COC mit einem Raspberry Pi und FHEM zu nutzen sind mehrere Schnitte notwendig. Die folgende Anleitung zeigt diese entsprechend auf. == Vorausetzu…“</p>
<hr />
<div>Um einen [[COC]] mit einem Raspberry Pi und FHEM zu nutzen sind mehrere Schnitte notwendig. Die folgende Anleitung zeigt diese entsprechend auf.<br />
<br />
== Vorausetzung ==<br />
Erforderliche Hardware:<br />
* [[Raspberry Pi]]<br />
* Busware [[COC]]<br />
<br />
Erforderliche Software:<br />
* Raspbian OS (Debian Wheezy Version June 2014, oder aktueller)<br />
<br />
Notwendige Vorbereitungen:<br />
* Busware [[COC]] ist auf dem [[Raspberry Pi]] montiert<br />
* [[Raspberry Pi]] ist per LAN Kabel an den Router angeschlossen und hat eine IP via DHCP bekommen und kann in das Internet (keine Firewall Restriktion)<br />
<br />
<br />
== Raspberry OS auf die Speicherkarte übertragen ==<br />
<br />
# Raspberry OS als Image von der Raspberry PI Webseite http://downloads.raspberrypi.org/raspbian_latest herunterladen<br />
# Mit win32diskimager http://win32diskimager.sourceforge.net auf die Speicherkarte übertragen<br />
<br />
<br />
== FHEM Installieren ==<br />
<br />
# Raspberry Pi booten<br />
# Einloggen als User: Pi mit dem Password: Raspberry<br />
# Danach muss das Raspberry OS upgedatet werden: <br><code>sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo reboot</code><br />
# Danach muss die richtige Zeitzone für unseren RPI eingestellt werden, das geht mittels <br><code>sudo dpkg-reconfigure tzdata</code><br />
# Damit der RPI den gesamten Speicherplatz der SD-Karte nutzt, kann man (sofern noch nicht nach dem ersten Start getan) das Filesystem mit folgendem Menü erweitern<br><code>sudo raspi-config</code><br />
# Anschließend rebooten wir den RPI mittels <br><code>sudo shutdown -r now</code><br />
# Einloggen als User: Pi mit dem Password: Raspberry<br />
# Da wir davon ausgehen das wir FHEM mit Zeitprofielen verwenden werden ist das korrekte Datum sehr wichtig. Daher installieren wir einen NTP Client, der die Zeit aktuell hält und richten ihn für Deutschland ein. Dies geht wie folgt: <br><code>sudo apt-get install ntpdate</code><br><code>sudo ntpdate -u de.pool.ntp.org</code><br />
# Da der FHEM auf Pearl basiert müssen jetzt die notwendigen Packete Installiert werden:<br><code>sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl -y</code><br />
# Jetzt können wir FHEM herunterladen und zwischenspeichern: <br><code>sudo wget http://fhem.de/fhem-5.5.deb -O /tmp/fhem-5.5.deb</code><br> Es ist darüber hinaus sinvoll kurz zu kontrollieren, ob die Version aktuell ist. das Kann auf der FHEM Webseite http://fhem.de/fhem.html getan werden.<br />
# Anschließend kann FHEM installiert werden:<br><code>sudo dpkg -i /tmp/fhem-5.5.deb</code><br />
# Da FHEM automatisch gestarted hat, müssen wir ihn jetzt kurz beenden via:<code>/etc/init.d/fhem stop</code><br />
# Jetzt müssen wir noch die Rechte des FHEM Verzeichnisses anpassen.<br>Dafür vergeben wir auf alle Dateien unter /opt/fhem Schreibrechte<code>sudo chmod -R a+w /opt/fhem</code><br />
# Nun fügen wir die Benutzer pi und fhem der Gruppe tty hinzu (Zugriffsrechte auf Serial- und USB-Ports)<br><code>sudo usermod -aG tty pi && sudo usermod -aG tty fhem</code><br />
# Jetzt müssen wir den Speicherort des Logfiles anpassen. Dafür editieren wir die FHEM config via <br><code>nano fhem.cfg</code><br>und ändern alle einträge der art "./log/" nach "/opt/fhem/log"<br />
# Jetzt starten wir FHEM kurz neu <code>/etc/init.d/fhem stop</code><br><code>/etc/init.d/fhem start</code><br />
# Anschließend können wir uns über http://<dieRaspberryIP>:8083/fhem am FHEM anmelden. In der dialogbox oben geben wir nun folgendes ein um FHEM zu updaten<br><code>attr global sendStatistics onUpdate</code><br><code>update</code>und wenn uns FHEM nach einem neustart fragt, kommen wir dem mittels <br><code>shutdown restart</code> nach.<br />
<br />
== COC in Betrieb nehmen ==<br />
# Nun muss der serielle Port für den Raspberry freigegeben werden. Dazu muss die Datei /etc/inittab mittels <code>sudo nano /etc/inittab</code> angepasst werden und folgende Zeile löschen <code>T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100</code> oder auskommentieren<br />
# Ähnlich verfahren wir mit der /boot/cmdline.txt. Sie wird mittels <code>sudo nano /boot/cmdline.txt</code> editiert und Referenzen auf ttyAMA0 entfernt <code>console=ttyAMA0,115200 kgdboc=ttyAMA0,115200</code><br />
# Damit der COC beim Start vom FHEM initialisiert wird, muss die /etc/init.d/fhem editiert werden. Dies machen wir mittels <code>sudo nano /etc/init.d/fhem</code><br>und fügen unterhalb von "Start)" folgendes in die Datei ein<br />
<br />
<code><br />
echo "resetting 868MHz extension..."<br><br />
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi<br><br />
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi<br><br />
echo out > /sys/class/gpio/gpio17/direction<br><br />
echo out > /sys/class/gpio/gpio18/direction<br><br />
echo 1 > /sys/class/gpio/gpio18/value<br><br />
echo 0 > /sys/class/gpio/gpio17/value<br><br />
sleep 1<br><br />
echo 1 > /sys/class/gpio/gpio17/value<br><br />
sleep 1<br><br />
</code><br />
<br />
Achtung: Nach einem Update von FHEM könnte diese Datei überschrieben werden. Dann muss die Änderung oben wieder hinzugefügt werden.<br />
<br />
# nun wird der COC in die FHEM config hinzugefügt. Dafür wird die config editiert "sudo nano /opt/fhem/fhem.cfg" und ganz zum Schluss folgendes hinzugefügt "define COC CUL /dev/ttyAMA0@38400 1234"<br />
<br />
# Nun wird der Raspberry PI vollständig neu gestarted <code>sudo shutdown -r now</code><br />
<br />
# Der Raspberry PI sollte nun via auto detect die Komponenten auffinden</div>BastianWhttp://wiki.fhem.de/w/index.php?title=Intertechno_Code_Berechnung&diff=6732Intertechno Code Berechnung2014-07-02T15:58:37Z<p>BastianW: /* REV Telecontrol */ kleiner schreibfehler korrigiert</p>
<hr />
<div>'''Intertechno''' Systemkomponenten sind kostengünstige und weit verbreitete Funkschalter/-dimmer im 433 MHz Bereich, die man in fast jedem Baumarkt unter den Markennamen Intertechno, düwi, KlikAanKlikUit usw. erhalten kann. <br />
<br />
Es gibt eine Anzahl weiterer Hersteller/Handelsmarken mit ähnlicher Kodierung oder Einstellmöglichkeiten mit DIP Schaltern, die ebenfalls mit dem Intertechno Code geschaltet werden können. Dazu zählen von Usern bereits erfolgreich getestete Geräte von Elro AB440, FLS-100/m-e, Wetekom/Westfalia und weitere, theoretisch mögliche aber ungetestete Systeme wie Unitec oder Arctech Steckdosen (siehe [http://avr.börke.de/E-Funk.htm Börkes-HP])<br />
<br />
== Voraussetzungen in Fhem ==<br />
Schalten kann man die Intertechno Funkkomponenten in Fhem über verschiedene Wege. So z.B. über CUL/CUNO, Tellstick, [[AVR-NET-IO]].<br />
<br />
Hier beschrieben ist die Ansteuerung über CUL/CUNO, dessen Firmware für Intertechno erweitert wurde (Danke an Olaf Droegehorn). Momentan ist in CUL/CUNO das SENDEN von Intertechno Funk implementiert. Die Firmware muss mindestens den Stand 1.44 haben (Kontrolle der Version in den Fhem Detaildaten zum [[CUL]]/[[CUNO]]). Die CUL433/CUNO433 haben dabei volle Reichweite, die Versionen CUL868/CUNO868 funktionieren ebenfalls, haben aufgrund der nicht optimalen Antennenlänge für den Frequenzbereich aber nur eine eingeschränke Reichweite.<br />
<br />
=== Definition ===<br />
Die Definiton des IT Gerätes in FHEM sieht so aus:<br />
<br />
<nowiki>define myITSwitch IT &lt;housecode&gt;&lt;group_switch&gt; &lt;on-code&gt; &lt;off-code&gt; [&lt;dimup-code&gt; &lt;dimdown-code&gt;]<br />
attr myITSwitch IODev CUL_x (CUNO_x)<br />
attr myITSwitch model itswitch</nowiki><br />
Die weitere Anleitung soll die Bildung der Bitfolge für die Zusammensetzung des Schaltcodes erklären. <br />
Wichtig zu wissen ist auch, dass es sich um einen 3state code handelt, d.h. jedes Bit kann '''0,1 oder F''' sein!<br />
<br />
== Original Intertechno System ==<br />
=== Hauscode (die ersten vier Stellen (0-3) ===<br />
Der Hauscode wird auf dem Drehschalter auf der Rückseite eingestellt und hat die Bezeichnung '''A-P'''<br />
<br />
[[File:Img_3324_small.png|thumb|Intertechno Schalter]]<br />
{| class="wikitable"<br />
! Drehschalter !! Stelle 0-3<br />
|-<br />
| A || 0000<br />
|-<br />
| B || F000<br />
|-<br />
| C || 0F00<br />
|-<br />
| D || FF00<br />
|-<br />
| E || 00F0<br />
|-<br />
| F || F0F0<br />
|-<br />
| G || 0FF0<br />
|-<br />
| H || FFF0<br />
|-<br />
| I || 000F<br />
|-<br />
| J || F00F<br />
|-<br />
| K || 0F0F<br />
|-<br />
| L || FF0F<br />
|-<br />
| M || 00FF<br />
|-<br />
| N || F0FF<br />
|-<br />
| O || 0FFF<br />
|-<br />
| P || FFFF<br />
|}<br />
<br />
=== Gruppen-/Gerätecode (Stelle 4-7) ===<br />
Der zweite Drehschalter ist mit den Zahlen von 1-16 beschriftet. Das ist eine Zusammensetzung von Gruppe und Gerätecode und ergibt die nächsten 4 Stellen. Die dritte Spalte in der Tabelle zeigt die Zuordnung einer Intertechno YCT-100 / ITS-150 Fernbedienung. Diese ist mit Drehschalter auf der Rückseite (A-P), einem Gruppenschalter (1-4) , und je vier ein-/aus-Tasten belegt.<br />
<br />
[[File:Img_3325_small.png|right|thumb|Intertechno Fernbedienung]]<br />
<br />
{| class="wikitable"<br />
! Drehschalter !! Stelle 4-7 !! Fernbedienung Gruppe/Taste<br />
|-<br />
| 01 || 0000 || 1 - 1<br />
|-<br />
| 02 || F000 || 1 - 2<br />
|-<br />
| 03 || 0F00 || 1 - 3<br />
|-<br />
| 04 || FF00 || 1 - 4<br />
|-<br />
| 05 || 00F0 || 2 - 1<br />
|-<br />
| 06 || F0F0 || 2 - 2<br />
|-<br />
| 07 || 0FF0 || 2 - 3<br />
|-<br />
| 08 || FFF0 || 2 - 4<br />
|-<br />
| 09 || 000F || 3 - 1<br />
|-<br />
| 10 || F00F || 3 - 2<br />
|-<br />
| 11 || 0F0F || 3 - 3<br />
|-<br />
| 12 || FF0F || 3 - 4<br />
|-<br />
| 13 || 00FF || 4 - 1<br />
|-<br />
| 14 || F0FF || 4 - 2<br />
|-<br />
| 15 || 0FFF || 4 - 3<br />
|-<br />
| 16 || FFFF || 4 - 4<br />
|}<br />
<br />
=== Stellen 8-9 (Festwert 0F) ===<br />
<nowiki>Die Positionen 8-9 sind immer fest auf '''0F'''zu stellen</nowiki><br />
<br />
=== Stellen 10-11 (Ein/Aus) ===<br />
Bei den beiden letzten Stellen steht als Codierung für ON = FF und OFF = F0.<br />
<br />
=== Beispiele ===<br />
Drehschalter/Hauscode auf '''A'''<br />
<nowiki> Schalter 1 -&gt; 000000000F FF F0 (entspricht Fernbedienung Gruppe I und Schalter 1)<br />
Schalter 2 -&gt; 0000F0000F FF F0 (entspricht Fernbedienung Gruppe I und Schalter 2)<br />
Schalter 3 -&gt; 00000F000F FF F0 (entspricht Fernbedienung Gruppe I und Schalter 3)<br />
Schalter 4 -&gt; 0000FF000F FF F0 (entspricht Fernbedienung Gruppe I und Schalter 4)</nowiki><br />
<br />
Drehschalter/Hauscode auf '''L'''<br />
<nowiki> Schalter 11 -&gt; FF0F0F0F0F FF F0 (entspricht Fernbedienung Gruppe III und Schalter 3)<br />
Schalter 16 -&gt; FF0FFFFF0F FF F0 (entspricht Fernbedienung Gruppe IV und Schalter 4)</nowiki><br />
komplett für die fhem cfg also z.B. Hauscode A und Gruppe 1 Gerät/Schalter 1 und CUL Bezeichnung CUL1:<br />
<br />
<nowiki> define schalter1 IT 000000000F FF F0<br />
attr schalter1 IODev CUL1<br />
attr schalter1 model itswitch</nowiki><br />
<br />
=== Selbstlernende Intertechno Funksteckdosen (z.B. ITR-1500) ===<br />
Zum Anlernen der selbst lernenden Funksteckdosen muss ein gültiger(!) ON-Befehl in den ersten fünf Sekunden nach dem Einstecken der Funksteckdose in eine normalen Steckdose gesendet werden. Die Funksteckdosen haben drei Speicherplätze, so dass man beispielsweise ein ITR-1500 Set zuerst mit der Fernbedienung anlernen und anschließend eigene Codes von Fhem senden lassen kann. Damit man einen gültigen Code sendet, sucht man sich einfach eine beliebige Kombination aus der obigen Tabelle aus (z.B. C-1, C-2 und C-3) und ergänzt entsprechend um die immer identischen Stellen 8 und 9 (0F) und den ON- und OFF-Code (FF/F0).<br />
Das Senden der Codes von Fhem erfolgt am einfachsten, indem man sich die Steckdosen vorher in der Konfiguration so anlegt, wie man sie haben möchte und anschließend über die Weboberfläche den ON-Befehl gibt.<br />
<br />
Mitunter funktioniert das reine Senden des ON Befehls aber nicht, da einige dieser Steckdosen einen längeren ON Befehl benötigen und die Sendedauer bei Fhem/CUL/CUNO nicht beeinflusst werden kann. In diesem Fall nimmt man eine YCT-100 Fernbedienung, an der die gewünschte Adresse eingestellt werden kann. Zum Anlernen drückt man nun etwas länger auf den passenden Einschaltknopf, danach kann die Dose von Fhem normal geschaltet werden.<br />
<br />
== FLS 100 ==<br />
[[File:FLS100.jpg|right|thumb|FLS100 - konfiguriert auf IV/3]]<br />
<br />
Beim FLS 100 von m-e.de gibt es nur 4 mögliche Einstellungen: '''I, II, III und IV'''. Dies entspricht der Gruppe auf der Fernbedienung.<br />
<br />
{| class="wikitable"<br />
! Drehschalter !! Stelle 0-3<br />
|-<br />
| I || 0FFF <br />
|-<br />
| II || F0FF<br />
|-<br />
| III || FF0F<br />
|-<br />
| IV || FFF0<br />
|}<br />
<br />
Die nächsten vier Stellen geben die Geräte ID an; diese ist identisch mit der Taste an der Fernbedienung.<br />
{| class="wikitable"<br />
! Drehschalter !! Stelle 4-7 !! Fernbedienung Taste<br />
|-<br />
| 1 || 0FFF || 1<br />
|-<br />
| 2 || F0FF || 2<br />
|-<br />
| 3 || FF0F || 3<br />
|-<br />
| 4 || FFF0 || 4<br />
|}<br />
<br />
Beim FLS 100 ist nur die letzte Stelle relevant, mit ON: F oder OFF: 0<br />
<br />
== REV Telecontrol ==<br />
[[File:Rev-funksteckdose-telecontrol-3500-w-008345.png|right|thumb|REV Telecontrol]]<br />
<br />
Die REV Telecontrol haben einen Dreh-Wahlschalter auf der Rückseite, mit dem sich der Hauscode (A - D) und der Gerätecode (1 - 3) bestimmen lässt. <br />
<br />
Die Codierung ist dabei:<br />
{| class="wikitable"<br />
! Hauscode !! Stelle 1-4<br />
|-<br />
| A || 1FFF<br />
|-<br />
| B || F1FF<br />
|-<br />
| C || FF1F<br />
|-<br />
| D || FFF1<br />
|}<br />
<br />
{| class="wikitable"<br />
! Gerätecode !! Stelle 5-7<br />
|-<br />
| 1 || 1FF<br />
|-<br />
| 2 || F1F<br />
|-<br />
| 3 || FF1<br />
|}<br />
<br />
Dazu (Stelle 8+9+10) noch drei statische Werte: 0FF.<br />
<br />
Der Code für '''An''' ist FF, für '''Aus''' 00.<br />
<br />
Beispiel: <br />
:<code>define My_Switch IT 1FFF1FF0FF FF 00 für A1</code><br />
Erfolgreich getestet mit CULfw V 1.49 CUL868.<br />
<br />
== Elro AB440 ==<br />
=== Möglichkeit 1: zu Intertechno-Codes umdippen ===<br />
[[File:ELRO-AB440_Funkschalter.jpg|right|thumb|Élro AB440 Funkschalter]]<br />
<br />
Günstige ELRO Funkschalter/Dimmer der Serie 440 lassen sich auch problemlos auf Intertechno Codierung "umdippen" und damit voll kompatibel mit allen möglichen A-P / 1-16 Intertechno Schaltcodes von Fhem aus nutzen. Dazu müssen die Dipschalter-Stellungen entsprechend Intertechno umgerechnet und gesetzt werden (1=ON, 0=OFF). <br />
<br />
Beispiele:<br />
{| class="wikitable"<br />
! Intertechno !! Elro Hauscode<br>1234 !! Elro Gerätecode<br>5ABCDE <br />
|-<br />
| A1 || 1111 || 111110 <br />
|-<br />
| A2 || 1111 || 011110 <br />
|-<br />
| A3 || 1111 || 101110 <br />
|-<br />
| A4 || 1111 || 001110 <br />
|-<br />
| A5 || 1111 || 110110 <br />
|-<br />
| A6 || 1111 || 010110 <br />
|-<br />
| A7 || 1111 || 100110 <br />
|-<br />
| A8 || 1111 || 000110 <br />
|-<br />
| A9 || 1111 || 111010 <br />
|-<br />
| A10 || 1111 || 011010 <br />
|-<br />
| A16 || 1111 || 000010 <br />
|-<br />
| C1 || 1011 || 111110 <br />
|-<br />
| C2 || 1011 || 011110 <br />
|}<br />
<br />
Weitere Erklärungen sind z.B. im [http://isn-systems.com/tools/it2elro Tool] der Fa. ISN-systems online berechnen lassen.<br />
<br />
Einziger Nachteil: Die originale Elro Fernbedienung funktioniert dann nicht mehr uneingeschränkt mit den Funkschaltern (eine Intertechno Fernbedienung funktioniert uneingeschränkt). Wenn man den Hauscode an der Fernbedienung einstellt, kann man durch drücken von z.T. mehreren Tasten gleichzeitig auch Intertechno schalten. Das ist aber nur was für den Notfall oder für Handakrobaten.<br />
<br />
<nowiki>15/16 -&gt; D<br />
13/14 -&gt; A+D<br />
11/12 -&gt; B+D<br />
09/10 -&gt; A+B+D<br />
07/08 -&gt; C+D<br />
05/06 -&gt; A+C+D<br />
03/04 -&gt; B+C+D<br />
01/02 -&gt; A+B+C+D</nowiki><br />
<br />
=== Möglichkeit 2: aus der vorhanden DIP-Schalterstellung den entsprechenden 10-digit InterTechno Code bestimmen ===<br />
Das ist prinzipiell ganz einfach. Hat man folgende DIP-Schalter-Stellung so muß man von links nach rechts einfach für jeden DIP gleich "ON" eine "0" und für "OFF" ein "F" definieren. Für die dargestellte DIP-Einstellung ergibt sich der damit der darunterstehende InterTechno Code:<br />
<br />
[[File:ELRO_0100101111.png]]<br />
<br />
<code>0F00F0FFFF</code><br />
<br />
Analog dazu ergeben sich für den gleichen Hauscode (Schalter 1-5) folgende Codes für die Funksteckdosen B bis E, wobei die Dose E mit der Originalfernbedienung nicht adressierbar ist, sich mit FHEM aber wunderbar schalten lässt.<br />
<br />
[[File:ELRO_0100110111.png]]<br />
<br />
<code>0F00FF0FFF</code><br />
<br />
[[File:ELRO_0100111011.png]]<br />
<br />
<code>0F00FFF0FF</code><br />
<br />
[[File:ELRO_0100111101.png]]<br />
<br />
<code>0F00FFFF0F</code><br />
<br />
[[File:ELRO_0100111110.png]]<br />
<br />
<code>0F00FFFFF0</code><br />
<br />
Dazu noch die Codes für AN = FF und AUS = F0 schaut eine vollständige Definition eines ELRO440 Funkschalters dann bsw. so aus:<br />
<br />
<nowiki> define ELRO_10110_A IT 0F00F0FFFF FF F0<br />
attr ELRO_10110_A IODev CUL_0<br />
attr ELRO_10110_A alias Stehlampe<br />
attr ELRO_10110_A fp_Grundriss 340,50,1,Stehlampe<br />
attr ELRO_10110_A group Schalter<br />
attr ELRO_10110_A model itswitch<br />
attr ELRO_10110_A room Wohnzimmer</nowiki><br />
<br />
== Wetekom/Westfalia ==<br />
[[File:Westfalia-Funksteckdose.jpg|right|thumb|Westfalia Funksteckdose ZTC-S316A.]]<br />
Der eingestellte Hauscode ist F00F0FFF0F.<br />
<br />
In den Westfalia-Baumärkten gibt es Funksteckdosen mit Westfalia-Branding. Auf der Bedienungsanleitung steht aber Wetekom.<br />
<br />
Die Funksteckdosen selbst haben zehn DIP-Switches: 1234FEDCBA, während die Fernbedienung nur sechs hat: ABCDEF. Damit die Fernbedienung mit den Funksteckdosen funktioniert, darf man nur einen der DIP-Switches 1234 pro Funksteckdose auf ON schalten.<br />
<br />
Die Schaltung der DIP-Switches ABCDEF4321 entspricht direkt und in dieser Reihenfolge (also andersrum als direkt an der Funksteckdose) dem Hauscode und zwar entspricht ein Switch auf OFF einem F im Hauscode und ein Switch auf ON einer 0 im Hauscode.<br />
<br />
Die Steckdosen werden dann mit 01 ein- und mit 10 ausgeschaltet.<br />
<br />
Beispiel:<br />
define wf_steckdose IT F00F0FFF0F 01 10<br />
<br />
== Pollin Funksteckdosen ==<br />
<br />
Vom Aussehen sind die Steckdosen von Pollin (z.B. 3fach Set 550666) mit den Westfalia ZTC identisch, aber:<br />
<br />
* die DIP Schalter sind beschriftet von 0 bis 10;<br />
* der Adresscode entspricht dem invertierten ELRO 440 Code ->also (0=ON, 1=OFF)<br />
* der Code für "An" ist 0F, für "Aus" F0<br />
<br />
Beispiel für Adresse C2:<br />
<br />
define IT_C2 IT 0F00F0000F 0F F0<br />
<br />
== me micro-electric AS 73 ==<br />
<br />
[[Datei:Me_AS_73.JPG|right|thumb|micro-electric Funksteckdose AS 73]]<br />
<br />
Die micro-electric Funksteckdosen haben 10 DIP-Schalter: 123456ABCD.<br />
<br />
Der Hauscode wird an Sender und Steckdose mit 1-6 eingestellt, der Empfängercode A-D entspricht den Kanälen auf dem Handsender.<br />
<br />
DIP-Schalterstellung OFF entspricht F und ON entspricht 0.<br />
<br />
Die Steckdosen werden mit F0 ein- und mit 0F ausgeschaltet.<br />
<br />
Empfängercodes:<br />
{| class="wikitable"<br />
! Kanal !! Position 7-10<br />
|- <br />
| A || 0FFF <br />
|-<br />
| B || F0FF <br />
|-<br />
| C || FFF0 (Achtung: bei C und D sind die Codes vertauscht) <br />
|-<br />
| D || FF0F <br />
|}<br />
<br />
Beispiel:<br />
:<code>define Schalter_ME_A IT 0F0F000FFF F0 0F</code><br />
:<code>attr Schalter_ME_A IODev CUL1</code><br />
:<code>attr Schalter_ME_A model itswitch</code><br />
<br />
== Conrad / McPower Funkschaltset 3+1 ==<br />
Dieses Funkschaltset wird unter mehreren Namen in verschiedenen Bau- und Heimwerkermärkten sowie bei Conrad (Best Nr. 640475 - 62) vertrieben. Teilweise auch mit unterschiedlichen Schaltleistungen.<br />
Die Konfiguration funktioniert genauso wie beim [http://www.fhemwiki.de/wiki/Intertechno_Code_Berechnung#FLS_100 FLS100]<br />
<br />
== Noch nicht aufgeführte Geräte ==<br />
Wer ein Intertechno-ähnliches Gerät besitzt, das in dieser Liste noch nicht aufgeführt ist, muss die Kodierung selbst bestimmen. Dazu gibt es verschiedene Möglichkeiten, die in diesem Abschnitt aufgeführt werden. Die Ergebnisse bitte hier eintragen, um Nachfolgern die Arbeit zu ersparen!<br />
<br />
=== Audio-Eingang zur Messung ===<br />
Hier wird die Fernbedienung oder der Empfänger mit einer entsprechenden Schaltung an den Mikrofon-Eingang eines Rechners angeschlossen und mit einem Audio-Programm werden die Signalverläufe aufgenommen. Diese Methode wird [http://avr.börke.de/E-Funk.htm hier] näher erläutert.<br />
<br />
=== Platine analysieren ===<br />
Platine der Fernbedienung oder des Empfängers betrachten und so die Beschaltung des Decoder/Encoder Chips ermitteln. Bei der Wetekom-Fernbedienung wird beispielsweise der Chip LP801b verwendet, der funktional identisch zum PT2262 ist. Im [http://www.escol.com.my/Datasheets_specs/pt2262_1.pdf Datenblatt des PT2262] kann man dann die Beschaltung nachsehen. Nun betrachtet man den Verlauf der Leiterbahnen auf der Platine, um die Beschaltung des Chips zu ermitteln. So kann man beispielsweise bei der Wetekom-Fernbedienung sehen, dass die DIP-Switches A bis F auf die Eingänge A0 bis A5 geschaltet sind. Außerdem sieht man, mit welchen Eingängen die einzelnen Taster verbunden sind.<br />
<br />
[[File:Westfalia-Funkfernbedienung-hinten.jpg|right|thumb|Platine der Westfalia Funkfernbedienung ZTC-TC von hinten.]]<br />
[[File:Westfalia-Funkfernbedienung-vorne.jpg|right|thumb|Platine der Westfalia Funkfernbedienung ZTC-TC von vorne.]]<br />
<br />
Nun kann man messen, zwischen welchen Chip-Eingängen und Batteriepolen eine Spannung anliegt, bzw. (ohne Batterie) zwischen welchen Chip-Eingängen und Batteriepolen es einen Durchgang gibt, um zu ermitteln, wie die DIP-Switches schalten. Im Fall der Wetekom-Fernbedienung liegt keine Spannung zwischen den Eingängen und den beiden Batteriepolen an, wenn die DIP-Switches auf OFF stehen: Der Eingang liegt also auf F (Float). Wenn die DIP-Switches auf ON stehen, liegt nur eine Spannung zwischen dem Pluspol der Batterie und dem Eingang an, es gibt also einen Durchgang zwischen dem Minuspol und dem Eingang, so dass der Eingang auf V_SS liegt und damit 0 eingestellt ist.<br />
<br />
Bei den Eingängen D0 und D1 sieht man, dass der Batterie-Pluspol immer über einen Widerstand mit dem Dateneingang verbunden ist, also normalerweise 1 anliegt. Ist aber ein Ein-Taster gedrückt, wird der Eingang D1 direkt mit dem Minuspol der Batterie verbunden, bei den Aus-Tastern der Eingang D0 (die Verbindung der Aus-Taster ist auf den Bildern nicht besonders gut zu erkennen). Durch diese Verbindung wird der Eingang auf V_SS heruntergezogen und damit ist 0 eingestellt.<br />
<br />
=== Mit CUL im Debug-Modus Rohsignale empfangen und analysieren ===<br />
Das hat wohl noch keiner versucht, wurde aber [http://forum.fhem.de/index.php/topic,5599.0.html in der FHEM Users-Mailingliste diskutiert].<br />
<br />
[[Kategorie:HOWTOS]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC&diff=6714COC2014-07-01T22:18:49Z<p>BastianW: Configuration über FHEM hinzugefügt</p>
<hr />
<div>= Beschreibung =<br />
<br />
Ein COC (CC1101-OneWire-Clock extension) bietet die gleiche Funktionalität wie ein CUL, wird jedoch nicht als USB-Gerät angeschlossen oder über ein LAN Kabel genutzt, sondern auf den Raspberry PI aufgesteckt. Der Vorteil dabei ist, das beide USB Schnittstellen auf dem Raspberry PI weiterhin genutzt werden können. Ein weiterer ist, dass das Modul im Gehäuse des Raspberry PI sitzt (bis auf die Antenne) und so nicht absteht.<br />
<br />
= Hinweise zum Betrieb mit FHEM =<br />
<br />
Einsetzbar, derzeit unterstützt:<br />
* MAX!<br />
* Intertechno<br />
* FS20<br />
<br />
= Configuration über FHEM =<br />
<br />
Folgende Config Optionen können über FHEM gesetzt werden:<br />
<br />
* set CUL1 raw l02 = LED blinkt an 1 hz (Standard)<br />
* set CUL1 raw l00 = LED blinkt nur bei Sendung<br />
* set CUL1 raw l01 = LED ist dauern an<br />
<br />
= Links = <br />
<br />
* Hersteller / Bezugsquelle für COC: [http://www.busware.de/tiki-index.php?page=COC busware.de]<br />
* Kurzanleitung: [[COC am Raspberry Pi flashen]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:COC]]<br />
[[Kategorie:Transceiver]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC&diff=6713COC2014-07-01T22:09:26Z<p>BastianW: /* Hinweise zum Betrieb mit FHEM */</p>
<hr />
<div>= Beschreibung =<br />
<br />
Ein COC (CC1101-OneWire-Clock extension) bietet die gleiche Funktionalität wie ein CUL, wird jedoch nicht als USB-Gerät angeschlossen oder über ein LAN Kabel genutzt, sondern auf den Raspberry PI aufgesteckt. Der Vorteil dabei ist, das beide USB Schnittstellen auf dem Raspberry PI weiterhin genutzt werden können. Ein weiterer ist, dass das Modul im Gehäuse des Raspberry PI sitzt (bis auf die Antenne) und so nicht absteht.<br />
<br />
= Hinweise zum Betrieb mit FHEM =<br />
<br />
Einsetzbar, derzeit unterstützt:<br />
* MAX!<br />
* Intertechno<br />
* FS20<br />
<br />
= Links = <br />
<br />
* Hersteller / Bezugsquelle für COC: [http://www.busware.de/tiki-index.php?page=COC busware.de]<br />
* Kurzanleitung: [[COC am Raspberry Pi flashen]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:COC]]<br />
[[Kategorie:Transceiver]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC&diff=6712COC2014-07-01T21:47:51Z<p>BastianW: Die Seite wurde neu angelegt: „= Beschreibung = Ein COC (CC1101-OneWire-Clock extension) bietet die gleiche Funktionalität wie ein CUL, wird jedoch nicht als USB-Gerät angeschlossen oder …“</p>
<hr />
<div>= Beschreibung =<br />
<br />
Ein COC (CC1101-OneWire-Clock extension) bietet die gleiche Funktionalität wie ein CUL, wird jedoch nicht als USB-Gerät angeschlossen oder über ein LAN Kabel genutzt, sondern auf den Raspberry PI aufgesteckt. Der Vorteil dabei ist, das beide USB Schnittstellen auf dem Raspberry PI weiterhin genutzt werden können. Ein weiterer ist, dass das Modul im Gehäuse des Raspberry PI sitzt (bis auf die Antenne) und so nicht absteht.<br />
<br />
= Hinweise zum Betrieb mit FHEM =<br />
<br />
Einsetzbar<br />
<br />
= Links = <br />
<br />
* Hersteller / Bezugsquelle für COC: [http://www.busware.de/tiki-index.php?page=COC busware.de]<br />
* Kurzanleitung: [[COC am Raspberry Pi flashen]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:COC]]<br />
[[Kategorie:Transceiver]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=COC_am_Raspberry_Pi_flashen&diff=6711COC am Raspberry Pi flashen2014-07-01T21:17:56Z<p>BastianW: Die Seite wurde neu angelegt: „== Vorausetzung == * Raspberry pi * Busware COC == Aktuelle Firmware kontrollieren == Ob ein Flashen überhaupt notwendig ist lässt sich feststellen indem m…“</p>
<hr />
<div>== Vorausetzung ==<br />
* Raspberry pi<br />
* Busware COC<br />
<br />
== Aktuelle Firmware kontrollieren ==<br />
<br />
Ob ein Flashen überhaupt notwendig ist lässt sich feststellen indem man das Changelog (http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/CHANGED) und die momentan installierte Firmware Kontrolliert.<br />
<br />
An die aktuelle Firmware vom COC kommt man wie folgt:<br />
<br />
*1.) Anmelden am FHEM<br />
*2.) Öffnen der FHEM config<br />
*3.) Suchen nach dem COC namen. In meinem Falle sieht der benötigte Eintrag wie folgt aus:<br />
<nowiki>define COC CUL /dev/ttyAMA0@38400 4624</nowiki><br />
*4.) In das Textfeld im FHEM nun folgendes eingeben<br />
<br />
<nowiki>get COC raw V</nowiki><br />
<br />
Wenn die angezeigte Firmware älter als im Changelog ist, kann man sie updaten.<br />
<br />
== Firmware updaten/flashen ==<br />
<br />
*1.) FHEM Server anhalten<br />
<nowiki>/etc/init.d/fhem stop</nowiki><br />
<br />
*2.) Eine Sudo session öffnen<br />
<nowiki>sudo -s</nowiki><br />
<br />
*3.) Aktuelle Firmware herunterladen. Bei Geräten mit "nur Funk" muss folgendes ausgeführt werden <br />
<nowiki>sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.radio_only.hex?format=raw -O /tmp/COC.hex</nowiki><br />
bei dem anderen COC folgendes:<br />
<nowiki>sudo wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/COC/COC.hex?format=raw -O /tmp/COC.hex</nowiki><br />
Dies läd das aktuelle Flash file herunter und speichert es im tmp Verzeichniss<br />
<br />
*4.) Den COC zurücksetzten und folgendes (line by line) ausführen<br />
<br />
<nowiki>if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi<br />
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi<br />
echo out > /sys/class/gpio/gpio17/direction<br />
echo out > /sys/class/gpio/gpio18/direction<br />
echo 0 > /sys/class/gpio/gpio18/value<br />
echo 0 > /sys/class/gpio/gpio17/value<br />
sleep 1<br />
echo 1 > /sys/class/gpio/gpio17/value<br />
sleep 1<br />
echo 1 > /sys/class/gpio/gpio18/value</nowiki><br />
<br />
*5.) Anschließend kann der COC geflasht werden via:<br />
<nowiki>avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109 -U flash:w:/tmp/COC.hex</nowiki><br />
<br />
[[Kategorie:HOWTOS]]<br />
[[Kategorie:COC]]<br />
[[Kategorie:Flashen]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=FHT80b&diff=2113FHT80b2013-05-31T13:58:12Z<p>BastianW: /* Links */</p>
<hr />
<div>= FHT80b Heizungs-Controller =<br />
Programmierbarer Raumthermostat, der bis zu 8 Stellantriebe [[FHT8v]] steuern kann.<br />
<br />
== Features ==<br />
Lokal programmierbare Tages- und Nachtemperatur, die pro Tag mit 4 Schaltpunkten programmiert werden kann.<br />
Zusätzliche Anbindung eines Tür/Fensterkontaktes [[FHT80TF]] zur Absenkung der Temperatur auf seperat einstellbaren Wert bei offenem Fenster (windowopen-temp). <br />
<br />
== Readings ==<br />
{| class="wikitable" <br />
! Parameter <br />
! Wertbeispiel <br />
! Erklärung<br />
|- <br />
| actuator <br />
| 0% <br />
| Position des Stellantriebes in&#160;%<br />
|- <br />
| battery <br />
| ok <br />
| Ladezustand der Batterien<br />
|- <br />
| mode <br />
| auto <br /> manu <br /><br />
| Funktionsmodus (auto, manuell oder urlaub/party)<br />
|- <br />
| state <br />
| measured-temp: 20.9 <br />
| Ist-Temperatur in ° (C oder F in FHT80B wählbar)<br />
|- <br />
| desired-temp <br />
| 21.0 <br />
| Solltemperatur in ° (C oder F in FHT80B wählbar)<br />
|- <br />
| lowtemp <br />
| ok <br />
| Frostschutz??<br />
|- <br />
| manu-temp <br />
| <br />
| Solltemperatur bei Manuell-Modus<br />
|- <br />
| night-temp <br />
| <br />
| Solltemperatur bei Absenkung<br />
|- <br />
| warnings <br />
| none <br />
| Vermutung: Batterie leer ... kann das jemand verifizieren? Es erscheint auch "Windows open".<br />
|- <br />
| window <br />
| closed <br /> open <br />
| Statusmeldungen vom FHT80-TF<br />
|- <br />
| windowsensor <br />
| ok <br />
| &#160;?? Kann ich nicht interpretieren, zeigt bei mir ok, obwohl ich keinen TF habe<br />
|- <br />
| windowopentemp <br />
| &#160;?? <br />
| Solltemperatur bei offenem Fenster<br />
|- <br />
| year <br /><p>month<br /><br />
day<br /><br />
hour<br /><br />
minute<br />
</p><br />
| <br />
| Zeitangaben für interne Uhr<br />
|- <br />
| mon-from1 <br /><p>mon-from2 <br /><br />
mon-to1 <br /><br />
mon-to2 <br /><br />
tue-from1 <br /><br />
tue-from2 <br /><br />
tue-to1 <br /><br />
tue-to2 <br /><br />
wed-from1 <br /><br />
wed-from2 <br /><br />
wed-to1 <br /><br />
wed-to2 <br /><br />
thu-from1 <br /><br />
thu-from2 <br /><br />
thu-to1 <br /><br />
thu-to2 <br /><br />
fri-from1 <br /><br />
fri-from2 <br /><br />
fri-to1 <br /><br />
fri-to2 <br /><br />
sat-from1 <br /><br />
sat-from2 <br /><br />
sat-to1 <br /><br />
sat-to2 <br /><br />
sun-from1 <br /><br />
sun-from2 <br /><br />
sun-to1 <br /><br />
sun-to2 <br />
</p><br />
| 06:00 <br />
| Angabe von Schaltzeiten im Format HH:MM<br />
|}<br />
<br />
== Hinweise zum Betrieb mit FHEM ==<br />
Vor dem Einsatz muss der FHT80b mit der Zentrale gepairt werden. Geschieht dies nicht, können nach einer Definition in FHEM zwar Daten des FHT80b empfangen werden (z.b. Raumtemperatur), es können jedoch keine Befehle gesendet werden. Zum pairen den FHT80b in Sonderfunktionen "cENT" auf "n/a" stellen, danach sofort einen Befehl (egal welchen) an die FHT80b senden. Wenn ca. 2 Minuten später Sonderfunktion cENT auf "ON" steht, war das Pairing erfolgreich. <br />
Weitere Hinweise: [[FHT mit RFR CUL pairen]]<br />
<br />
Das FHT80b akzeptiert Befehle vom FHZ1X00 (oder CUL/CUN) nur alle 115+x Sekunden (x = 0.5*letztes Byte des FHT-Hauscodes aka [[FHT-ID]], Beispiel: FHT-ID 1234, Sendeintervall = 115+0,5*4 = 117 Sekunden)<br />
Praktisch ergeben sich ca. 2 Minuten.<br />
Wenn man also mit FHEM z.B. 5 desired-temp Wechsel sendet, so wird es selbst unter optimalen Bedingungen 9- 10 Minuten dauern, bis der Letzte ausgeführt wird. <br />
<br />
Dies muss insbesondere beim Debuggen von Automationszenarien berücksichtig werden. Nicht absetztbare Kommandos werden im einem Puffer der FHZ1x00/CUL/CUN gespeichert, obwohl sie im FHEM Log als abgesetzt erscheinen. Bei größeren Installationen kann auch der Puffer überlaufen ([[EOB]] Fehlermeldung im FHEM Log). Die Puffer sind unterschiedlich gross. Am kleinsten ist er bei den FHZ1x00 mit ca. 40 Byte, was für ca. 8 FHT Befehle reicht. Am grössten ist er im CULv3 oder CUN mit 200 Bytes, das reicht für ca. 40 Befehle.<br />
<br />
Bei zu kleinem Puffer bietet FHEM die Möglichkeit einen Softpuffer (fhtsoftbuffer) zu konfiguriert. Dies ist vermutlich bei CUL/CUN weniger sinnvoll, da die Abarbeitung der gesamte Puffergrösse sehr viel Zeit in Anspruch nehmen kann. Dies könnte dazu führen, das Kommandos an FHTs erst Stunden später ausgeführt werden.<br />
<br />
<br />
Um mehr Befehle an ein FHT80b senden zu können, können bis zu 8 Befehle zusammengefasst werden, diese belegen dann nur einen "Zeitslot"<br />
<br />
Beispiel:<br />
<br />
<nowiki>set heizung_wohn desired-temp 20.5 day-temp 19.0 night-temp 16.0</nowiki><br />
<br />
Die Kommunikation des FHT80b mit den Stellventilen und dem Türkontakt erfolgt ebenso in Zeitabständen von ca. 2 Minuten. In den Pausen sind die Sender und Empfänger von FHT80b und FHT8v abgeschaltet, um jeweils Batteriestrom zu sparen.<br />
<br />
Die Übermittlung der aktuellen Tempereaturdaten an die Zentrale (FHZ, [[CUN]]) erfolgt alle 15 Minuten.<br />
<br />
Die Kommunikation mit der Zentrale ist bidirektional, d.h. die Funkzentrale sendet auch Daten an die FHT80b zurück (insbesondere Acknowledge Meldungen etc). Dies führt dazu, dass im Zusammenhang mit der [[Maximal nutzbare Geräte]] begrenzt ist. Theoretisch lassen sich maximal 17, praktisch ca. 10 FHT80bs sinnvoll mit einer Zentrale steuern.<br />
<br />
== Log-Auszug ==<br />
FHT80b sendet ca alle 2 Minuten Steuerbefehle an ggf. angeschlossene Ventilstelltriebe. Der einzustellende Wert liegt zwischen 0% und 100% und wird von FHT80b auf Basis der am Gerät eingestellten Solltemperatur und der vom Gerät gemessenen Ist-Temperatur berechnet:<br />
<br />
<nowiki>FHT &lt;device-name&gt; actuator: 0%</nowiki><br />
Ausserdem sendet FHT80b ca 4 mal pro Stunde folgenden Statusbericht:<br />
<br />
<nowiki>FHT &lt;device-name&gt; actuator: 0%<br />
FHT &lt;device-name&gt; measured-temp: 23.1 (Celsius)<br />
FHT &lt;device-name&gt; battery: ok<br />
FHT &lt;device-name&gt; lowtemp: ok<br />
FHT &lt;device-name&gt; window: closed<br />
FHT &lt;device-name&gt; windowsensor: ok<br />
FHT &lt;device-name&gt; warnings: none</nowiki><br />
<br />
Die dazu nötige bidirektionale Kommunikation kann mit FHEM <br />
mitprotokolliert werden ("set CUL raw X61" vorher nicht vergessen). Hier ein <br />
beispielhafter Mitschnitt: <br />
<br />
<nowiki>2008-09-28 13:04:18 FHT wz actuator: 0% <br />
2008-09-28 13:04:18 FHT wz actuator: 0% <br />
2008-09-28 13:04:18 FHT wz start-xmit: 17 <br />
2008-09-28 13:04:18 FHT wz FHZ:start-xmit: 17 <br />
2008-09-28 13:04:19 FHT wz measured-low: 21.9 (Celsius) <br />
2008-09-28 13:04:19 FHT wz FHZ:measured-low: 21.9 (Celsius) <br />
2008-09-28 13:04:19 FHT wz measured-high: 0 <br />
2008-09-28 13:04:19 FHT wz FHZ:measured-high: 0 <br />
2008-09-28 13:04:19 FHT wz ack: 0 <br />
2008-09-28 13:04:20 FHT wz FHZ:ack: 0 <br />
2008-09-28 13:04:20 FHT wz warnings: none <br />
2008-09-28 13:04:20 FHT wz FHZ:warnings: none <br />
2008-09-28 13:04:20 FHT wz ack: 0 <br />
2008-09-28 13:04:20 FHT wz FHZ:ack: 0 <br />
2008-09-28 13:04:20 FHT wz end-xmit: 0 <br />
2008-09-28 13:04:20 FHT wz FHZ:end-xmit: 0</nowiki><br />
Jede Zeile steht für ein Telegramm (und nicht für 3, wie beim FS20). <br />
<br />
FHZ:xxx Telegramme wurden von dem FHZ (oder CUN/CUL) gesendet, die anderen vom FHT. <br />
<br />
fhem fasst measured-low und measured-high zu measured-temp zusammen, es werden also im normalen log (telnet: inform timer) 2 Zeilen weniger gemeldet. <br />
<br />
17 ist der Housecode des protokollierten FHZ. Wenn das FHZ nicht mit dem richtigen Housecode antwortet, dann geht die Kommunikation nicht weiter. <br />
<br />
Wenn das FHT nicht an dem FHZ angemeldet ist (d.h. das FHT hat nicht den Housecode des FHZ gespeichert), werden keine Temperaturdaten uebermittelt. Set Prog:Cent:N/A setzt den FHT Housecode auf 100, dann sollte jeder FHZ auf "start-xmit" antworten, und das FHT merkt den ersten. Noch besser dem FHT via fhem was zu senden, dann muss man nicht auf die naechste Temperaturmeldung (bis zu 15 Minuten) warten. <br />
<br />
Mehr dazu auch hier: [[FHT mit RFR CUL pairen]]<br />
<br />
Falls die Gegenseite nicht wie erwartet antwortet, dann wird es nach einem Timeout das Telegramm einmal wiederholt. Falls immer noch keine korrekte <br />
Antwort vorliegt, dann wird es nach 115+x Sekunden das ganze Vorgang einmal wiederholt. <br />
<br />
Durch diese recht umfangreiche Kommunikation entsteht im Zusammenhang mit der [[Maximal nutzbare Geräte]] von ca. einem Dutzend Geräten.<br />
<br />
== Bekannte Probleme ==<br />
* Die Sendefrequenz einiger FHT80b ist nicht besonders genau auf den eigentlichen Wert von 868,35 Mhz justiert und streuen bei verschiedenen Geräten. Die FHZ 1x00PC Geräte sind gegenüber leichten Abweichungen der Frequenz durch eine etwas höhere Empfangsbandbreite eher unempfindlich. Die [[CUN]] halten die eingestellte Frequenz etwas trennschärfer ein, sodass es zu Empfangsproblemen kommen kann. Können Signale eines FHT nicht empfangen werden, kann es sinnvoll sein, probeweise die Frequenz des CUL zu ändern (in 0,05 Mhz Schritten). <br />
* Der äußerlich gleich aussehende [[FHT8]] ist nicht mit einer Zentrale/FHEM einsetzbar. <br />
* In seltenen Fällen fehlerhafte Aktuator Meldungen, siehe [[Lime-Protection Bug]] <br />
* FHTs hören in der Regel nach 5-10 Tagen auf, von sich aus Daten zur Zentrale zu senden, wenn sonst keine Kommunikation mit dem FHT stattfindet.. Ein regelmässiges z.b. wöchenliches Stellen der Uhrzeit oder wöchentliches Abfragen der wichtigsten Parameter (report2 = 255) vorteilhaft zu eher "funklastarmen" Zeiten schafft Abhilfe; z.B.:<br />
<pre>define fht_reportZimmer1 at *04:00:00 {if ($wday == 1) { fhem("set hzg_Zimmer1 report2 255") } }</pre><br />
* Die o.g. Situation bringt häufig auch die Actuator-Meldung "'''unknown_69'''" mit sich. Eine Beschreibung zur Behebung findet sich in [https://groups.google.com/d/msg/fhem-users/aft8E1LrsDE/8D-TsMrYY5wJ diesem Forums-post] .<br />
* Der Betrieb von FHTs mit einen [[RFR CUL]] kann zu besonderen Problemen führen, siehe [[RFR CUL und FHT80]] <br />
<br />
Weiterführende Betrachtungen hier: [[Kommunikationsprobleme mit FHT]]<br />
<br />
== Links ==<br />
* Anleitung [http://www.eq-3.de/fileadmin/pdfs/einleitungen/FHT80B-3_UM_G_091111.pdf hier] [http://www.elv-downloads.de/Assets/Produkte/8/856/85643/Downloads/85643_FHT80B_UM.pdf oder hier] als PDF<br />
* Baugleich auch als Set ('''FHT80b''', [[FHT80TF]]) von Medion (bei Aldi oder ebay): [http://www.haushaltselektronik.de/automatische-funk-heizkoerpersteuerung-lifetec-md-12050-aldi-nord/ Lifetec MD12050]<br />
* [[Kommunikationsprobleme mit FHT]] <br />
=== Verweis auf Code Snippets ===<br />
* [[FHT-Report regelmäßig erneuern]]<br />
* [[FHT: Datum und Zeit von fhem setzen lassen]] <br />
<br />
[[Kategorie:FHT Components]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=FHT8v&diff=2110FHT8v2013-05-31T08:21:44Z<p>BastianW: /* FHT8v */</p>
<hr />
<div>= FHT8v =<br />
Stellantrieb/Ventilantrieb für Heizungsventile<br />
<br />
== Features ==<br />
Aktor; wird anstelle der normalen Heizkörperthermostaten montiert und öffnet/schliesst das Heizungsventil mit einem Motor.<br />
Die dazu nötigen Daten werden in der Regel durch ein zugeordnetes ("gepairtes") Raumthermostat [[FHT80b]] übermittelt.<br />
Der Antrieb verfügt über ein kleines Display, in dem aktueller Öffnungsgrad (0-99%), Funklage, Batteriekapazität und Status angezeigt werden.<br />
<br />
== Hinweise zum Betrieb mit FHEM ==<br />
Einsetzbar. In der Regel wird man mit FHEM die zugehörige FHT80b ansprechen, die dann in Folge die bis zu 8 gepairten Stellantriebe steuert. Es ist mit jedoch auch möglich, Stellantriebe mit FHEM direkt anzusprechen, siehe [[FHT 8v direkt ansprechen]]<br />
<br />
== Bekannte Probleme ==<br />
(Timing Probleme bei Direktsteuerung mittels CUNO gelöst)<br />
<br />
== Links ==<br />
Anleitung [http://www.elv-downloads.de/service/manuals/62522_FHT8V_eQ3_um.pdf PDF]<br />
<br />
Liste kompatibler Heizungsventile [http://www.elv-downloads.de/service/manuals/ventilkompatibilitaet.pdf PDF]<br />
[[Kategorie:FHT Components]]<br />
[[Kategorie:Heizungsventile]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=Update&diff=2106Update2013-05-30T20:55:11Z<p>BastianW: Schreibfehler korrigiert</p>
<hr />
<div>Das aktualisieren von FHEM kann direkt über die FHEM Webseite erfolgen. Bitte kontrollieren sie vor dem Update zuerst mittels:<br />
<br />
<pre><br />
update check <br />
</pre><br />
<br />
ob es überhaupt ein neues Update gibt und welche Dateien hier ausgetauscht werden (die angezeigten Infos sollten in einem Textfile abspeichert werden. Mit diesen Infos kann gezielter nach Problemen, die vielleicht nach einem Update auftreten, gesucht werden). Anschließend kann mittels:<br />
<br />
<pre><br />
update<br />
</pre><br />
<br />
das Update eingespielt werden. Zu beachten hierbei ist, das die Befehle auf der FHEM Webseite oben (Eingabebox) eingegeben werden und anschließend nicht der "save" Button auf der Webseite sondern die "enter" Taste auf der Tastatur gedrückt werden muss.<br />
<br />
Gibt es kein Update für FHEM sieht die Ausgabe z.B. nach "update check" wie folgt aus:<br />
<br />
<pre><br />
List of new / modified files since last update:<br />
nothing to do...<br />
</pre></div>BastianWhttp://wiki.fhem.de/w/index.php?title=Update&diff=2105Update2013-05-30T20:54:06Z<p>BastianW: Die Seite wurde neu angelegt: „Das aktualisieren von FHEM kann direkt über die FHEM Webseite erfolgen. Bitte kontrollieren vor dem Update zuerst mittels: <pre> update check </pre> ob es …“</p>
<hr />
<div>Das aktualisieren von FHEM kann direkt über die FHEM Webseite erfolgen. Bitte kontrollieren vor dem Update zuerst mittels:<br />
<br />
<pre><br />
update check <br />
</pre><br />
<br />
ob es überhaupt ein neues Update gibt und welche Datei-Änderungen hier betroffen sind (die angezeigten Infos sollten in einem Textfile abspeichert werden. Mit diesen Infos kann gezielter nach Problemen, die vielleicht nach einem Update auftreten, gesucht werden). Anschließend kann mittels:<br />
<br />
<pre><br />
update<br />
</pre><br />
<br />
das Update eingespielt werden. Zu beachten hierbei ist, das die Befehle auf der FHEM Webseite oben (Eingabebox) eingegeben werden und anschließend nicht der "save" Button auf der Webseite sondern die "enter" Taste auf der Tastatur gedrückt werden muss.<br />
<br />
Gibt es kein Update für FHEM sieht die Ausgabe z.B. nach "update check" wie folgt aus:<br />
<br />
<pre><br />
List of new / modified files since last update:<br />
nothing to do...<br />
</pre></div>BastianWhttp://wiki.fhem.de/w/index.php?title=FHT80b&diff=2104FHT80b2013-05-30T20:17:11Z<p>BastianW: /* Readings */</p>
<hr />
<div>= FHT80b Heizungs-Controller =<br />
Programmierbarer Raumthermostat, der bis zu 8 Stellantriebe [[FHT8v]] steuern kann.<br />
<br />
== Features ==<br />
Lokal programmierbare Tages- und Nachtemperatur, die pro Tag mit 4 Schaltpunkten programmiert werden kann.<br />
Zusätzliche Anbindung eines Tür/Fensterkontaktes [[FHT80TF]] zur Absenkung der Temperatur auf seperat einstellbaren Wert bei offenem Fenster (windowopen-temp). <br />
<br />
== Readings ==<br />
{| class="wikitable" <br />
! Parameter <br />
! Wertbeispiel <br />
! Erklärung<br />
|- <br />
| actuator <br />
| 0% <br />
| Position des Stellantriebes in&#160;%<br />
|- <br />
| battery <br />
| ok <br />
| Ladezustand der Batterien<br />
|- <br />
| mode <br />
| auto <br /> manu <br /><br />
| Funktionsmodus (auto, manuell oder urlaub/party)<br />
|- <br />
| state <br />
| measured-temp: 20.9 <br />
| Ist-Temperatur in ° (C oder F in FHT80B wählbar)<br />
|- <br />
| desired-temp <br />
| 21.0 <br />
| Solltemperatur in ° (C oder F in FHT80B wählbar)<br />
|- <br />
| lowtemp <br />
| ok <br />
| Frostschutz??<br />
|- <br />
| manu-temp <br />
| <br />
| Solltemperatur bei Manuell-Modus<br />
|- <br />
| night-temp <br />
| <br />
| Solltemperatur bei Absenkung<br />
|- <br />
| warnings <br />
| none <br />
| Vermutung: Batterie leer ... kann das jemand verifizieren? Es erscheint auch "Windows open".<br />
|- <br />
| window <br />
| closed <br /> open <br />
| Statusmeldungen vom FHT80-TF<br />
|- <br />
| windowsensor <br />
| ok <br />
| &#160;?? Kann ich nicht interpretieren, zeigt bei mir ok, obwohl ich keinen TF habe<br />
|- <br />
| windowopentemp <br />
| &#160;?? <br />
| Solltemperatur bei offenem Fenster<br />
|- <br />
| year <br /><p>month<br /><br />
day<br /><br />
hour<br /><br />
minute<br />
</p><br />
| <br />
| Zeitangaben für interne Uhr<br />
|- <br />
| mon-from1 <br /><p>mon-from2 <br /><br />
mon-to1 <br /><br />
mon-to2 <br /><br />
tue-from1 <br /><br />
tue-from2 <br /><br />
tue-to1 <br /><br />
tue-to2 <br /><br />
wed-from1 <br /><br />
wed-from2 <br /><br />
wed-to1 <br /><br />
wed-to2 <br /><br />
thu-from1 <br /><br />
thu-from2 <br /><br />
thu-to1 <br /><br />
thu-to2 <br /><br />
fri-from1 <br /><br />
fri-from2 <br /><br />
fri-to1 <br /><br />
fri-to2 <br /><br />
sat-from1 <br /><br />
sat-from2 <br /><br />
sat-to1 <br /><br />
sat-to2 <br /><br />
sun-from1 <br /><br />
sun-from2 <br /><br />
sun-to1 <br /><br />
sun-to2 <br />
</p><br />
| 06:00 <br />
| Angabe von Schaltzeiten im Format HH:MM<br />
|}<br />
<br />
== Hinweise zum Betrieb mit FHEM ==<br />
Vor dem Einsatz muss der FHT80b mit der Zentrale gepairt werden. Geschieht dies nicht, können nach einer Definition in FHEM zwar Daten des FHT80b empfangen werden (z.b. Raumtemperatur), es können jedoch keine Befehle gesendet werden. Zum pairen den FHT80b in Sonderfunktionen "cENT" auf "n/a" stellen, danach sofort einen Befehl (egal welchen) an die FHT80b senden. Wenn ca. 2 Minuten später Sonderfunktion cENT auf "ON" steht, war das Pairing erfolgreich. <br />
Weitere Hinweise: [[FHT mit RFR CUL pairen]]<br />
<br />
Das FHT80b akzeptiert Befehle vom FHZ1X00 (oder CUL/CUN) nur alle 115+x Sekunden (x = 0.5*letztes Byte des FHT-Hauscodes aka [[FHT-ID]], Beispiel: FHT-ID 1234, Sendeintervall = 115+0,5*4 = 117 Sekunden)<br />
Praktisch ergeben sich ca. 2 Minuten.<br />
Wenn man also mit FHEM z.B. 5 desired-temp Wechsel sendet, so wird es selbst unter optimalen Bedingungen 9- 10 Minuten dauern, bis der Letzte ausgeführt wird. <br />
<br />
Dies muss insbesondere beim Debuggen von Automationszenarien berücksichtig werden. Nicht absetztbare Kommandos werden im einem Puffer der FHZ1x00/CUL/CUN gespeichert, obwohl sie im FHEM Log als abgesetzt erscheinen. Bei größeren Installationen kann auch der Puffer überlaufen ([[EOB]] Fehlermeldung im FHEM Log). Die Puffer sind unterschiedlich gross. Am kleinsten ist er bei den FHZ1x00 mit ca. 40 Byte, was für ca. 8 FHT Befehle reicht. Am grössten ist er im CULv3 oder CUN mit 200 Bytes, das reicht für ca. 40 Befehle.<br />
<br />
Bei zu kleinem Puffer bietet FHEM die Möglichkeit einen Softpuffer (fhtsoftbuffer) zu konfiguriert. Dies ist vermutlich bei CUL/CUN weniger sinnvoll, da die Abarbeitung der gesamte Puffergrösse sehr viel Zeit in Anspruch nehmen kann. Dies könnte dazu führen, das Kommandos an FHTs erst Stunden später ausgeführt werden.<br />
<br />
<br />
Um mehr Befehle an ein FHT80b senden zu können, können bis zu 8 Befehle zusammengefasst werden, diese belegen dann nur einen "Zeitslot"<br />
<br />
Beispiel:<br />
<br />
<nowiki>set heizung_wohn desired-temp 20.5 day-temp 19.0 night-temp 16.0</nowiki><br />
<br />
Die Kommunikation des FHT80b mit den Stellventilen und dem Türkontakt erfolgt ebenso in Zeitabständen von ca. 2 Minuten. In den Pausen sind die Sender und Empfänger von FHT80b und FHT8v abgeschaltet, um jeweils Batteriestrom zu sparen.<br />
<br />
Die Übermittlung der aktuellen Tempereaturdaten an die Zentrale (FHZ, [[CUN]]) erfolgt alle 15 Minuten.<br />
<br />
Die Kommunikation mit der Zentrale ist bidirektional, d.h. die Funkzentrale sendet auch Daten an die FHT80b zurück (insbesondere Acknowledge Meldungen etc). Dies führt dazu, dass im Zusammenhang mit der [[Maximal nutzbare Geräte]] begrenzt ist. Theoretisch lassen sich maximal 17, praktisch ca. 10 FHT80bs sinnvoll mit einer Zentrale steuern.<br />
<br />
== Log-Auszug ==<br />
FHT80b sendet ca alle 2 Minuten Steuerbefehle an ggf. angeschlossene Ventilstelltriebe. Der einzustellende Wert liegt zwischen 0% und 100% und wird von FHT80b auf Basis der am Gerät eingestellten Solltemperatur und der vom Gerät gemessenen Ist-Temperatur berechnet:<br />
<br />
<nowiki>FHT &lt;device-name&gt; actuator: 0%</nowiki><br />
Ausserdem sendet FHT80b ca 4 mal pro Stunde folgenden Statusbericht:<br />
<br />
<nowiki>FHT &lt;device-name&gt; actuator: 0%<br />
FHT &lt;device-name&gt; measured-temp: 23.1 (Celsius)<br />
FHT &lt;device-name&gt; battery: ok<br />
FHT &lt;device-name&gt; lowtemp: ok<br />
FHT &lt;device-name&gt; window: closed<br />
FHT &lt;device-name&gt; windowsensor: ok<br />
FHT &lt;device-name&gt; warnings: none</nowiki><br />
<br />
Die dazu nötige bidirektionale Kommunikation kann mit FHEM <br />
mitprotokolliert werden ("set CUL raw X61" vorher nicht vergessen). Hier ein <br />
beispielhafter Mitschnitt: <br />
<br />
<nowiki>2008-09-28 13:04:18 FHT wz actuator: 0% <br />
2008-09-28 13:04:18 FHT wz actuator: 0% <br />
2008-09-28 13:04:18 FHT wz start-xmit: 17 <br />
2008-09-28 13:04:18 FHT wz FHZ:start-xmit: 17 <br />
2008-09-28 13:04:19 FHT wz measured-low: 21.9 (Celsius) <br />
2008-09-28 13:04:19 FHT wz FHZ:measured-low: 21.9 (Celsius) <br />
2008-09-28 13:04:19 FHT wz measured-high: 0 <br />
2008-09-28 13:04:19 FHT wz FHZ:measured-high: 0 <br />
2008-09-28 13:04:19 FHT wz ack: 0 <br />
2008-09-28 13:04:20 FHT wz FHZ:ack: 0 <br />
2008-09-28 13:04:20 FHT wz warnings: none <br />
2008-09-28 13:04:20 FHT wz FHZ:warnings: none <br />
2008-09-28 13:04:20 FHT wz ack: 0 <br />
2008-09-28 13:04:20 FHT wz FHZ:ack: 0 <br />
2008-09-28 13:04:20 FHT wz end-xmit: 0 <br />
2008-09-28 13:04:20 FHT wz FHZ:end-xmit: 0</nowiki><br />
Jede Zeile steht für ein Telegramm (und nicht für 3, wie beim FS20). <br />
<br />
FHZ:xxx Telegramme wurden von dem FHZ (oder CUN/CUL) gesendet, die anderen vom FHT. <br />
<br />
fhem fasst measured-low und measured-high zu measured-temp zusammen, es werden also im normalen log (telnet: inform timer) 2 Zeilen weniger gemeldet. <br />
<br />
17 ist der Housecode des protokollierten FHZ. Wenn das FHZ nicht mit dem richtigen Housecode antwortet, dann geht die Kommunikation nicht weiter. <br />
<br />
Wenn das FHT nicht an dem FHZ angemeldet ist (d.h. das FHT hat nicht den Housecode des FHZ gespeichert), werden keine Temperaturdaten uebermittelt. Set Prog:Cent:N/A setzt den FHT Housecode auf 100, dann sollte jeder FHZ auf "start-xmit" antworten, und das FHT merkt den ersten. Noch besser dem FHT via fhem was zu senden, dann muss man nicht auf die naechste Temperaturmeldung (bis zu 15 Minuten) warten. <br />
<br />
Mehr dazu auch hier: [[FHT mit RFR CUL pairen]]<br />
<br />
Falls die Gegenseite nicht wie erwartet antwortet, dann wird es nach einem Timeout das Telegramm einmal wiederholt. Falls immer noch keine korrekte <br />
Antwort vorliegt, dann wird es nach 115+x Sekunden das ganze Vorgang einmal wiederholt. <br />
<br />
Durch diese recht umfangreiche Kommunikation entsteht im Zusammenhang mit der [[Maximal nutzbare Geräte]] von ca. einem Dutzend Geräten.<br />
<br />
== Bekannte Probleme ==<br />
* Die Sendefrequenz einiger FHT80b ist nicht besonders genau auf den eigentlichen Wert von 868,35 Mhz justiert und streuen bei verschiedenen Geräten. Die FHZ 1x00PC Geräte sind gegenüber leichten Abweichungen der Frequenz durch eine etwas höhere Empfangsbandbreite eher unempfindlich. Die [[CUN]] halten die eingestellte Frequenz etwas trennschärfer ein, sodass es zu Empfangsproblemen kommen kann. Können Signale eines FHT nicht empfangen werden, kann es sinnvoll sein, probeweise die Frequenz des CUL zu ändern (in 0,05 Mhz Schritten). <br />
* Der äußerlich gleich aussehende [[FHT8]] ist nicht mit einer Zentrale/FHEM einsetzbar. <br />
* In seltenen Fällen fehlerhafte Aktuator Meldungen, siehe [[Lime-Protection Bug]] <br />
* FHTs hören in der Regel nach 5-10 Tagen auf, von sich aus Daten zur Zentrale zu senden, wenn sonst keine Kommunikation mit dem FHT stattfindet.. Ein regelmässiges z.b. wöchenliches Stellen der Uhrzeit oder wöchentliches Abfragen der wichtigsten Parameter (report2 = 255) vorteilhaft zu eher "funklastarmen" Zeiten schafft Abhilfe; z.B.:<br />
<pre>define fht_reportZimmer1 at *04:00:00 {if ($wday == 1) { fhem("set hzg_Zimmer1 report2 255") } }</pre><br />
* Die o.g. Situation bringt häufig auch die Actuator-Meldung "'''unknown_69'''" mit sich. Eine Beschreibung zur Behebung findet sich in [https://groups.google.com/d/msg/fhem-users/aft8E1LrsDE/8D-TsMrYY5wJ diesem Forums-post] .<br />
* Der Betrieb von FHTs mit einen [[RFR CUL]] kann zu besonderen Problemen führen, siehe [[RFR CUL und FHT80]] <br />
<br />
Weiterführende Betrachtungen hier: [[Kommunikationsprobleme mit FHT]]<br />
<br />
== Links ==<br />
* Anleitung [http://www.eq-3.de/fileadmin/pdfs/einleitungen/FHT80B-3_UM_G_091111.pdf] PDF<br />
* Baugleich auch als Set ('''FHT80b''', [[FHT80TF]]) von Medion (bei Aldi oder ebay): [http://www.haushaltselektronik.de/automatische-funk-heizkoerpersteuerung-lifetec-md-12050-aldi-nord/ Lifetec MD12050]<br />
* [[Kommunikationsprobleme mit FHT]] <br />
=== Verweis auf Code Snippets ===<br />
* [[FHT-Report regelmäßig erneuern]]<br />
* [[FHT: Datum und Zeit von fhem setzen lassen]] <br />
<br />
[[Kategorie:FHT Components]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=Wetter_und_Wettervorhersagen&diff=2103Wetter und Wettervorhersagen2013-05-30T18:31:40Z<p>BastianW: Die Seite wurde neu angelegt: „Mit dem [http://fhem.de/commandref.html#Weather Weather command] können Wetter Vorhersagen von der Yahoo Wetterseite abgefragt werden. Zuerst einmal besuche…“</p>
<hr />
<div>Mit dem [http://fhem.de/commandref.html#Weather Weather command] können Wetter Vorhersagen von der Yahoo Wetterseite abgefragt werden. <br />
<br />
Zuerst einmal besuchen wir die [http://weather.yahoo.com Yahoo Wetterseite] und öffnen den Wetterbericht für die jeweilige Stadt (z.B. [http://weather.yahoo.com/germany/berlin/berlin-638242 Berlin]). In der URL des Wetterberichtet findet sich dann die sogenannte WOEID (WHERE-ON-EARTH-ID). Sie bildet die Wetterinfos die FHEM abfragen soll und für Berlin ist dies die Nummer 638242.<br />
<br />
In unserer fhem.cfg tragen wir dann folgendes ein:<br />
<br />
<pre><br />
# ————– Wetterdaten erfassen ————-<br />
define MeinWetter Weather 638242 3600 de<br />
attr MeinWetter room Wettervorhersage<br />
<br />
# — Logfile alle Wetter Daten —<br />
define FileLog_MeinWetter FileLog ./log/meinwetter-%Y-%m.log MeinWetter<br />
attr FileLog_MeinWetter logtype text<br />
attr FileLog_MeinWetter room Wettervorhersage<br />
<br />
# attr MeinWetter localicons 1<br />
<br />
# — Wetter Icons hinzufügen —<br />
define weblink_meinwetter weblink htmlCode {WeatherAsHtml("MeinWetter")}<br />
attr weblink_meinwetter room Wettervorhersage<br />
</pre><br />
<br />
Das hat zur folge, das FHEM nun die Wetterdaten für Berlin (638242) jede Stunde (3600) neu abholt.</div>BastianWhttp://wiki.fhem.de/w/index.php?title=E-Mail_senden&diff=2094E-Mail senden2013-05-30T16:50:24Z<p>BastianW: /* sendEmail */</p>
<hr />
<div>= Linux =<br />
== FB 7170 (non-chroot) ==<br />
Datei 99_email.pm im Modul-Verzeichnis mit folgender Funktion anlegen (oder in bestehende 99_irgendwas.pm kopieren):<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; | /usr/bin/mail send -i - -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@@mail.de','Subject','text 123') }</code><br />
<br />
== FB 7390 ([[AVM Fritz!Box]]) ==<br />
'''Seit 10/2012 ist diese Funktion Bestandteil der fhem Standardauslieferung. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_mail($$$) '''(Groß-Kleinschreibung beachten)<br />
Da der Dateiname von FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Programmdatei nicht automatisch beim Start von fhem geladen. fhem muss zum Laden dieser Programmdatei aufgefordert werden. Dazu (zB in 99_myUtils.pm) die Zeile ''use FritzBoxUtils;''einfügen.<br />
Mit dem install von AVM.de wird fhem in einer chroot-Umgebung ausgeführt, die den Zugriff auf die Mailfunktion der Fritzbox nicht zulässt. Daher muss fhem in der [http://fhem.de/fhem.html#Download Version von fhem.de] installiert sein. Sollte Ihre Fritzbox bisher mit dem install von AVM laufen, kann (nach einem backup!) das image von fhem.de einfach drüberinstalliert werden, es sollten dabei alle Einstellungen erhalten bleiben.<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; &gt; /var/tmp/fhem_nachricht.txt&quot;);<br />
system(&quot;/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
system(&quot;rm /var/tmp/fhem_nachricht.txt&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
bzw. <code>{ FB_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
'''Hinweis:'''Wenn der Aufruf der Mailfunktion aus einem notify oder at erfolgt, muss das @@ in der Adresse des mailempfängers gedoppelt werden, da ein einfaches @ sonst durch den getriggerten device-namen ersetzt würde. Bei Verwendung in der fhem-Kommandozeile oder einem eigenen *Utils.pm ist diese Doppelung nicht erforderlich. Bitte bei den ersten Mails ins Log schauen, ob die Mailadresse wie gewünscht verwendet wird.<br />
<br />
<br />
Dem Mailer können noch weitere Parameter hinzugefügt werden. Mehr dazu siehe: [http://www.wehavemorefun.de/fritzbox/Mailer Mailer]<br />
<br />
== Synology DiskStation ==<br />
Beim DSM 3.2 gab es keinen <code>sendmail</code>-Befehl, sondern nur eine Funktion für den Versand der System-Benachrichtigungen.<br />
Interessanterweise funktionierte aber der <code>php-mail</code>-Befehl, so dass man mittels folgendem Modul Mails frei versenden kann:<br />
<br />
<nowiki>sub sendmail($$$) {<br />
my($empf, $subj, $nachricht) = @_;<br />
system(&quot;php -r 'mail(\&quot;$empf\&quot;,\&quot;$subj\&quot;,\&quot;$nachricht\&quot;);'&quot;);<br />
undef;<br />
}</nowiki><br />
== Raspberry Pi ==<br />
In der weezy-Version, wie sie von busware zur Verfügung gestellt wird, muss noch sendEmail nachinstalliert werden:<br />
<br />
<pre><br />
sudo apt-get update<br />
sudo apt-get install sendEmail<br />
</pre><br />
<br />
in der [[99_myUtils_anlegen|99_myUtils]] folgende sub einfügen:<br />
<br />
<nowiki>######## DebianMail Mail auf dem RPi versenden ############ <br />
sub <br />
DebianMail <br />
{ <br />
my $rcpt = shift;<br />
my $subject = shift; <br />
my $text = shift; <br />
my $ret = &quot;&quot;;<br />
my $sender = &quot;absender\@account.de&quot;; <br />
my $konto = &quot;kontoname\@account.de&quot;;<br />
my $passwrd = &quot;passwrd&quot;;<br />
my $provider = &quot;smtp.provider.de&quot;;<br />
Log 1, &quot;sendEmail RCP: $rcpt&quot;;<br />
Log 1, &quot;sendEmail Subject: $subject&quot;;<br />
Log 1, &quot;sendEmail Text: $text&quot;;<br />
<br />
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no);<br />
$ret =~ s,[\r\n]*,,g; # remove CR from return-string <br />
Log 1, &quot;sendEmail returned: $ret&quot;; <br />
}</nowiki><br />
Beim Aufruf der Funktion gibt es zwei unterschiedliche Verhaltensweisen zu beachten. Wird DebianMail durch ein Fhem-Ereignis als Makro mit "Transferzeichen", wie @ oder&#160;% aufgerufen, so sind diese innerhalb des Aufrufs von DebianMail zu maskieren.<br />
<br />
Siehe auch commandref:<br />
◾The character @ will be replaced with the device name. To use @ in the text itself, use the double mode (@@).<br />
◾The macro&#160;%&lt;parameter&gt; will expand to the current value of the named parameter. This can be either a parameter from the device definition or a parameter from the set or get command.<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges notify Fenster:Window:.*,.*Low.Batt*. {\<br />
DebianMail('email@@email.domain','Subject','Text');;\<br />
}</nowiki><br />
in allen anderen Fällen muss die Maskierung entfallen:<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges at *01:00:00 {\<br />
DebianMail('email@email.domain','Subject','Text');;\<br />
}</nowiki><br />
<br />
== BeagleBoard-xM ==<br />
Auf einem [[:Kategorie:BeagleBoard-xM|BeagleBoard-xM]] mit einem [http://en.opensuse.org/HCL:BeagleBoard-xM OpenSUSE 12.2] kann man ebenfalls das Perl-Programm ''sendEmail''wie beim RPi nutzen. Dies gibt es aber nicht in den Repositorys von openSUSE, sondern man muss sich ''sendEmail''als Source herunterladen. Das geht am einfachsten per ''wget'', welches man ebenfalls erst installieren muss (aber aus einem Repository)<br />
<br />
<nowiki>$ zypper in wget<br />
$ cd /opt<br />
$ wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz<br />
$ tar xvfz sendEmail-v1.56.tar.gz<br />
$ cd sendEmail-v1.56<br />
$ cp sendMail /usr/local/bin</nowiki><br />
Dann geht man weiter vor wie unter RPi beschrieben (anlegen der SUB-Routine in 99_myUtils usw.).<br />
<br />
'''Hinweis:'''Die Version 1.56 von ''sendEmail''ist Stand Januar 2013 die aktuelle. Da diese Programmversion von 2009 stammt, ist mit neuen Versionen selten zu rechnen. Vlt. schauen Sie trotzdem vorher auf der [http://caspian.dotconf.net/menu/Software/SendEmail/ Homepage von sendEmail] nach.<br />
<br />
= Windows =<br />
1. Kopiere die Datei sendEmail.exe* in Dein FHEM Verzeichnis.<br />
(Hier c:\fhem-5.0\)<br />
<br />
Quelle: [http://caspian.dotconf.net/menu/Software/SendEmail/ http://caspian.dotconf.net/menu/Software/SendEmail/]<br />
<br />
2. Erstelle im FHEM Verzeichnis die Datei wmail.bat mit folgendem<br />
Inhalt (eine Zeile):<br />
<br />
<nowiki>sendEmail -f absender@domain.de -u "%1" -m " " -s SMTP-SERVERAdresse -xu SMTP_USERNAME -xp SMTP_PASSWORT -t empfänger@domain.de -o message-header="X-Message-Flag: FHEM"</nowiki><br />
<br />
3. Beispiele fhem.cfg<br />
<br />
3.a Mail wenn sich der Status von Heizung.* oder Hzg.* ändert<br />
<br />
<nowiki>define Mail_Heizung notify Heizung.*|Hzg.* { system("wmail @:%")}</nowiki><br />
<br />
3.b Mail bei Signal Aussentemperatur (Für diese Beispiel wird getstate<br />
benötigt [http://fhem.de/commandref.html#getstate http://fhem.de/commandref.html#getstate])<br />
<br />
<nowiki>define Mail_Aussentemperatur notify Aussentemperatur {\<br />
my ($val);;\<br />
$val = fhem "getstate @";;\<br />
system("wmail \"@: $val\"");;\<br />
}</nowiki><br />
= Probleme =<br />
== sendEmail ==<br />
Falls man keine E-Mails verschicken kann, kann man als ersten Test prüfen, ob sendEmail als solches funktioniert und die Konfiguration (Benutzer, Passwort, Server-Name usw.) des Mail-Kontos, über das die Mails abgesetzt werden sollen, richtig ist.<br />
<br />
Hierzu setzt man in der FHEM-Befehlszeile die folgende Anweisung ab:<br />
<br />
<nowiki>{ SUB-Routinen-Name('EMailAdresse@Mail.Domain','Test','Test-Text');; }</nowiki><br />
und ersetzt ''SUB-Routinen-Name''mit dem Namen der in 99_myUtils erzeugten Prozedur. Statt ''EMailAdresse@Mail.Domain'' trägt man noch eine gültige E-Mail-Adresse ein und bestätigt den Befehl dann mittels &lt;Enter&gt; (nicht "save"). Empfangen Sie nicht kurzfristig eine entsprechende E-Mail, ist sehr wahrscheinlich an den Zugangsdaten etwas verkehrt. <br />
<br />
Vor dem testen der Routine oben kann sendEmail auch über die Console (z.b. via Putty) getestet werden:<br />
<br />
<pre><br />
sendEmail -f 'fhemsystem@meinedomain.tld' -t 'ich@meinedomain.tld' -u 'subject' -m 'body' -s 'meinmailserver.meinedomain.de' -xu 'fhemmailer' -xp 'geheimespassword' -o tls=no<br />
</pre><br />
<br />
== Email laut log gesendet aber nicht ist angekommen? ==<br />
Dann bitte in der Fritzbox Oberfläche überpüfen, ob unter "System" -> "Push Service" selbiger eingerichtet und aktiviert wurde. <br />
<br />
[[Kategorie:HOWTOS]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=E-Mail_senden&diff=2093E-Mail senden2013-05-30T16:15:17Z<p>BastianW: /* sendEmail */ Speicherort der Logs hinzugefügt</p>
<hr />
<div>= Linux =<br />
== FB 7170 (non-chroot) ==<br />
Datei 99_email.pm im Modul-Verzeichnis mit folgender Funktion anlegen (oder in bestehende 99_irgendwas.pm kopieren):<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; | /usr/bin/mail send -i - -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@@mail.de','Subject','text 123') }</code><br />
<br />
== FB 7390 ([[AVM Fritz!Box]]) ==<br />
'''Seit 10/2012 ist diese Funktion Bestandteil der fhem Standardauslieferung. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_mail($$$) '''(Groß-Kleinschreibung beachten)<br />
Da der Dateiname von FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Programmdatei nicht automatisch beim Start von fhem geladen. fhem muss zum Laden dieser Programmdatei aufgefordert werden. Dazu (zB in 99_myUtils.pm) die Zeile ''use FritzBoxUtils;''einfügen.<br />
Mit dem install von AVM.de wird fhem in einer chroot-Umgebung ausgeführt, die den Zugriff auf die Mailfunktion der Fritzbox nicht zulässt. Daher muss fhem in der [http://fhem.de/fhem.html#Download Version von fhem.de] installiert sein. Sollte Ihre Fritzbox bisher mit dem install von AVM laufen, kann (nach einem backup!) das image von fhem.de einfach drüberinstalliert werden, es sollten dabei alle Einstellungen erhalten bleiben.<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; &gt; /var/tmp/fhem_nachricht.txt&quot;);<br />
system(&quot;/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
system(&quot;rm /var/tmp/fhem_nachricht.txt&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
bzw. <code>{ FB_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
'''Hinweis:'''Wenn der Aufruf der Mailfunktion aus einem notify oder at erfolgt, muss das @@ in der Adresse des mailempfängers gedoppelt werden, da ein einfaches @ sonst durch den getriggerten device-namen ersetzt würde. Bei Verwendung in der fhem-Kommandozeile oder einem eigenen *Utils.pm ist diese Doppelung nicht erforderlich. Bitte bei den ersten Mails ins Log schauen, ob die Mailadresse wie gewünscht verwendet wird.<br />
<br />
<br />
Dem Mailer können noch weitere Parameter hinzugefügt werden. Mehr dazu siehe: [http://www.wehavemorefun.de/fritzbox/Mailer Mailer]<br />
<br />
== Synology DiskStation ==<br />
Beim DSM 3.2 gab es keinen <code>sendmail</code>-Befehl, sondern nur eine Funktion für den Versand der System-Benachrichtigungen.<br />
Interessanterweise funktionierte aber der <code>php-mail</code>-Befehl, so dass man mittels folgendem Modul Mails frei versenden kann:<br />
<br />
<nowiki>sub sendmail($$$) {<br />
my($empf, $subj, $nachricht) = @_;<br />
system(&quot;php -r 'mail(\&quot;$empf\&quot;,\&quot;$subj\&quot;,\&quot;$nachricht\&quot;);'&quot;);<br />
undef;<br />
}</nowiki><br />
== Raspberry Pi ==<br />
In der weezy-Version, wie sie von busware zur Verfügung gestellt wird, muss noch sendEmail nachinstalliert werden:<br />
<br />
<pre><br />
sudo apt-get update<br />
sudo apt-get install sendEmail<br />
</pre><br />
<br />
in der [[99_myUtils_anlegen|99_myUtils]] folgende sub einfügen:<br />
<br />
<nowiki>######## DebianMail Mail auf dem RPi versenden ############ <br />
sub <br />
DebianMail <br />
{ <br />
my $rcpt = shift;<br />
my $subject = shift; <br />
my $text = shift; <br />
my $ret = &quot;&quot;;<br />
my $sender = &quot;absender\@account.de&quot;; <br />
my $konto = &quot;kontoname\@account.de&quot;;<br />
my $passwrd = &quot;passwrd&quot;;<br />
my $provider = &quot;smtp.provider.de&quot;;<br />
Log 1, &quot;sendEmail RCP: $rcpt&quot;;<br />
Log 1, &quot;sendEmail Subject: $subject&quot;;<br />
Log 1, &quot;sendEmail Text: $text&quot;;<br />
<br />
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no);<br />
$ret =~ s,[\r\n]*,,g; # remove CR from return-string <br />
Log 1, &quot;sendEmail returned: $ret&quot;; <br />
}</nowiki><br />
Beim Aufruf der Funktion gibt es zwei unterschiedliche Verhaltensweisen zu beachten. Wird DebianMail durch ein Fhem-Ereignis als Makro mit "Transferzeichen", wie @ oder&#160;% aufgerufen, so sind diese innerhalb des Aufrufs von DebianMail zu maskieren.<br />
<br />
Siehe auch commandref:<br />
◾The character @ will be replaced with the device name. To use @ in the text itself, use the double mode (@@).<br />
◾The macro&#160;%&lt;parameter&gt; will expand to the current value of the named parameter. This can be either a parameter from the device definition or a parameter from the set or get command.<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges notify Fenster:Window:.*,.*Low.Batt*. {\<br />
DebianMail('email@@email.domain','Subject','Text');;\<br />
}</nowiki><br />
in allen anderen Fällen muss die Maskierung entfallen:<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges at *01:00:00 {\<br />
DebianMail('email@email.domain','Subject','Text');;\<br />
}</nowiki><br />
<br />
== BeagleBoard-xM ==<br />
Auf einem [[:Kategorie:BeagleBoard-xM|BeagleBoard-xM]] mit einem [http://en.opensuse.org/HCL:BeagleBoard-xM OpenSUSE 12.2] kann man ebenfalls das Perl-Programm ''sendEmail''wie beim RPi nutzen. Dies gibt es aber nicht in den Repositorys von openSUSE, sondern man muss sich ''sendEmail''als Source herunterladen. Das geht am einfachsten per ''wget'', welches man ebenfalls erst installieren muss (aber aus einem Repository)<br />
<br />
<nowiki>$ zypper in wget<br />
$ cd /opt<br />
$ wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz<br />
$ tar xvfz sendEmail-v1.56.tar.gz<br />
$ cd sendEmail-v1.56<br />
$ cp sendMail /usr/local/bin</nowiki><br />
Dann geht man weiter vor wie unter RPi beschrieben (anlegen der SUB-Routine in 99_myUtils usw.).<br />
<br />
'''Hinweis:'''Die Version 1.56 von ''sendEmail''ist Stand Januar 2013 die aktuelle. Da diese Programmversion von 2009 stammt, ist mit neuen Versionen selten zu rechnen. Vlt. schauen Sie trotzdem vorher auf der [http://caspian.dotconf.net/menu/Software/SendEmail/ Homepage von sendEmail] nach.<br />
<br />
= Windows =<br />
1. Kopiere die Datei sendEmail.exe* in Dein FHEM Verzeichnis.<br />
(Hier c:\fhem-5.0\)<br />
<br />
Quelle: [http://caspian.dotconf.net/menu/Software/SendEmail/ http://caspian.dotconf.net/menu/Software/SendEmail/]<br />
<br />
2. Erstelle im FHEM Verzeichnis die Datei wmail.bat mit folgendem<br />
Inhalt (eine Zeile):<br />
<br />
<nowiki>sendEmail -f absender@domain.de -u "%1" -m " " -s SMTP-SERVERAdresse -xu SMTP_USERNAME -xp SMTP_PASSWORT -t empfänger@domain.de -o message-header="X-Message-Flag: FHEM"</nowiki><br />
<br />
3. Beispiele fhem.cfg<br />
<br />
3.a Mail wenn sich der Status von Heizung.* oder Hzg.* ändert<br />
<br />
<nowiki>define Mail_Heizung notify Heizung.*|Hzg.* { system("wmail @:%")}</nowiki><br />
<br />
3.b Mail bei Signal Aussentemperatur (Für diese Beispiel wird getstate<br />
benötigt [http://fhem.de/commandref.html#getstate http://fhem.de/commandref.html#getstate])<br />
<br />
<nowiki>define Mail_Aussentemperatur notify Aussentemperatur {\<br />
my ($val);;\<br />
$val = fhem "getstate @";;\<br />
system("wmail \"@: $val\"");;\<br />
}</nowiki><br />
= Probleme =<br />
== sendEmail ==<br />
Falls man keine E-Mails verschicken kann, kann man als ersten Test prüfen, ob sendEmail als solches funktioniert und die Konfiguration (Benutzer, Passwort, Server-Name usw.) des Mail-Kontos, über das die Mails abgesetzt werden sollen, richtig ist.<br />
<br />
Hierzu setzt man in der FHEM-Befehlszeile die folgende Anweisung ab:<br />
<br />
<nowiki>{ SUB-Routinen-Name('EMailAdresse@Mail.Domain','Test','Test-Text');; }</nowiki><br />
und ersetzt ''SUB-Routinen-Name''mit dem Namen der in 99_myUtils erzeugten Prozedur. Statt ''EMailAdresse@Mail.Domain'' trägt man noch eine gültige E-Mail-Adresse ein und bestätigt den Befehl dann mittels &lt;Enter&gt; (nicht "save"). Empfangen Sie nicht kurzfristig eine entsprechende E-Mail, ist sehr wahrscheinlich an den Zugangsdaten etwas verkehrt. Erste Anlaufstelle zur Problemsuche könnten die Sendmail logs geben, die sich standardmäßig hier befinden:<br />
<br />
"/var/log/mail.log"<br /><br />
"/var/log/maillog"<br /><br />
"/var/log/mail.info"<br /><br />
"/var/log/mail.warn"<br /><br />
"var/log/mail.err"<br /><br />
<br />
Aufrufen kann man ein log z.B. mittels installierten nano texteditor:<br />
<br />
<pre><br />
Sudo nano /var/log/mail.log<br />
</pre><br />
<br />
== Email laut log gesendet aber nicht ist angekommen? ==<br />
Dann bitte in der Fritzbox Oberfläche überpüfen, ob unter "System" -> "Push Service" selbiger eingerichtet und aktiviert wurde. <br />
<br />
[[Kategorie:HOWTOS]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=E-Mail_senden&diff=2092E-Mail senden2013-05-30T15:52:26Z<p>BastianW: /* sendEmail */ kleinen Schreibfehler korrigiert (Leerzeichen fehlte)</p>
<hr />
<div>= Linux =<br />
== FB 7170 (non-chroot) ==<br />
Datei 99_email.pm im Modul-Verzeichnis mit folgender Funktion anlegen (oder in bestehende 99_irgendwas.pm kopieren):<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; | /usr/bin/mail send -i - -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@@mail.de','Subject','text 123') }</code><br />
<br />
== FB 7390 ([[AVM Fritz!Box]]) ==<br />
'''Seit 10/2012 ist diese Funktion Bestandteil der fhem Standardauslieferung. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_mail($$$) '''(Groß-Kleinschreibung beachten)<br />
Da der Dateiname von FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Programmdatei nicht automatisch beim Start von fhem geladen. fhem muss zum Laden dieser Programmdatei aufgefordert werden. Dazu (zB in 99_myUtils.pm) die Zeile ''use FritzBoxUtils;''einfügen.<br />
Mit dem install von AVM.de wird fhem in einer chroot-Umgebung ausgeführt, die den Zugriff auf die Mailfunktion der Fritzbox nicht zulässt. Daher muss fhem in der [http://fhem.de/fhem.html#Download Version von fhem.de] installiert sein. Sollte Ihre Fritzbox bisher mit dem install von AVM laufen, kann (nach einem backup!) das image von fhem.de einfach drüberinstalliert werden, es sollten dabei alle Einstellungen erhalten bleiben.<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; &gt; /var/tmp/fhem_nachricht.txt&quot;);<br />
system(&quot;/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
system(&quot;rm /var/tmp/fhem_nachricht.txt&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
bzw. <code>{ FB_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
'''Hinweis:'''Wenn der Aufruf der Mailfunktion aus einem notify oder at erfolgt, muss das @@ in der Adresse des mailempfängers gedoppelt werden, da ein einfaches @ sonst durch den getriggerten device-namen ersetzt würde. Bei Verwendung in der fhem-Kommandozeile oder einem eigenen *Utils.pm ist diese Doppelung nicht erforderlich. Bitte bei den ersten Mails ins Log schauen, ob die Mailadresse wie gewünscht verwendet wird.<br />
<br />
<br />
Dem Mailer können noch weitere Parameter hinzugefügt werden. Mehr dazu siehe: [http://www.wehavemorefun.de/fritzbox/Mailer Mailer]<br />
<br />
== Synology DiskStation ==<br />
Beim DSM 3.2 gab es keinen <code>sendmail</code>-Befehl, sondern nur eine Funktion für den Versand der System-Benachrichtigungen.<br />
Interessanterweise funktionierte aber der <code>php-mail</code>-Befehl, so dass man mittels folgendem Modul Mails frei versenden kann:<br />
<br />
<nowiki>sub sendmail($$$) {<br />
my($empf, $subj, $nachricht) = @_;<br />
system(&quot;php -r 'mail(\&quot;$empf\&quot;,\&quot;$subj\&quot;,\&quot;$nachricht\&quot;);'&quot;);<br />
undef;<br />
}</nowiki><br />
== Raspberry Pi ==<br />
In der weezy-Version, wie sie von busware zur Verfügung gestellt wird, muss noch sendEmail nachinstalliert werden:<br />
<br />
<pre><br />
sudo apt-get update<br />
sudo apt-get install sendEmail<br />
</pre><br />
<br />
in der [[99_myUtils_anlegen|99_myUtils]] folgende sub einfügen:<br />
<br />
<nowiki>######## DebianMail Mail auf dem RPi versenden ############ <br />
sub <br />
DebianMail <br />
{ <br />
my $rcpt = shift;<br />
my $subject = shift; <br />
my $text = shift; <br />
my $ret = &quot;&quot;;<br />
my $sender = &quot;absender\@account.de&quot;; <br />
my $konto = &quot;kontoname\@account.de&quot;;<br />
my $passwrd = &quot;passwrd&quot;;<br />
my $provider = &quot;smtp.provider.de&quot;;<br />
Log 1, &quot;sendEmail RCP: $rcpt&quot;;<br />
Log 1, &quot;sendEmail Subject: $subject&quot;;<br />
Log 1, &quot;sendEmail Text: $text&quot;;<br />
<br />
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no);<br />
$ret =~ s,[\r\n]*,,g; # remove CR from return-string <br />
Log 1, &quot;sendEmail returned: $ret&quot;; <br />
}</nowiki><br />
Beim Aufruf der Funktion gibt es zwei unterschiedliche Verhaltensweisen zu beachten. Wird DebianMail durch ein Fhem-Ereignis als Makro mit "Transferzeichen", wie @ oder&#160;% aufgerufen, so sind diese innerhalb des Aufrufs von DebianMail zu maskieren.<br />
<br />
Siehe auch commandref:<br />
◾The character @ will be replaced with the device name. To use @ in the text itself, use the double mode (@@).<br />
◾The macro&#160;%&lt;parameter&gt; will expand to the current value of the named parameter. This can be either a parameter from the device definition or a parameter from the set or get command.<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges notify Fenster:Window:.*,.*Low.Batt*. {\<br />
DebianMail('email@@email.domain','Subject','Text');;\<br />
}</nowiki><br />
in allen anderen Fällen muss die Maskierung entfallen:<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges at *01:00:00 {\<br />
DebianMail('email@email.domain','Subject','Text');;\<br />
}</nowiki><br />
<br />
== BeagleBoard-xM ==<br />
Auf einem [[:Kategorie:BeagleBoard-xM|BeagleBoard-xM]] mit einem [http://en.opensuse.org/HCL:BeagleBoard-xM OpenSUSE 12.2] kann man ebenfalls das Perl-Programm ''sendEmail''wie beim RPi nutzen. Dies gibt es aber nicht in den Repositorys von openSUSE, sondern man muss sich ''sendEmail''als Source herunterladen. Das geht am einfachsten per ''wget'', welches man ebenfalls erst installieren muss (aber aus einem Repository)<br />
<br />
<nowiki>$ zypper in wget<br />
$ cd /opt<br />
$ wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz<br />
$ tar xvfz sendEmail-v1.56.tar.gz<br />
$ cd sendEmail-v1.56<br />
$ cp sendMail /usr/local/bin</nowiki><br />
Dann geht man weiter vor wie unter RPi beschrieben (anlegen der SUB-Routine in 99_myUtils usw.).<br />
<br />
'''Hinweis:'''Die Version 1.56 von ''sendEmail''ist Stand Januar 2013 die aktuelle. Da diese Programmversion von 2009 stammt, ist mit neuen Versionen selten zu rechnen. Vlt. schauen Sie trotzdem vorher auf der [http://caspian.dotconf.net/menu/Software/SendEmail/ Homepage von sendEmail] nach.<br />
<br />
= Windows =<br />
1. Kopiere die Datei sendEmail.exe* in Dein FHEM Verzeichnis.<br />
(Hier c:\fhem-5.0\)<br />
<br />
Quelle: [http://caspian.dotconf.net/menu/Software/SendEmail/ http://caspian.dotconf.net/menu/Software/SendEmail/]<br />
<br />
2. Erstelle im FHEM Verzeichnis die Datei wmail.bat mit folgendem<br />
Inhalt (eine Zeile):<br />
<br />
<nowiki>sendEmail -f absender@domain.de -u "%1" -m " " -s SMTP-SERVERAdresse -xu SMTP_USERNAME -xp SMTP_PASSWORT -t empfänger@domain.de -o message-header="X-Message-Flag: FHEM"</nowiki><br />
<br />
3. Beispiele fhem.cfg<br />
<br />
3.a Mail wenn sich der Status von Heizung.* oder Hzg.* ändert<br />
<br />
<nowiki>define Mail_Heizung notify Heizung.*|Hzg.* { system("wmail @:%")}</nowiki><br />
<br />
3.b Mail bei Signal Aussentemperatur (Für diese Beispiel wird getstate<br />
benötigt [http://fhem.de/commandref.html#getstate http://fhem.de/commandref.html#getstate])<br />
<br />
<nowiki>define Mail_Aussentemperatur notify Aussentemperatur {\<br />
my ($val);;\<br />
$val = fhem "getstate @";;\<br />
system("wmail \"@: $val\"");;\<br />
}</nowiki><br />
= Probleme =<br />
== sendEmail ==<br />
Falls man keine E-Mails verschicken kann, kann man als ersten Test prüfen, ob sendEmail als solches funktioniert und die Konfiguration (Benutzer, Passwort, Server-Name usw.) des Mail-Kontos, über das die Mails abgesetzt werden sollen, richtig ist.<br />
<br />
Hierzu setzt man in der FHEM-Befehlszeile die folgende Anweisung ab:<br />
<br />
<nowiki>{ SUB-Routinen-Name('EMailAdresse@Mail.Domain','Test','Test-Text');; }</nowiki><br />
und ersetzt ''SUB-Routinen-Name''mit dem Namen der in 99_myUtils erzeugten Prozedur. Statt ''EMailAdresse@Mail.Domain'' trägt man noch eine gültige E-Mail-Adresse ein und bestätigt den Befehl dann mittels &lt;Enter&gt; (nicht "save"). Empfangen Sie nicht kurzfristig eine entsprechende E-Mail, ist sehr wahrscheinlich an den Zugangsdaten etwas verkehrt.<br />
<br />
== Email laut log gesendet aber nicht ist angekommen? ==<br />
Dann bitte in der Fritzbox Oberfläche überpüfen, ob unter "System" -> "Push Service" selbiger eingerichtet und aktiviert wurde. <br />
<br />
[[Kategorie:HOWTOS]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=E-Mail_senden&diff=2091E-Mail senden2013-05-30T15:41:32Z<p>BastianW: /* Raspberry Pi */ Interne verlinkung nach 99_myUtils_anlegen erzeugt</p>
<hr />
<div>= Linux =<br />
== FB 7170 (non-chroot) ==<br />
Datei 99_email.pm im Modul-Verzeichnis mit folgender Funktion anlegen (oder in bestehende 99_irgendwas.pm kopieren):<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; | /usr/bin/mail send -i - -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@@mail.de','Subject','text 123') }</code><br />
<br />
== FB 7390 ([[AVM Fritz!Box]]) ==<br />
'''Seit 10/2012 ist diese Funktion Bestandteil der fhem Standardauslieferung. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_mail($$$) '''(Groß-Kleinschreibung beachten)<br />
Da der Dateiname von FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Programmdatei nicht automatisch beim Start von fhem geladen. fhem muss zum Laden dieser Programmdatei aufgefordert werden. Dazu (zB in 99_myUtils.pm) die Zeile ''use FritzBoxUtils;''einfügen.<br />
Mit dem install von AVM.de wird fhem in einer chroot-Umgebung ausgeführt, die den Zugriff auf die Mailfunktion der Fritzbox nicht zulässt. Daher muss fhem in der [http://fhem.de/fhem.html#Download Version von fhem.de] installiert sein. Sollte Ihre Fritzbox bisher mit dem install von AVM laufen, kann (nach einem backup!) das image von fhem.de einfach drüberinstalliert werden, es sollten dabei alle Einstellungen erhalten bleiben.<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; &gt; /var/tmp/fhem_nachricht.txt&quot;);<br />
system(&quot;/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
system(&quot;rm /var/tmp/fhem_nachricht.txt&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
bzw. <code>{ FB_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
'''Hinweis:'''Wenn der Aufruf der Mailfunktion aus einem notify oder at erfolgt, muss das @@ in der Adresse des mailempfängers gedoppelt werden, da ein einfaches @ sonst durch den getriggerten device-namen ersetzt würde. Bei Verwendung in der fhem-Kommandozeile oder einem eigenen *Utils.pm ist diese Doppelung nicht erforderlich. Bitte bei den ersten Mails ins Log schauen, ob die Mailadresse wie gewünscht verwendet wird.<br />
<br />
<br />
Dem Mailer können noch weitere Parameter hinzugefügt werden. Mehr dazu siehe: [http://www.wehavemorefun.de/fritzbox/Mailer Mailer]<br />
<br />
== Synology DiskStation ==<br />
Beim DSM 3.2 gab es keinen <code>sendmail</code>-Befehl, sondern nur eine Funktion für den Versand der System-Benachrichtigungen.<br />
Interessanterweise funktionierte aber der <code>php-mail</code>-Befehl, so dass man mittels folgendem Modul Mails frei versenden kann:<br />
<br />
<nowiki>sub sendmail($$$) {<br />
my($empf, $subj, $nachricht) = @_;<br />
system(&quot;php -r 'mail(\&quot;$empf\&quot;,\&quot;$subj\&quot;,\&quot;$nachricht\&quot;);'&quot;);<br />
undef;<br />
}</nowiki><br />
== Raspberry Pi ==<br />
In der weezy-Version, wie sie von busware zur Verfügung gestellt wird, muss noch sendEmail nachinstalliert werden:<br />
<br />
<pre><br />
sudo apt-get update<br />
sudo apt-get install sendEmail<br />
</pre><br />
<br />
in der [[99_myUtils_anlegen|99_myUtils]] folgende sub einfügen:<br />
<br />
<nowiki>######## DebianMail Mail auf dem RPi versenden ############ <br />
sub <br />
DebianMail <br />
{ <br />
my $rcpt = shift;<br />
my $subject = shift; <br />
my $text = shift; <br />
my $ret = &quot;&quot;;<br />
my $sender = &quot;absender\@account.de&quot;; <br />
my $konto = &quot;kontoname\@account.de&quot;;<br />
my $passwrd = &quot;passwrd&quot;;<br />
my $provider = &quot;smtp.provider.de&quot;;<br />
Log 1, &quot;sendEmail RCP: $rcpt&quot;;<br />
Log 1, &quot;sendEmail Subject: $subject&quot;;<br />
Log 1, &quot;sendEmail Text: $text&quot;;<br />
<br />
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no);<br />
$ret =~ s,[\r\n]*,,g; # remove CR from return-string <br />
Log 1, &quot;sendEmail returned: $ret&quot;; <br />
}</nowiki><br />
Beim Aufruf der Funktion gibt es zwei unterschiedliche Verhaltensweisen zu beachten. Wird DebianMail durch ein Fhem-Ereignis als Makro mit "Transferzeichen", wie @ oder&#160;% aufgerufen, so sind diese innerhalb des Aufrufs von DebianMail zu maskieren.<br />
<br />
Siehe auch commandref:<br />
◾The character @ will be replaced with the device name. To use @ in the text itself, use the double mode (@@).<br />
◾The macro&#160;%&lt;parameter&gt; will expand to the current value of the named parameter. This can be either a parameter from the device definition or a parameter from the set or get command.<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges notify Fenster:Window:.*,.*Low.Batt*. {\<br />
DebianMail('email@@email.domain','Subject','Text');;\<br />
}</nowiki><br />
in allen anderen Fällen muss die Maskierung entfallen:<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges at *01:00:00 {\<br />
DebianMail('email@email.domain','Subject','Text');;\<br />
}</nowiki><br />
<br />
== BeagleBoard-xM ==<br />
Auf einem [[:Kategorie:BeagleBoard-xM|BeagleBoard-xM]] mit einem [http://en.opensuse.org/HCL:BeagleBoard-xM OpenSUSE 12.2] kann man ebenfalls das Perl-Programm ''sendEmail''wie beim RPi nutzen. Dies gibt es aber nicht in den Repositorys von openSUSE, sondern man muss sich ''sendEmail''als Source herunterladen. Das geht am einfachsten per ''wget'', welches man ebenfalls erst installieren muss (aber aus einem Repository)<br />
<br />
<nowiki>$ zypper in wget<br />
$ cd /opt<br />
$ wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz<br />
$ tar xvfz sendEmail-v1.56.tar.gz<br />
$ cd sendEmail-v1.56<br />
$ cp sendMail /usr/local/bin</nowiki><br />
Dann geht man weiter vor wie unter RPi beschrieben (anlegen der SUB-Routine in 99_myUtils usw.).<br />
<br />
'''Hinweis:'''Die Version 1.56 von ''sendEmail''ist Stand Januar 2013 die aktuelle. Da diese Programmversion von 2009 stammt, ist mit neuen Versionen selten zu rechnen. Vlt. schauen Sie trotzdem vorher auf der [http://caspian.dotconf.net/menu/Software/SendEmail/ Homepage von sendEmail] nach.<br />
<br />
= Windows =<br />
1. Kopiere die Datei sendEmail.exe* in Dein FHEM Verzeichnis.<br />
(Hier c:\fhem-5.0\)<br />
<br />
Quelle: [http://caspian.dotconf.net/menu/Software/SendEmail/ http://caspian.dotconf.net/menu/Software/SendEmail/]<br />
<br />
2. Erstelle im FHEM Verzeichnis die Datei wmail.bat mit folgendem<br />
Inhalt (eine Zeile):<br />
<br />
<nowiki>sendEmail -f absender@domain.de -u "%1" -m " " -s SMTP-SERVERAdresse -xu SMTP_USERNAME -xp SMTP_PASSWORT -t empfänger@domain.de -o message-header="X-Message-Flag: FHEM"</nowiki><br />
<br />
3. Beispiele fhem.cfg<br />
<br />
3.a Mail wenn sich der Status von Heizung.* oder Hzg.* ändert<br />
<br />
<nowiki>define Mail_Heizung notify Heizung.*|Hzg.* { system("wmail @:%")}</nowiki><br />
<br />
3.b Mail bei Signal Aussentemperatur (Für diese Beispiel wird getstate<br />
benötigt [http://fhem.de/commandref.html#getstate http://fhem.de/commandref.html#getstate])<br />
<br />
<nowiki>define Mail_Aussentemperatur notify Aussentemperatur {\<br />
my ($val);;\<br />
$val = fhem "getstate @";;\<br />
system("wmail \"@: $val\"");;\<br />
}</nowiki><br />
= Probleme =<br />
== sendEmail ==<br />
Falls man keine E-Mails verschicken kann, kann man als ersten Test prüfen, ob sendEmail als solches funktioniert und die Konfiguration (Benutzer, Passwort, Server-Name usw.) des Mail-Kontos, über das die Mails abgesetzt werden sollen, richtig ist.<br />
<br />
Hierzu setzt man in der FHEM-Befehlszeile die folgende Anweisung ab:<br />
<br />
<nowiki>{ SUB-Routinen-Name('EMailAdresse@Mail.Domain','Test','Test-Text');; }</nowiki><br />
und ersetzt ''SUB-Routinen-Name''mit dem Namen der in 99_myUtils erzeugten Prozedur. Statt ''EMailAdresse@Mail.Domain''trägt man noch eine gültige E-Mail-Adresse ein und bestätigt den Befehl dann mittels &lt;Enter&gt; (nicht "save"). Empfangen Sie nicht kurzfristig eine entsprechende E-Mail, ist sehr wahrscheinlich an den Zugangsdaten etwas verkehrt.<br />
<br />
== Email laut log gesendet aber nicht ist angekommen? ==<br />
Dann bitte in der Fritzbox Oberfläche überpüfen, ob unter "System" -> "Push Service" selbiger eingerichtet und aktiviert wurde. <br />
<br />
[[Kategorie:HOWTOS]]</div>BastianWhttp://wiki.fhem.de/w/index.php?title=E-Mail_senden&diff=2090E-Mail senden2013-05-30T15:33:01Z<p>BastianW: /* Raspberry Pi */ Apt get Befehle von einer Line auf Zwei Umgebrochen</p>
<hr />
<div>= Linux =<br />
== FB 7170 (non-chroot) ==<br />
Datei 99_email.pm im Modul-Verzeichnis mit folgender Funktion anlegen (oder in bestehende 99_irgendwas.pm kopieren):<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; | /usr/bin/mail send -i - -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@@mail.de','Subject','text 123') }</code><br />
<br />
== FB 7390 ([[AVM Fritz!Box]]) ==<br />
'''Seit 10/2012 ist diese Funktion Bestandteil der fhem Standardauslieferung. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_mail($$$) '''(Groß-Kleinschreibung beachten)<br />
Da der Dateiname von FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Programmdatei nicht automatisch beim Start von fhem geladen. fhem muss zum Laden dieser Programmdatei aufgefordert werden. Dazu (zB in 99_myUtils.pm) die Zeile ''use FritzBoxUtils;''einfügen.<br />
Mit dem install von AVM.de wird fhem in einer chroot-Umgebung ausgeführt, die den Zugriff auf die Mailfunktion der Fritzbox nicht zulässt. Daher muss fhem in der [http://fhem.de/fhem.html#Download Version von fhem.de] installiert sein. Sollte Ihre Fritzbox bisher mit dem install von AVM laufen, kann (nach einem backup!) das image von fhem.de einfach drüberinstalliert werden, es sollten dabei alle Einstellungen erhalten bleiben.<br />
<br />
<nowiki>sub fb_mail {<br />
my $rcpt = $_[0];<br />
my $subject = $_[1];<br />
my $text = $_[2];<br />
system(&quot;/bin/echo \&quot;$text\&quot; &gt; /var/tmp/fhem_nachricht.txt&quot;);<br />
system(&quot;/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \&quot;$subject\&quot; -t \&quot;$rcpt\&quot;&quot;);<br />
system(&quot;rm /var/tmp/fhem_nachricht.txt&quot;);<br />
}</nowiki><br />
Aufruf dann mittels <code>{ fb_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
bzw. <code>{ FB_mail('empfaenger@mail.de','Subject','text 123') }</code><br />
'''Hinweis:'''Wenn der Aufruf der Mailfunktion aus einem notify oder at erfolgt, muss das @@ in der Adresse des mailempfängers gedoppelt werden, da ein einfaches @ sonst durch den getriggerten device-namen ersetzt würde. Bei Verwendung in der fhem-Kommandozeile oder einem eigenen *Utils.pm ist diese Doppelung nicht erforderlich. Bitte bei den ersten Mails ins Log schauen, ob die Mailadresse wie gewünscht verwendet wird.<br />
<br />
<br />
Dem Mailer können noch weitere Parameter hinzugefügt werden. Mehr dazu siehe: [http://www.wehavemorefun.de/fritzbox/Mailer Mailer]<br />
<br />
== Synology DiskStation ==<br />
Beim DSM 3.2 gab es keinen <code>sendmail</code>-Befehl, sondern nur eine Funktion für den Versand der System-Benachrichtigungen.<br />
Interessanterweise funktionierte aber der <code>php-mail</code>-Befehl, so dass man mittels folgendem Modul Mails frei versenden kann:<br />
<br />
<nowiki>sub sendmail($$$) {<br />
my($empf, $subj, $nachricht) = @_;<br />
system(&quot;php -r 'mail(\&quot;$empf\&quot;,\&quot;$subj\&quot;,\&quot;$nachricht\&quot;);'&quot;);<br />
undef;<br />
}</nowiki><br />
== Raspberry Pi ==<br />
In der weezy-Version, wie sie von busware zur Verfügung gestellt wird, muss noch sendEmail nachinstalliert werden:<br />
<br />
<pre><br />
sudo apt-get update<br />
sudo apt-get install sendEmail<br />
</pre><br />
<br />
in der 99_myUtils folgende sub einfügen:<br />
<br />
<nowiki>######## DebianMail Mail auf dem RPi versenden ############ <br />
sub <br />
DebianMail <br />
{ <br />
my $rcpt = shift;<br />
my $subject = shift; <br />
my $text = shift; <br />
my $ret = &quot;&quot;;<br />
my $sender = &quot;absender\@account.de&quot;; <br />
my $konto = &quot;kontoname\@account.de&quot;;<br />
my $passwrd = &quot;passwrd&quot;;<br />
my $provider = &quot;smtp.provider.de&quot;;<br />
Log 1, &quot;sendEmail RCP: $rcpt&quot;;<br />
Log 1, &quot;sendEmail Subject: $subject&quot;;<br />
Log 1, &quot;sendEmail Text: $text&quot;;<br />
<br />
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no);<br />
$ret =~ s,[\r\n]*,,g; # remove CR from return-string <br />
Log 1, &quot;sendEmail returned: $ret&quot;; <br />
}</nowiki><br />
Beim Aufruf der Funktion gibt es zwei unterschiedliche Verhaltensweisen zu beachten. Wird DebianMail durch ein Fhem-Ereignis als Makro mit "Transferzeichen", wie @ oder&#160;% aufgerufen, so sind diese innerhalb des Aufrufs von DebianMail zu maskieren.<br />
<br />
Siehe auch commandref:<br />
◾The character @ will be replaced with the device name. To use @ in the text itself, use the double mode (@@).<br />
◾The macro&#160;%&lt;parameter&gt; will expand to the current value of the named parameter. This can be either a parameter from the device definition or a parameter from the set or get command.<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges notify Fenster:Window:.*,.*Low.Batt*. {\<br />
DebianMail('email@@email.domain','Subject','Text');;\<br />
}</nowiki><br />
in allen anderen Fällen muss die Maskierung entfallen:<br />
<br />
Beispiel:<br />
<br />
<nowiki>define Sonstiges at *01:00:00 {\<br />
DebianMail('email@email.domain','Subject','Text');;\<br />
}</nowiki><br />
<br />
== BeagleBoard-xM ==<br />
Auf einem [[:Kategorie:BeagleBoard-xM|BeagleBoard-xM]] mit einem [http://en.opensuse.org/HCL:BeagleBoard-xM OpenSUSE 12.2] kann man ebenfalls das Perl-Programm ''sendEmail''wie beim RPi nutzen. Dies gibt es aber nicht in den Repositorys von openSUSE, sondern man muss sich ''sendEmail''als Source herunterladen. Das geht am einfachsten per ''wget'', welches man ebenfalls erst installieren muss (aber aus einem Repository)<br />
<br />
<nowiki>$ zypper in wget<br />
$ cd /opt<br />
$ wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz<br />
$ tar xvfz sendEmail-v1.56.tar.gz<br />
$ cd sendEmail-v1.56<br />
$ cp sendMail /usr/local/bin</nowiki><br />
Dann geht man weiter vor wie unter RPi beschrieben (anlegen der SUB-Routine in 99_myUtils usw.).<br />
<br />
'''Hinweis:'''Die Version 1.56 von ''sendEmail''ist Stand Januar 2013 die aktuelle. Da diese Programmversion von 2009 stammt, ist mit neuen Versionen selten zu rechnen. Vlt. schauen Sie trotzdem vorher auf der [http://caspian.dotconf.net/menu/Software/SendEmail/ Homepage von sendEmail] nach.<br />
<br />
= Windows =<br />
1. Kopiere die Datei sendEmail.exe* in Dein FHEM Verzeichnis.<br />
(Hier c:\fhem-5.0\)<br />
<br />
Quelle: [http://caspian.dotconf.net/menu/Software/SendEmail/ http://caspian.dotconf.net/menu/Software/SendEmail/]<br />
<br />
2. Erstelle im FHEM Verzeichnis die Datei wmail.bat mit folgendem<br />
Inhalt (eine Zeile):<br />
<br />
<nowiki>sendEmail -f absender@domain.de -u "%1" -m " " -s SMTP-SERVERAdresse -xu SMTP_USERNAME -xp SMTP_PASSWORT -t empfänger@domain.de -o message-header="X-Message-Flag: FHEM"</nowiki><br />
<br />
3. Beispiele fhem.cfg<br />
<br />
3.a Mail wenn sich der Status von Heizung.* oder Hzg.* ändert<br />
<br />
<nowiki>define Mail_Heizung notify Heizung.*|Hzg.* { system("wmail @:%")}</nowiki><br />
<br />
3.b Mail bei Signal Aussentemperatur (Für diese Beispiel wird getstate<br />
benötigt [http://fhem.de/commandref.html#getstate http://fhem.de/commandref.html#getstate])<br />
<br />
<nowiki>define Mail_Aussentemperatur notify Aussentemperatur {\<br />
my ($val);;\<br />
$val = fhem "getstate @";;\<br />
system("wmail \"@: $val\"");;\<br />
}</nowiki><br />
= Probleme =<br />
== sendEmail ==<br />
Falls man keine E-Mails verschicken kann, kann man als ersten Test prüfen, ob sendEmail als solches funktioniert und die Konfiguration (Benutzer, Passwort, Server-Name usw.) des Mail-Kontos, über das die Mails abgesetzt werden sollen, richtig ist.<br />
<br />
Hierzu setzt man in der FHEM-Befehlszeile die folgende Anweisung ab:<br />
<br />
<nowiki>{ SUB-Routinen-Name('EMailAdresse@Mail.Domain','Test','Test-Text');; }</nowiki><br />
und ersetzt ''SUB-Routinen-Name''mit dem Namen der in 99_myUtils erzeugten Prozedur. Statt ''EMailAdresse@Mail.Domain''trägt man noch eine gültige E-Mail-Adresse ein und bestätigt den Befehl dann mittels &lt;Enter&gt; (nicht "save"). Empfangen Sie nicht kurzfristig eine entsprechende E-Mail, ist sehr wahrscheinlich an den Zugangsdaten etwas verkehrt.<br />
<br />
== Email laut log gesendet aber nicht ist angekommen? ==<br />
Dann bitte in der Fritzbox Oberfläche überpüfen, ob unter "System" -> "Push Service" selbiger eingerichtet und aktiviert wurde. <br />
<br />
[[Kategorie:HOWTOS]]</div>BastianW