Im Rahmen der Installation der PV – Anlage habe ich einen neuen Stromzähler von der GWN erhalten …
eBZ Modell: WD3 2R10 DTA – ODZ1
Hierbei handelt es sich um einen saldierenden 3-Phasen, 2-Richtungszähler. Dieser liefert im Auslieferungszustand nur 1.8.0 Bezugs- und 2.8.0 Exportwerte (kWh Zählerstand). Mit der Eingabe der PIN (Abfrage bei der GWN) über die Infrarot Schnittstelle werden zusätzlichen Werte freigeschaltet und die Abfrage des PIN kann abgeschaltet werden.
PIN Anfrage an den Energieversorger bzw. Eigentümer des Zählers
Meine E-Mail mit der Bitte um Mitteilung des PIN’s wurde von den Gemeindewerken Nümbrecht GmbH unmittelbar beantwortet.
Dafür, vielen Dank an die freundlichen Mitarbeiter der GWN.
PIN Eingabe über das Infrarot – Interface
Die Eingabe des PIN ist mit einer geeigneten Taschenlampe möglich. Viel einfacher war für mich die Nutzung der iOS APP: EDL21 Control.
Dafür habe ich als erstes den PIN in der APP eingegeben und danach die (Taschenlampen) LED des Handy’s direkt auf die Infrarot Schnittstelle gehalten und „Entsperren“ ausgewählt.
Anschließend habe ich mit Hilfe der Funktion „Zähler steuern“ den Menüpunkt „PIN Eingabe“ mit „weiter, weiter, …“ ausgewählt und mit „Aktion“ umgestellt.
Damit der erweiterte Datensatz übertragen wird muss Eintrag „Inf“ im Menü des Zählers auf on gestellt werden.
Ob die Infrarotschnittstelle Daten ausgibt, kann man ebenfalls mit der Handy Kamera sehr gut überprüfen (leuchten der IR-Interfaces im Kamera Modus).
Hinweis:
Die „Inf“ – Eingabe muss bei jedem Stromausfall erneut erfolgen, anderenfalls fehlen die erweiterten Daten (Saldierte Leistung aller Phasen, Leistung der einzelnen Phasen)!
Vorinstalliertes Tasmota nur akutalisieren, wenn man weiß, was man tut, anderenfalls ist die Sonderfunktion: „script Editor“ im Menu „Consoles“ weg.
Lesekopf mit dem Wemos D1 verbinden
Falls nicht vorbereitet muss der Lesekopf mit dem mitgelieferten Wemos D1 mini gemäß Anleitung verbunden werden. Bitte unbedingt auf die korrekten Verbindungen (+, -, RX, TX) achten.
Anschließend kann der Wemos D1 mini über den USB Anschluss mit Strom versorgt werden.
Tasmota Konfiguration als Client im heimischen WLAN
Im Auslieferungszustand befindet sich der Wemos D1 Mini im „Access Point“ Modus. Um ihn mit dem eigenen WLAN zu verbinden wechselt man im Handy auf das neu verfügbare tasmota WLAN. Nach der Verbindung erscheint unmittelbar das Konfigurationsmenü zur Auswahl der eignen WLAN Verbindung. Nach Auswahl der korrekten SSID und Erfassung des entsprechenden Passwortes, wechselt das vorinstallierte tasmota automatisch in das heimische WLAN.
Nachdem sichergestellt ist, dass das Handy wieder mit dem heimischen WLAN verbunden ist, benötigt man die vom eigenen DHCP-Server (z.B. Fritz!Box, Teleport, …) vergebene IP Adresse für den Lesekopf (z.B. über die APP oder die Web-GUI der Firtz!Box (Teleport, …).
Verbindung zum MQTT Broker eingeben
Da fast alle meine Geräte über MQTT verfügbar sind, erfasse ich auch hier die Verbindungsdaten zu meinen MQTT Broker.
Hinweis
Alle Daten werden in einem Topic jeweils einzeln als „name:value“ des SM json-Objektes übertragen.
Smart-Meter-Interface für den Zähler WD3 2R10 DTA – ODZ1 konfigurieren
Ein sehr spannendes Thema, das, – sofern der korrekte Zähler nicht als Beispiel auf der SmartMeter-Interface Seite von tasmota gelistet korrekt ist -, kompliziert werden kann.
Folgendes Skript funktioniert für den Zähler WD3 2R10 DTA – ODZ1:
Ich habe meinen bestellten Shelly Pro 3EM erhalten und einige Tests durchgeführt. Die folgenden Beschreibungen ersetzen keinesfalls die mitgelieferten/veröffentlichten Original Handbücher/Bedienungsanleitungen
Anschluss
Da ich bisher keine Anschlussschemata gefunden habe, hier mein laienhaft erstelltes Schema:
So funktioniert es bei mir mit der Ausgabe des gesamten Stromverbrauchs des Anschlusses. Wichtig sind zum einen, dass sich die Abnahmeklemmen (IA, IB oder IC) immer an der entsprechend angeschlossenen Phase (L1 = A, L2 = B, L3 = C) die Leistung abnehmen, und, die Klemmen in der aufgedruckten Fliessrichtung (K > L) gedreht sind.
Selbstverständlich sind andere Messungen (Wechselrichter, Wallbox, …) unter Beachtung der entsprechenden Zuordnungen möglich.
Verbindung mit dem bereitgestellten (Standard) Access Point
Nach der elektrischen Inbetriebnahme (mind. N = Null und C = L3) stellt der Shelly Pro 3EM einen WLAN Access Point mit der SSID ShellyPro3EM-XXXXXXXXXXXX ohne Passwort zur Verfügung (XXXXXXXXXXXX = Device ID). Ich habe auf dem Handy die WLAN Verbindung aktiviert und im Browser http://192.168.33.1 zur Konfiguration über dei Web-GUI eingegeben.
Netzwerkeinstellungen
Wenn möglich sollte Ethernet verwendet werden. Da als Standard hier ein DHCP Verbindungsaufbau konfiguriert ist, sollte (ohne eigenen DNS – Server oder adäquater Konfiguration des DHCP Servers) eine fest IP eingetragen werden, damit die Web-GUI des Shelly Pro 3EM ohne lästiges suchen der aktuell vergebenen IP Adresse aufgerufen werden kann. Das gilt auch, wenn der WiFi verwendet werden soll.
Zusätzlich empfehle ich den Access Point als „trouble port“ oder als Schaltschrank internen Access Point mit einem Passwort geschützt aktiv zu lassen, und, wenn nicht als Gateway benötigt, Bluetooth abzuschalten.
Verbindungseinstellungen (hier: MQTT)
Hier gibt es sehr viele realisierbare Möglichkeiten. Meine bevorzugte ist MQTT. Zum Einstieg und Kennenlernen habe ich alle Optionen der MQTT Einstellungen aktiviert. Auch MQTT debug unter Settings – Debug sind aktiviert.
Nach eine Neustart läuft der Shelly Pro 3EM einwandfrei und liefert Daten an den MQTT Broker.
Mittlerweile nutze ich für die Auswertung und Darstellung der Daten die InfluxDB und Grafana. Im Folgenden werde ich meine generellen Gedanken zur geeigneten Auswertbarkeit der gelieferten Daten erläutern.
Grundsätzliche unterscheide ich 3 Bereiche:
Aktuelle Netzauslastung
Hier interessieren mich Werte wie Grundlast und Spitzenlasten und erweitert die Verursacher. Dazu greife ich auf die Daten aus dem Topic "70-shellypro3em-xxxxxxxxxxxx/em:0" zurück.
Insbesondere verwende ich die Verläufe von der Wirkleistung (power in Watt) und der Stromstärke (current in Amper). Aktuelle Werte (letzte Stunde), der Tages- und Wochenverlauf stehen dabei im Vordergrund.
Netzqualität
Auch hier verwende ich im Wesentlichen Daten aus der dem Topic "70-shellypro3em-xxxxxxxxxxxx/em:0". Dabei sind neben den Fehlern (error) die Werte aus der Scheinleistung (aprt_power in VA), der Spannung (voltage in V) und des Leistungsfaktors (pf ohne Einheit) im Fokus.
Verbrauch-/Einspeisedaten
Dafür verwende ich die in Wattstunden (Wh) angegebenen Werte aus dem Topic "70-shellypro3em-xxxxxxxxxxxx/emdata:0". Hier wird bereits der Verbrauch (act_energy in Wh) und die Einspeisung (act_ret_energy in Wh) unterschieden.
Nachdem die CCU2 nach ca. 5 Jahren nicht mehr alle Funktionen hatte stand ich vor der Wahl:
Eine neue CCU3
ELV-Charly
RaspberryMatic
Debmatic
Meine Wahl fiel auf debmatic, da ich im Wesentlichen neben HM RF und HM IP nur die RPC Schnittstelle und ggf. CUXD benötige und ich neben dem vorhandenen Proxmox Server nur eine HB-RF-ETH mit einer Funk-Modulplatine für Raspberry Pi 3, RPI-RF-MOD kaufen mußte. Inklusive Gehäuse und POE Adapter habe ich keine 100 € ausgegeben und damit die maximale Freiheit für den Ausstellungsort erhalten.
Zu keiner Zeit habe ich diese Entscheidung bereut. Absolut zuverlässig, toller Support und 100% kompatibel.
Das GUI der CCU ist, sagen wir einmal, speziell. Der Vorteil, alles funktioniert. Einige Steuerungen aus der Vergangenheit sind noch aktiv. In meiner Vision sind zukünftig alle Steuerungen an einer Stelle. Leider habe ich mich noch nicht entschieden.
Ausprobiert habe ich bis jetzt:
– FHEM,
– IOBROKER,
– HOMEASSISTANT und
– Node-Red
Mein Favorit, FHEM, fällt aufgrund des Women Acceptance Factor, kurz WAF, leider aus der engeren Wahl. Da bieten alle anderen deutlich mehr (für mich machbare) Möglichkeiten. Dennoch habe ich die Hoffnung, dass irgendwann ein moderneres Frontend auch von den Puristen zumindest als Option akzeptiert wird.
Der IOBROKER bietet neben einer agilen deutschen Communitiy die flexibelste Frontend Gestaltungsmöglichkeiten. Leider gefällt mir die Middleware mit den Ressourcen vernichtenden Modulen nicht. Da sind 4 GB RAM schnell verbraucht.
Bei HomeAssistant, mein aktueller Testkanditat, kann ich mich noch nicht so ganz mit der Steuerung anfreunden. Einfaches über Automation, anderes über Templates oder node-red.
Eine Gerätetyp übergreifende Namenskonvention kann auf Basis eines beispielhaften Raumnummernsystem beruhen. Das im Folgenden dargestellte Raumnummernsystem dient als Muster. Es gibt sicher viele andere gute Systemdefinitionen. Mein Augenmerk liegt auf der übergreifenden Einheitlichkeit und der Sortierbarkeit. Je größer der „Gerätezoo“ wird, desto schwieriger wird es ein durchgängig umsetzbares Bezeichnungssystem zu finden.
Da man an verschiedenen Stellen immer mal wieder den DNS-Namen, die Gerätebezeichnung, das MQTT-Topic oder einen anderen eindeutigen Bezeichner benötigt, hilft die Namenskonvention.
Muster Raumnummernsystem als Basis für die Namenskonvention im smarten Haus:
HOME
FLOORS
FLOOR
ROOMS
ROOM
DEVICES
NAME
DESCRIPTION
TYPE
raunet
00_ERDGESCHOSS
01_WOHNZIMMER
01_Licht
Beschreibung
light
01_FS1
Beschreibung
contact
02_ESSZIMMER
02_Licht
Beschreibung
light
02_FS
Beschreibung
contact
03_KUECHE
03_Licht
Beschreibung
light
03_FS
Beschreibung
contact
04_GAESTEWC
04_Licht
Beschreibung
light
04_FS
Beschreibung
contact
05_GAESTEBAD
05_Licht
Beschreibung
light
05_FS
Beschreibung
contact
06_GAESTEZIMMER
06_Licht
Beschreibung
light
06_FS
Beschreibung
contact
09_FLUR
09_Licht
Beschreibung
light
09_FS
Beschreibung
contact
10_OBERGESCHOSS
11_WOHNZIMMER
11_Licht
Beschreibung
light
11_FS1
Beschreibung
contact
12_ANKLEIDE
12_Licht
Beschreibung
light
12_FS
Beschreibung
contact
13_WAESCHE
13_Licht
Beschreibung
light
13_FS
Beschreibung
contact
14_EMPORE
14_Licht
Beschreibung
light
14_FS
Beschreibung
contact
19_FLUR
19_Licht
Beschreibung
light
19_TS
Beschreibung
contact
20_KELLERGESCHOSS
21_BUERO
21_Licht
Beschreibung
light
21_FS1
Beschreibung
contact
22_HOBBY
22_Licht
Beschreibung
light
22_FS
Beschreibung
contact
23_HEIZUNG
23_Licht
Beschreibung
light
23_HEIZUNG
Beschreibung
switch
23_FBH_Pumpe
Beschreibung
switch
24_VORRATSROOM
24_Licht
Beschreibung
light
24_FS
Beschreibung
contact
24_Gerfiertruhe
Beschreibung
switch
25_HAUSANSCHLUSSROOM
25_Licht
Beschreibung
light
25_STROMMESSUNG
Shelly 3 EM
powermeter
26_DUSCHE
24_Licht
Beschreibung
light
26_Abluft
Beschreibung
switch
29_FLUR
29_Licht
Beschreibung
light
29_TS
Beschreibung
contact
30_AUSSENANLAGEN
31_EINGANG
31_Licht
Beschreibung
light
31_Standleuchte_groß
Beschreibung
light
31_Standleuchte_klein
Beschreibung
light
31_BWM
Beschreibung
motion
31_Eingangskamera
Beschreibung
camera
32_TERRASSE
22_Licht
Beschreibung
light
32_BWM
Beschreibung
motion
32_Quellstein
Beschreibung
switch
33_CARPORT
23_Licht
Beschreibung
light
33_BWM
Beschreibung
motion
34_UNTERSTAND
24_Licht
Beschreibung
light
34_BWM
Beschreibung
motion
35_SCHUPPEN
25_Licht
Beschreibung
light
Einsatzzweck – Lokal DNS-Name von Netzwerk-Clients
Unifi Network unterstützt, zumindest auf der Web GUI, den lokalen DNS Namen. Damit benötigt der Browser http://[lokaler DNS Name][:][Port] als URL.
Einstellungen tasmota:
Einstelllungen shelly (alt):
Einsatzzweck – MQTT – Topics
Zumindest Teile des verwendeten Topics kann bei allen Systemen vorgegeben werden.
Einsatzzweck – Device Name
In diversen Smarthome-Systemen (FHEM, ioBroker, HomeAssistant, …) können interne Namen für die unterschiedlichen Geräte vergeben werden. Auch hier empfiehlt es sich das einheitliche Benennungssystem zu verwenden.
Mitte 2019 konnte ich dem Hype um die Shelly Produkte nicht mehr ausweichen, und habe mir, mit dem Ziel meine Bastelarbeiten durch Produkte mit CE – Zeichen ohne Cloud-Zwang zu ersetzten, direkt in Bulgarien bei alterco im Shop 4 x Shelly 1PM, 4 x Shelly 2.5 und 4 x Shelly 1 bestellt.
Die Lieferung erfolgte erfreulich schnell, was ein wenig die damals sehr hohen Versandkosten bei DHL – Lieferung rechtfertigten.
Selbstverständlich erfolgte die völlig problemlose Installation (Verkabelung) durch einen freundlichen und interessierten Elektriker, vielen Dank dafür.
WLAN – Konfiguration
Alle Shellies funken im 2,4 Mhz WLAN. Unser Haus mit 3 Etagen und verschiedenen Räumen mit Fußbodenheizung ist für die optimale Verteilung von Funkwellen in diesem oder höheren Frequenzbereichen nicht wirklich geeignet. Aus diesem Grund hatte ich bereits vor der Shelly – Installation die Etagen über Devolo DLAN – Wifi verbunden.
Es wurde mir jedoch klar, dass eine Fritz-Box auf Dauer keine geeignete Lösung für mittlerweile deutlich über 30 WLAN – Clients und diverse weitere LAN – Clients sein wird. Immerhin habe ich es zum Laufen gebracht.
Konfigurationsregeln
Konfiguration über Web-GUI des Shellies (ohne Cloud):
Der Standard Mode bei Auslieferung oder nach dem Zurücksetzen auf die Werkseinstellungen ist: Access Point
Verbinden des Shellies mit dem Standard Wi-Fi-Netzwerk (im Auslieferungszustand) (SSID) z.B. wie Shelly1 – 84CCA87D7CDC ohne Passwort. Die universelle IP-Adresse für alle Shelly-Geräte lautet: 192.168.33.1, um auf die Webschnittstelle zu gelangen.
Es erscheint eine abgespeckte Konfigurationsmaske für die Erfassung der eigenen WLAN – Zugangsdaten (SSID und Passwort WPA).
Nach dem Neustart verbindet sich der Shelly mit eigenen WLAN
Über die lokale IP Adresse wird die Konfiguration fortgesetzt
Beispiel „Returned json from:“ http://admin:[password]@[IP | DNS-Name]/settings
Als (ehemaliger) FHEM – User hat man ein latentes Unwohlsein bei der Nutzung einer Cloud. Da Shellies auf MQTT „ohne Cloud“ umgestellt werden konnten und in FHEM MQTT Server und Client Module bereits existierten, habe ich mich in dieses Thema eingearbeitet.
Trotz aller folgenden tollen Entwicklungen sehe ich auch heute noch die Vorteile dieser Kommunikation von IOT – Ereignissen über einen oder mehrere Broker und beliebig vielen Abonnenten von topics. Leider bietet dieses System einfach zu viele Gestaltungsmöglichkeiten und keinen einheitlichen Standard.
So publizieren Shellies relativ starr generell alles unter dem Topic „shellies/[devicename]/#“. Eine Abbildung des Raumnummernsystems in MQTT ist, – wenn zwingend gewünscht -, nur durch zusätzliche Topic – Spiegelungen möglich. Ich habe es mittlerweile aufgegeben und nur noch den Gerätenamen auf Basis des Raumnummernsystems vergeben.
Beispiel Shelly 1 (SHSW-1) Deckenleuchte im Vorratsraum im Keller (settings: s.o.):
Nach intensiver Beratung im FHEM Forum und den ersten Tests mit einem gebrauchten HM-LAN Adapter habe ich ein Angebot genutzt und mir eine Homematic CCU2 mit einigen Unterputz Schalten für unser Merten Standard – Polarweis angeschafft.
FHEM – Integration mit HMCCU – Modul
Allen Warnungen zum Trotz habe ich die CCU2 mit dem HMCCU-Modul von Zap in FHEM eingebunden. Hauptsächlich fehlte mir in den anderen Varianten die Unterstützung von HM-IP.
Nachdem ich mich in die Homematic GUI eingearbeitet hatte fiel es mir immer schwerer mich auf eine „Steuerung“ festzulegen.
Empfohlene Informationsquellen
Neben dem offiziellen Homematic Forum ist Stefan Kleen mit seinen Videos und Blogs eine hervorragende Informationsquelle.
Wenn‘s ins Eingemachte geht ist Alexander Reinert (ist auch im Homematic Forum unter deimos aktiv) eine gute Wahl.
Homematic – Aktueller Ausbau
Aufgrund der hohen Stabilität und der Unabhängigkeit von einem zusätzlich 24/7 laufenden Server fand ein schneller Ausbau statt, der fast alle ESP8266 – Basteleien ersetzen konnte. Selbst die „433 Mhz gesteuerte Panikbeleuchtung“ (RollingCode-Problem) konnte ersetzt werden.
Stück
Typ
Icon
Bezeichnung
2
HM-CC-RT-DN
Funk-Heizkörperthermostat
1
HM-LC-Bl1-FM
Funk-Rollladenaktor 1-fach, Unterputzmontage
1
HM-LC-Bl1PBU-FM
Funk-Rollladenaktor 1-fach für Markenschalter, Unterputz
Funk-Sender 2-fach für Markenschalter, Unterputzmontage
2
HM-Sec-RHS
Funk-Fenster-/ Drehgriffkontakt
5
HM-Sec-SCo
Funk- Tür-/Fensterkontakt optisch
1
HmIP-BDT
Homematic IP Dimmaktor für Markenschalter, Unterputzmontage
1
HMIP-PS
Homematic IP Zwischenstecker Schalten
4
HmIP-SMI
Homematic IP Bewegungsmelder innen
4
HmIP-SMO
Homematic IP Bewegungsmelder außen
5
HmIP-SPI
Homematic IP Präsenzmelder – innen
2
HmIP-SWSD
Homematic IP Rauchmelder
1
HB-RF-ETH
HB-RF-ETH, RPI-RF-MOD mit externer Antenne und POE Adapter
2
HmIP-HAP
Homematic IP Access Point
1
HM CCU2
Homematic CCU2 als RF Gateway
35
Homematic
Geräte
Homematic/Homematic IP
Wechsel zu debmatic
Die CCU2 und der LAN-Adapter habe ca. 4 Jahre nonstop völlig problemlos gearbeitet. Der notwendige Pflegeaufwand war sehr gering.
Zur verbesserung der Reichweite für entlegene HMIP-Geräte wurde das System um 2 x HMIP-HAP, die als LAN-Router fungieren erweitert. Da ich in 2021 meinen Proxmox -Server in Betrieb genommen hatte, stand ich vor der Wahl, ob es eine CCU3, ein RaspberryMatic oder ein debmatic als virtuelle Maschine werden soll.
Entschieden habe ich mich für debmatic in einer VM auf Proxmox mit einem HB-RF-ETH mit einem RPI-RF-MOD Funkmodule für HM und HMIP.
Seit her werkelt meine alte CCU2 als HomeMatic RF-LAN Gateway und den alten LAN-Adapter habe ich verschenkt.
Auch diese debmatic Konfiguration läuft mittlerweile schon fast 2 Jahre ohne irgendwelche Beanstandungen.
Hinweis/Empfehlung:
debmatic in einer Virtuellen Maschine von Proxmox installieren!
Wie bei vielen anderen Gleichgesinnten auch waren es die ersten 433 Mhz intertechno Funkschaltsteckdosen, die den Anreiz schafften, sie mit dem PC zu steuern. Also etwas im Netz gestöbert und Systeme wie openHab und FHEM gefunden.
Meine Wahl viel 2016 auf FHEM, weil mich die Community begeistert hat. Nicht ausschließlich die deutsche Sprache, die ich auf jeden Fall besser beherrsche als Englisch (openHAB), sondern auch der Perl Interpreter, der, im Vergleich zu Java, mir an anderer Stelle bereits über den Weg gelaufen ist.
Erste FHEM – Installation
Für meinen Mac Mini hatte ich bereits Paralles zur Windows Virtualisierung im Einsatz. Also, was lag näher, als eine weitere virtuelle Maschine auf Linux Basis (Ubuntu Server 16.04 LTS) anzulegen, und, FHEM zu installieren. Ein wenig kniffelig war das Durchreichen vom USB Anschluss, aber lösbar.
Ersten 433 MHz CUL-Stick
… nach Anleitung aus dem FHEM – Wiki zusammen gelötet. Die Firmware „geflasht“, in Parallels durchgereicht und diesen in FHEM eingebunden, perfekt, auf Anhieb schaltbar.
Nach einigen Erfahrungen und Tests im Umgang mit FHEM hatte ich das Prinzip von FHEM zumindest grob verstanden und wollte ich schnell immer mehr.
In meiner anfänglich sehr naiven Vorstellung sollte es doch irgendwie möglich sein die vorhandene Funk-Panik-Beleuchtung der Firma IVT Hirschau mit RFXTRX in FHEM zu steuern. Mir wurde jedoch schnell klar, dass es sich um eine „Rolling-Code“ Fernbedienung handelt.
Einerseits war ich froh, dass unsere Panik-Beleuchtung nicht so einfach von Fremden zu steuern war, andererseits war aufgeben keine Option. Die konkrete Antwort „… Rolling Code, keine Chance …“ von Markus M. im FHEM Forum beendete dann endgültig meine Bemühungen softwareseitig.
Die Lösung war letztendlich, eine der beiden angelernten Funkfernbedienungen zu opfern und mit einem Arduino den Tastendruck zu übernehmen. Dank der Unterstützung von Arnd (RaspiLED) in diesem Beitrag schaffte ich es die Steuerung über das Firmata – Modul zu übernehmen.
Matthias Kleine – haus-automatisierung.com
Als Meilenstein in meiner Entwicklung darf ich Matthias Kleine nicht vergessen. Seine Videos und Tutorials habe ich mit Begeisterung verfolgt und nachgebaut.
So entstanden diverse FHEM – Integrationen und meine FHEM Oberfläche erhielt einen neuen, meiner Ansicht nach WAF – tauglichen, Look.
Ein Traum wurde wahr, als meine Universal Fernbedienung von Logitech zu einem echten „Schnapperpreis“ angkommen ist.
Die den folgenden Tagen, naja eher Wochen, habe ich neben unseren Hifi-Komponeten, TV, PS3, …, auch alle möglichen SmartHome Steuerungen auf diese Fernbedienung gelegt. Ein echt cooles Projekt mit gutem Ausgang dank der tollen Unterstützung der FHEM Community und im Speziellen, von justme1968.
Die Fernbedienung ist immer nach über 6 Jahren immer noch im Einsatz. Sie steuert zwar nicht mehr soviele SmartHome – Komponenten, jedoch einige Szenen werden auch heute noch damit aktiviert.
Homebridge Einstieg
Ebenfalls konnte ich auf die Expertise von justme1968 vertrauen, bei der ebenfalls erfolgreichen Homekit Anbindung.
Mittlerweile nutze ich den Homebridge Dienst, zwar nicht mehr mit FHEM-Anbindung, immer noch mit einigen Sub-Bridges für meine Apple Geräte:
Numan Two – Küchenradio
Auch unser Küchenradio konnte nicht außen vor bleiben und wurde in FHEM integriert. Hier habe ich mumpitzstuff als versierten Experten viel zu verdanken.
Hier habe ich mich, unter Anderem, intensiver mit readingsgroups, defStateIcon und stateformat von FHEM beschäftigt:
TV-Sender Integration
Entsprechend meiner Universal Fernbedienung sollte auch mein iPad die Möglichkeit bieten zu den favorisierten Kanälen über ein Senderlogo umzuschalten. Das war zügig umsetzbar.
Naja, wenn man schon mal dabei ist, wäre es doch nett so eine Art „elektronischen Programmführer“ auf dem iPad anzuzeigen. Mit Bild und Text zu der gerade laufenden Sendung wäre noch besser, und, den Vogel abschießen würde es, wenn auch die folgenden Sendungen und das aktuell, zur PrimeTime und der PrimeTime folgenden Sendungen dargestellt würden mit der Möglichkeit zur Programmierung einer Aufzeichnung.
Essentiell war hier das httpmod – Modul. Mit der Unterstützung von CoolTux hatte ich (kurzfristig) mein erstes Modul erstellt. Das lief dank der Unterstützung von CoolTux auch sehr gut. Leider habe ich es im Forum und auf github mit einem viel zu kurzen Aktualisierungsinterval veröffentlicht. In kurzer Zeit hatte die von mir gewählte Programmzeitschrift so viele Zugriffe und traffic, dass man sich an offizieller Stelle beschwert hat.
Ich habe mich entschuldigt und den Code und das Modul aus dem FHEM Forum und von github entfernt, und, alle Nutzer gebeten das Interval auf > 60 Minuten zustellen, oder besser, die auf meinem Code basierenden Devices wieder zu löschen.
nmap-Modul vs Fing – Modul
Zwischenzeitlich hatte ich in einem indiegogo KickStarter – Projekt eine „FingBox“ geordert.
…
Da die ersten Firmware Versionen keine Schnittstelle oder API zur Verfügung stellte, habe ich zunächst versucht mit dem FHEM nmap- Modul von igami den Netwerkscan auszuführen und aufzubereiten:
Warum proxmox als Basis für ein HomeServer Projekt …
proxmox ist eine freie Virtualisierungsplattform, die wenig Wünsche offen läßt. Sie ist einfach zu bedienen und hat eine breit aufgestellte Community.
Damit ist es möglich auf unterschiedlichen Betriebssystemen basierende Serverdienste auf einer Hardware zu installieren. Das bietet viele Vorteile gegenüber einem einzelnen System. Angefangen von der Installation über die Wartung bis hin zur Sicherung können andere Dienste unbeeinträchtigt weiterlaufen.
HomeServer – Überblick
Meine Hardware ist über die „Schnelle Luzie“ mit Glasfaser (Fibre-To-The-Home) mit dem Internet verbunden. Für die derzeitige Verwendung ist das ausreichend schnell und zuverlässig.
Als Router und Controller verwende ich eine Unifi Dream Machine. Auf diesem Controller habe ich zur besseren Abschirmung verschiedene VLAN definiert.
In einem dieser VLAN befindet sich mein Mini-PC, der als Proxmox Server eingerichtet ist. Als externen Zugriffspunkt dient mir ein Nginx Proxy Manager, der in einem Container auf alpine Linux installiert ist.
Dieser verwaltet die SSL Zertifikate von LetsEncrypt und den verschlüsselten https Zugang und leitet u.a. die Sub Domain raunet.gernot-rau.de an den WordPress Server weiter. Dieser läuft auf einem Ubuntu Server 22.04 LTS – System, das ebenfalls auf dem Proxmox Server als Container definiert ist.
Vorab Gedanken
Welche Serverdienste sollen installiert werden?
Welche dieser Services sollen auf einer Maschine laufen?
Welcher dieser Service setzen eine VM voraus (können oder sollen nicht in einem Container laufen)?
Soll ein Zugriff von außen auf einen eingeschränkten Netzsegment erfolgen (VLAN)?
Feste IP oder DynDNS?
Welche lokalen IP Adressen sollen für zentrale Dienste von einer DHCP-Vergabe ausgeschlossen werden? Nur als Beispiel, sollten die Anzahl in den Bereichen nicht ausreichend entsprechend erweitern:
x.x.x.1 ist immer Domainserver / DHCP – Server …
x.x.x.2-5 wird für separate wichtige Domain/Netz Services reserviert (DNS, Adblocker, …)
Im Bios des Rechners nach Virtualisierung sowie iommu suchen oder unter Intel VT-d. Diese Optionen sollten eingeschaltet sein und nicht auf Automatisch stehen.
Nachdem der Rechner vorbereitet ist wird dieser von dem erstellten Bootstick gestartet (meistens kann die Bootreihenfolge mit Drücken der F12-Taste bei dem Rechner Start ausgewählt werden).
Es folgt eine vollständige Installationsroutine die ordnungsgemäß abgearbeitet werden sollte.
Anschliessend ist pve über https://[youripaddress]:8006 erreichbar und konfigurierbar (Montior und Tastaur werden i.d.R. am HomeServer nicht mehr benötigt.
Vorab Einstellungen in Proxmox
1. PVE-Knoten Update
Auch wenn die ISO Datei relativ aktuell ist, sollte nicht zuletzt aufgrund der Sicherheit das Basis – System aktualisiert werden. Leider ist das kostenpflichtige Proxmox VE Enterprise Repository.
Wenn man noch keine Lizenzierung hat sollte das „no-subscription Repository“ unter der Auswahl „Updates > Repositories > Hinzufügen“ innerhalb des PVE-Kontens angelegt und aktiviert werden. Bitte unbedingt auch das „enterpise-Repository“ deaktivieren.
Danach kann das Update ausgeführt werden. Hierzu im vertikalen Menü des pve Knoten „pve->Updates“ auswählen und mit dem Knopf „Update“ die Liste der aktualisierbaren Pakete abrufen und mit dem Knopf „>_Upgrade“ den Aktualisierungsprozess anstoßen und die Nachfrage im Konsolenfenster mit [Enter] bzw. [Y] bestätigen.
Subscription – Warnung abstellen
Optional kann man die Warnung, dass man eine „no-subscrition“ Version einsetzt abschalten. Dafür wird eine js-Datei aus geändert. Diese Änderung kann z.B. durch ein Update überschrieben oder unwirksam werden. Ich würde, solange man noch keine Lizenz erworben hat, mit der Warnung leben.
Wen es dennoch stört, könnte z.B. mit dem Befehl in „>_ Shell“ von Matthias Kleine die Meldung unterdrücken:
Links im vertikalen Menu den Speicher local (pve) auswählen und im angezeigten neuen vertikalen Menu Container Templates auswählen. Über den Knopf Template erscheint eine Auswahl verfügbarer Templates. Hier den Filter „ubuntu“ verwenden und die aktuelle Version auswählen und herunterladen.
Anmerkung:
Mit dem ebenfalls vorhandenen turnkey wordpress template habe ich bisher noch nicht anfreunden können. Was mir aufgefallen ist, dass diese turnkey templates unbedingt privilegiert sein müssen und erst installiert werden sollten, wenn alle Rahmenbedingungen wie DynDNS Einrichtung, Port-Weiterleitung des Routers und Host Routing im Nginx Proxy Manager bereits abgeschlossen sind?!
Ubuntu Container erstellen
Blauen Knopf „Container erstellen“ klicken und einen neuen Container auf Basis des geladenen Ubuntu Templates einrichten. Eine detaillierte Beschreibung zur Anlage eines Proxmox Containers befindet sich weiter unten. An dieser Stelle nur eine Beispiel- Konfiguration:
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
# A long browser cache lifetime can speed up repeat visits to your page
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
# disable access to hidden files
location ~ /\.ht {
access_log off;
log_not_found off;
deny all;
}
}
Datei mit [Ctrl] [o] speichern und Editor mit [Ctrl] [x] verlassen.
Step 6: Test PHP. …
sudo nano /usr/share/nginx/html/info.php
Folgenden Code eintragen:
<?php phpinfo(); ?>
Datei mit [Ctrl] [o] speichern und Editor mit [Ctrl] [x] verlassen.
Anschließend im Browser die PHP-Informationen abfragen:
http://<Server IP>/info.php
Step 7: Improve PHP Performance.
sudo nano /etc/php/8.1/fpm/conf.d/60-custom.ini
Folgenden Code einfügen:
; Maximum amount of memory a script may consume. Default is 128M
memory_limit = 512M
; Maximum allowed size for uploaded files. Default is 2M.
upload_max_filesize = 20M
; Maximum size of POST data that PHP will accept. Default is 2M.
post_max_size = 20M
; The OPcache shared memory storage size. Default is 128
opcache.memory_consumption=256
; The amount of memory for interned strings in Mbytes. Default is 8.
opcache.interned_strings_buffer=32
Datei mit [Ctrl] [o] speichern und Editor mit [Ctrl] [x] verlassen.
Step 2: Create a Database and User for WordPress Site
Ersetze your-password durch dein Passwort.
sudo mariadb -u root
create database wordpress;
create user wpuser@localhost identified by 'your-password';
grant all privileges on wordpress.* to wpuser@localhost;
flush privileges;
exit;
Step 3: Configure WordPress
Ersetze raunet.gernot-rau.de durch deinen WebSite-Namen.
cd /usr/share/nginx/raunet.gernot-rau.de/
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
Folgenden Code in der Datei prüfen und ggf. pflegen:
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'wpuser');
/** MySQL database password */
define('DB_PASSWORD', 'your-passwprd');
$table_prefix = 'rn51588_';
Datei mit [Ctrl] [o] speichern und Editor mit [Ctrl] [x] verlassen.
Datei mit [Ctrl] [o] speichern und Editor mit [Ctrl] [x] verlassen.
sudo nginx -t
sudo systemctl reload nginx
Bis hierhin kann die Anleitung 1:1 übernommen werden. Vor den nächsten Schritten sollte die Verbindung vom Internet über eine fest IP oder einen DynDNS Server (z.B.: IPV64) zum persönlichen Router, über eine Port-Weiterleitung an den Nginx Proxy Manager, der wiederum über den SubNet Namen die Weiterleitung an diesem WordPress Server vornimmt, abgeschlossen sein.
Anschliessend im Browser testen (raunet.gernot-rau.de durch WebSide-Name ersetzen)
raunet.gernot-rau.de/wp-admin/install.php
Wenn irgendetwas nicht stimmt ggf. folgende Module nach installieren und PHP sowei WebServer neu starten:
Anpssungen der wp-config.php bei der Nutzung des Nginx Proxy Manager ergänzen
Die Keys können mit dem Browser über folgende URL erstellt werden:
https://api.wordpress.org/secret-key/1.1/salt/
Anschließend die kann die wp-config.php wie folgt angepaßt werden:
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the installation.
* You don't have to use the web site, you can copy this file to "wp-config.php"
* and fill in the values.
*
* This file contains the following configurations:
*
* * Database settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://wordpress.org/support/article/editing-wp-config-php/
*
* @package WordPress
*/
/** nginx wordpress behind nginx proxy manager mit ssl see also end of this file*/
define('FORCE_SSL_ADMIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** Database username */
define( 'DB_USER', 'wpuser' );
/** Database password */
define( 'DB_PASSWORD', '12345678' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
/**#@+
* Authentication unique keys and salts.
*
* Change these to different unique phrases! You can generate these using
* the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
*
* You can change these at any point in time to invalidate all existing cookies.
* This will force all users to have to log in again.
*
* @since 2.6.0
define('AUTH_KEY', 'Demo@E]TE]6d-uPY>Q/2paB~eOp/-?]mZ]f|P0n-nU|6+7T<zzB,A_g5<;t+Nwe');
define('SECURE_AUTH_KEY', 'Demows.>5v{oK7|sJ1jTO-6Qf!wjm|tUVFnnv7YxjDz?0w~!C^+Q^+6mqFCM{aaO');
define('LOGGED_IN_KEY', 'DemoL2@Zq>jqir<n+g&5$LTH=$^eO2-_(Bydj@G+1xP(0-]xm:@.1AS]1K^$sU|e');
define('NONCE_KEY', 'DemoLO8j2aDcX|2IXoIjJU>2u7-zE{l/#|YRD{2X|-J.Oe>or%Wg!pB!.+kQ1-O');
define('AUTH_SALT', 'Demo;+I+U4Pi~<6_f3fGvq9tZ4e,ELT<?d$`|&]D+/ER$U *;P]l2mg%4@h}K?tl');
define('SECURE_AUTH_SALT', 'Demo{d(nWnJdG1SsEDQAqij4qiZK.7u pT d?(otRM3pL=cyhG;tl-zd:r!bt3Zy');
define('LOGGED_IN_SALT', 'Demon8F0|`I7etZ/=v-N;$WdaaY|p%-Y!Nnm}%!^Ll{P-?k^rJ5Zk%r17/gkk/|c');
define('NONCE_SALT', 'DemoVgO(=8oKZ;+V(<(TK~fi61|&+o9G$ %iuL.m`y<_symxv5e5SNx4nGb85yaI');
/**#@-*/
/**
* WordPress database table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'rn_';
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the documentation.
*
* @link https://wordpress.org/support/article/debugging-in-wordpress/
*/
define( 'WP_DEBUG', false );
/* Add any custom values between this line and the "stop editing" line. */
define('ALTERNATE_WP_CRON' , true );
define('FORCE_SSL_ADMIN', true);
//Set in database in wordpress admin gui
//define('WP_HOME','https://raunet.gernot-rau.de');
//define('WP_SITEURL','https://raunet.gernot-rau.de');
/** nginx wordpress behind nginx proxy manager mit ssl */
if($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
$_SERVER['HTTPS'] = 'on';
$_SERVER['SERVER_PORT'] = 443;
}
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
(Step 5: Enabling HTTPS)
wird in meiner Konfiguratuion nicht in dem WordPress Container sondern von Nginx Proxy Manager verwaltet.
Step 6: Finish the Installation with the Setup Wizard) – hier klicken
Die wahrscheinlich einfachere Lösung wäre es, den Nginx Proxy Manager in einem Docker Container zu installieren. Aufgrund der besseren Übersicht in proxmox habe ich mich jdoch für eine LXC Container entschieden. Auf Basis des sehr effizienten alpine Container Templates ist es super schnell und zuverlässig.
Aktuelles alpine Template herunterladen
Links im vertikalen Menu den Speicher local (pve) auswählen und im angezeigten neuen vertikalen Menu Container Templates auswählen. Über den Knopf Template erscheint eine Auswahl verfügbarer Templates. Hier den Filter „alpine“ verwenden und die aktuell Version auswählen und herunterladen.
Alpine Container erstellen
Blauen Knopf „Container erstellen“ klicken und einen neuen Container auf Basis des Alpine Templates einrichten:
(1) CT-ID: automatisch wird die nächste freie ID >= 100 gewählt. Ggf. 100 + [HOST-ID]
(2) Wiedererkennbare Bezeichnung. Ggf. „npm„
(3) Das geladene alpine Template auswählen
(4) Als root-disk reichen für npm 8 GB
(5) Es reicht 1 Kern
(6) Es reichen 1024 MB
(7) Kleine freie IP im lokalen Netz als feste IP für npm reservieren (ggf. xxx.xxx.xxx.5)
Vor dem ersten Start nich den Automatischer Start und diese Features einstellen:
npm Container das erste Mal starten
Jetzt kann der Container das erstmal gestartet werden.
Grundsätzlich sollte zunächst überprüft werden, ob die feste IP zugewiesen wurde und das System aktualisiert werden:
root@npm:~$ wget --no-cache -qO - https://raw.githubusercontent.com/ej52/proxmox/main/lxc/nginx-proxy-manager/setup.sh | sh
Sollten Fehler auftauchen fehlt noch ein Paket, das mit apk add [paketname] schnell installiert ist.
Danach verhält sich der Nginx Proxy Manager wie bei der sonst üblichen Docker Installation, mit dem Unterschied, das auch Änderungen im Container persistent erhalten bleiben.
Melden Sie sich bei der Admin-Benutzeroberfläche an
Stellen Sie über den Port 81 eine Verbindung zur Admin-GUI her.
http://[Die festgelegte IP]:81
Der Standard-Admin-Login lautet:
Email: admin@example.com
Password: changeme
Unmittelbar nach der Anmeldung mit diesem Standardbenutzer werden Sie aufgefordert, die Profildaten zu erfassen und das Passwort zu ändern.
DynDNS über ipv64.net einrichten / Sub-Domain Record A
Da ich eine feste IP zu meinem Tarif gebucht habe, musste ich nur eine Sub-Domain einrichten und den A-Record auf diese zeigen lassen.
Eine feste IP ist dank DynDNS nicht erforderlich. Ein sehr interessanter Anbieter für diesen Dienst ist ipv64. Sehr gut erklärt, viele zusätzliche Features und kostenfrei:
Port-Weiterleitung z.B. im Unifi-Router mit definieren
Nachdem der Router aus dem Internet über eine Domain, Sub-Domain erreichbar ist, muss nur noch die Port-Weiterleitung zum Nginx Proxy Manager eingerichtet werden.
WordPress Host im Nginx Proxy Manager inklusive ssl Verschlüsselung
Mit der URL http://[IP des NPM Servers]:81 die Administrations-GUI des Nginx Proxy Manager aufrufen und mit der festgelegten e-Mailadresse und Passwort anmelden.
Im horizontalen Menü Hosts auswählen und mit dem Add Host Knopf einen neuen Proxy Host hinzufügen:
Hierbei habe ich den Fokus auf die Funktionalität gelegt und wenig Mühe auf das Design oder die idealen Ladezeiten investiert. Im Wesentlichen habe ich mich auf Standards von WordPress und das Plugin The Event Calendar beschränkt.
Dank der schnellen Luzie und einer festen IP hoste ich diese Website laienhaft selbst. Ich verwende hierzu einen proxmox Server mit einem Ubuntu 22.04 Container in dem sowohl die WordPress Webseite unter nginx zur Verfügung gestellt, als auch die MariaDB ausschliesslich für WordPress läuft.
Diese WebSite ist nur über einen definiert Host im Nginx Proxy Manager erreichbar. Dieser verwaltet auch das SSL Zertifikat (Let’s Encrypt) für die SubDomain.
Zusammengefaßt habe ich diese WebSite mit den mir zur Verfügung stehenden Mitteln einfach so „raugerotzt„, um nicht zu viel Zeit zu verlieren. Die Zusatzinformationen sind hauptsächlich bei der Digitalisierung des Abfuhrkalenders entstanden.
Auch hier gilt, für Anregungen und konstruktive Kritik wäre ich sehr dankbar.
Zum Ändern Ihrer Datenschutzeinstellung, z.B. Erteilung oder Widerruf von Einwilligungen, klicken Sie hier:
Einstellungen