Quantcast
Channel: FHEM – wolf-u.li
Viewing all 46 articles
Browse latest View live

Einbindung der PiHole Statistiken in FHEM

$
0
0

PiHole als DNS-Server ist in meinem Netzwerk ein fester Bestandteil. Zeit auch die Statistiken über die geblockten Werbeanzeigen in FHEM zu sammeln und zu visualisieren.

Und so gehts – im unten stehenden Code einfach „dns“ gegen die Adresse oder IP des PiHole-DNS-Servers tauschen:

define INF_HTM_DNS1_INFO HTTPMOD http://dns/admin/api.php 300
attr INF_HTM_DNS1_INFO userattr getURL
attr INF_HTM_DNS1_INFO extractAllJSON 1
attr INF_HTM_DNS1_INFO getURL http://dns/admin/api.php
attr INF_HTM_DNS1_INFO stateFormat DNS Anfragen: dns_queries_today<br>Geblockte Seiten: ads_blocked_today (ads_blocked_today_formatted %)
attr INF_HTM_DNS1_INFO userReadings ads_blocked_today_formatted {round(ReadingsNum($name,"ads_percentage_today",0),0)}

Wie immer ist das Device nach meiner Namenskonvention benannt 😉


Related posts:


© 2005-Today by Uli Wolf - This Content is distributed under the Creative Commons License
This feed is for personal, non-commercial use only.
The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: d2a576b5311479d89eff39b7ca886f6b)

Darstellung der Statistiken des Brother ADS-1700W in FHEM

$
0
0

Nach dem HP 8620 wollte ich auch meinen neuen Brother ADS-1700W Scanner in FHEM darstellen. Und so gehts 🙂

defmod BUE_ADS1700W_STATUS HTTPMOD http://ads1700w/ft/gen_maintenance 3600
attr BUE_ADS1700W_STATUS userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict reading05Name reading05XPath-Strict reading06Name reading06XPath-Strict reading07Name reading07XPath-Strict reading08Name reading08XPath reading08XPath-Strict reading09Name reading09XPath-Strict reading10Name reading10XPath-Strict reading11Name reading11XPath-Strict reading12Name reading12XPath-Strict
attr BUE_ADS1700W_STATUS DbLogExclude .*
attr BUE_ADS1700W_STATUS enableControlSet 1
attr BUE_ADS1700W_STATUS httpVersion 1.1
attr BUE_ADS1700W_STATUS reading01Name Model
attr BUE_ADS1700W_STATUS reading01XPath-Strict //Model_name/text()
attr BUE_ADS1700W_STATUS reading02Name Serial_Number
attr BUE_ADS1700W_STATUS reading02XPath-Strict //Serial_Number/text()
attr BUE_ADS1700W_STATUS reading03Name Firmware_Version
attr BUE_ADS1700W_STATUS reading03XPath-Strict //MainVersion/text()
attr BUE_ADS1700W_STATUS reading04Name PickupRollerPagesThreshold
attr BUE_ADS1700W_STATUS reading04XPath-Strict //RemainingPick/text()
attr BUE_ADS1700W_STATUS reading05Name PickupRollerPagesUsed
attr BUE_ADS1700W_STATUS reading05XPath-Strict //RemainingPick_current/text()
attr BUE_ADS1700W_STATUS reading06Name ScheduledMaintenancePagesThreshold
attr BUE_ADS1700W_STATUS reading06XPath-Strict //RemainingScheduled/text()
attr BUE_ADS1700W_STATUS reading07Name ScheduledMaintenancePagesUsed
attr BUE_ADS1700W_STATUS reading07XPath-Strict //RemainingScheduled_current/text()
attr BUE_ADS1700W_STATUS reading08XPath SeparationPadPagesThreshold
attr BUE_ADS1700W_STATUS reading08XPath-Strict //RemainingPad_Threshold/text()
attr BUE_ADS1700W_STATUS reading09Name SeparationPadPagesUsed
attr BUE_ADS1700W_STATUS reading09XPath-Strict //RemainingSeparation_Pad/text()
attr BUE_ADS1700W_STATUS reading10Name ScannedPagesTotal
attr BUE_ADS1700W_STATUS reading10XPath-Strict //ScanPage/text()
attr BUE_ADS1700W_STATUS reading11Name RollerReplacements
attr BUE_ADS1700W_STATUS reading11XPath-Strict //RollerReplace/text()
attr BUE_ADS1700W_STATUS reading12Name PaperJams
attr BUE_ADS1700W_STATUS reading12XPath-Strict //PaperJams/text()
attr BUE_ADS1700W_STATUS room Büro
attr BUE_ADS1700W_STATUS stateFormat Pages: ScannedPagesTotal Modell: Model SN: Serial_Number
attr BUE_ADS1700W_STATUS verbose 0

Related posts:


© 2005-Today by Uli Wolf - This Content is distributed under the Creative Commons License
This feed is for personal, non-commercial use only.
The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: d2a576b5311479d89eff39b7ca886f6b)

Einbindung der ESENTA SIAS (S)IP Türsprechanlage per MQTT in FHEM

$
0
0

Seit dem Firmware Version 1.10.x kann die ESENTA SIAS per MQTT Informationen weitergeben. Das ist natürlich ein perfekter Weg zur Einbindung in FHEM, denn ich gleich mal ausprobiert und für Euch dokumentiert habe.

Welche Informationen sendet die ESENTA SIAS per MQTT?

Laut ESENTA sind mit der Firmware Version 1.10.x folgende Möglichkeiten vorhanden:

  • Bewegungserkennung
  • Authentifizierung von Bewohnern über Fingerprint, NFC, PIN Code, App oder SIP
  • Beim Auslösen der Klingel bzw. Statusänderung der Klingel
  • QR Codes, die keinem Zugangscode entsprechen, um diese an anderen Stellen auszuwerten

Aus meiner Sicht ist das für eine erste Version der MQTT Schnittstelle sehr gut, da gerade die ersten beiden Fälle schon die wichtigsten meiner Szenarien abdecken und so kann ich getrost über eine Einbindung via Homematic Schließerkontakt  (war ursprünglich geplant) verzichten.

Wie bindet man die ESENTA SIAS in FHEM ein?

1) Falls noch nicht vorhanden einen MQTT2 Server in FHEM einrichten und direkt mit einem Passwort absichern

define myBroker MQTT2_SERVER 1883 global
define allowed_MQTT2 allowed;
attr allowed_MQTT2 validFor myBroker;
attr allowed_MQTT2 basicAuth { "$user:$password" eq "mqttuser:secret" };

2) In der Esenta SIAS Weboberfläche unter Smarthome, die MQTT Schnittstelle aktivieren und die Logindaten hinterlegen. Danach überprüfen, ob der Status „verbunden“ ist.

MQTT Konfiguration in der ESENTA SIAS Weboberfläche

3) Zurück in FHEM wird nun ein MQTT Device automatisch angelegt, sobald zumindest eine Bewegung von Eurer Türsprechstation erkannt wird, da per Default das autocreate Attribut des MQTT Servers auf „simple“ gesetzt ist. Sollte noch kein Device vorhanden sein, dann löst eine Aktion aus wie bspw. eine Klingeltaste in der Türstation zu drücken.  Das Device wird so angelegt, dass es nun auf die MQTT Client ID der Türstation horcht. Die Client ID der ESENTA SIAS sieht etwa so aus „SI_AS1100V2_XXXXX“, wobei XXXXX als Platzhalter zu verstehen ist.

Automatisch erstelltes MQTT Device der ESENTA SIAS in FHEM

4) Umbenennen des Devices (XXXXX durch eigene ID ersetzen) und ggf. einem Raum, etc. zuordnen.

rename MQTT2_SI_AS1100V2_XXXXX MQTT2_EsentaSias;

5) Entsprechend der per MQTT umgesetzten Punkte (wie oben beschrieben) gibt es in MQTT nun jeweils ein Topic hierzu (motion, authentification, ring und qrcode). Ich habe es für sinnvoll gehalten, die vier Topics als einzelne MQTT Devices in FHEM zu erstellen. Man kann dies natürlich manuell machen oder alternativ über folgenden Befehl (XXXXX durch eigene ID ersetzen). Dadurch wird dynamisch für jedes neue Topic ein Device angelegt.

set MQTT2_EsentaSias bridgeRegexp esenta/SI-AS1100V2-XXXXX/([A-Za-z0-9]*)[/]?.*:.* "EsentaSias_$1"

6) Damit dies tatsächlich geschieht sollte man sich einmal zur Türstation bewegen, sich authentifizieren und einmal klingeln. Falls gewünscht natürlich auch einen QR Code einscannen (habe ich weggelassen). Das Ergebnis sieht dann wie folgt aus:

Automatisch erstellte MQTT Devices basierend den Topics der ESENTA SIAS

7) Nun können wir die Werte die MQTT liefert auswerten. Die Werte werden als Readings angelegt. Im Nachfolgenden ist nun also beschrieben, wie wir den das state Attribut des jeweiligen Devices setzen – beginnen wir beim Bewegungsmelder. Durch Definition des stateFormat Attributs können wir in den state des FHEM Devices schreiben, ob aktuell eine Bewegung erkannt wurde oder nicht. Dies geschieht durch folgenden Befehl:

attr MQTT2_EsentaSias_motion stateFormat {
if(ReadingsVal("$name","value",0) eq "true") {
sprintf("motion");;
} else {sprintf("no_motion");; }
}

8) Weiter geht es mit der Klingel. Ich gebe zu, hier habe ich es mir leicht gemacht, da ich nur ein Klingelschild definiert habe. Interessant zu wissen ist, dass es folgende Statis gibt: ringing, established, hangup, timeout . Diese kann man natürlich wunderbar in allen möglichen Anwendungsfällen weiterverarbeiten.

attr MQTT2_EsentaSias_ring stateFormat status;

9) Zuletzt noch die Auswertung der Zutrittskontrolle. Ich finde es hier sinnvoll im state stehen zu haben, wer sich zuletzt angemeldet hat. Allerdings bekommt man per MQTT aus der ESENTA SIAS nur IDs (User, Fingerprint, NFC Card, …) geliefert, deren Zuordnung man in der Weboberfläche der ESENTA SIAS unter Benutzer einsehen kann. Zur Umwandlung und weiteren Verwendung in FHEM eignet sich das eventMap Attribut:

attr MQTT2_EsentaSias_authentication stateFormat userid;
attr MQTT2_EsentaSias_authentication eventMap /20:Paul/21:Anja;

Das war es zur initialen Einbindung der ESENTA SIAS in FHEM. Ich persönlich finde die Umsetzung per MQTT wirklich top und sinnvoll – das machen nicht viele so.


Related posts:


© 2005-Today by Uli Wolf - This Content is distributed under the Creative Commons License
This feed is for personal, non-commercial use only.
The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: d2a576b5311479d89eff39b7ca886f6b)

Kamera der ESENTA SIAS (S)IP Türsprechanlage in FHEM einbinden

$
0
0

Wenn man eine moderne Türsprechanlage wie die ESENTA SIAS besitzt, dann möchte man diese natürlich in das eigene Smarthome integrieren. Im Nachfolgenden sind mehrere Wege beschrieben, wie der Kamerastream in FHEM eingebunden werden kann. Genauer gesagt wird die Einbindung über 1) das IPCAM Modul 2) einen Reverse Proxy und 3) die Synology Surveillance Station beleuchtet.

Einbindung über IPCAM in FHEM

Ein Weg zu Einbindung der Kamera der ESENTA SIAS Türsprechstation ist das Modul IPCAM in FHEM. Nachfolgend beschrieben ist, wie man die Kamera im einfachsten Fall einbindet.  Natürlich bietet das Modul IPCAM noch weitere Einstellmöglichkeiten, die im FHEM Wiki und der Commandref beschrieben sind:

define cam_esenta_sias IPCAM 
attr cam_esenta_sias basicauth camera:
attr cam_esenta_sias path snapshot_wide.jpg
attr cam_esenta_sias icon it_camera

Ruft man nun folgendes auf, dann wird das aktuelle Bild von der Kamera in FHEM standardmäßig unter ./www/snapshots gespeichert. Das aktuelle Bild kann man so in FHEM Tablet UI oder auch zum Versand in Telegram verwenden.

get cam_esenta_sias image

 

Einbindung des Livebildes ins FHEM Tablet UI über einen Reverse Proxy (Nginx)

Möchte man den Livestream der Kamera im FHEM Tablet UI einbinden und hat zuvor die Kamera mit einem Passwortschutz versehen, so ist es leider nicht möglich den Stream direkt per URL in das Tablet UI einzubinden. Ohne im Detail darauf einzugehen, ist der Hintergrund sicherheitsrelevante Aspekte, die von den meisten Browsern forciert werden. Ein Weg, um dies wieder zu ermöglichen, ist die Einrichtung eines Reverse Proxy, der die Authentifizierung übernimmt. Zum Schluss erhält man einen Link, der ohne weitere Authentifizierung, direkt in das FHEM Tablet UI eingebunden werden kann. Das Ganze wird hier am Beispiel von NGINX beschrieben.

Zuerst einmal installieren wir NGINX, z.B. mit den folgenden Befehlen auf unserem Debian/Ubuntu basierendem System:

apt update
apt install nginx -y

Dann starten wir den NGINX Server und sorgen dafür , dass dieser bei jedem Neustart automatisch wieder gestartet wird:

sudo systemctl start nginx
sudo systemctl enable nginx

Anschließend wechseln wir in das Verzeichnis von NGINX, um eine Konfiguration anzulegen:

cd /etc/nginx/sites-available/
nano doorcom.conf

Die Konfiguration, sieht wie folgt aus:

server {
 listen 9000;
 listen [::]:9000;
 
 server_name fhem.lan;
 
 access_log /var/log/nginx/reverse-access.log;
 error_log /var/log/nginx/reverse-error.log;
 
 location /doorcam/ {
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://192.168.1.100/stream_wide.mjpg;
   proxy_set_header Authorization "Basic &lt;base64 encoded camera:password&gt;";
   proxy_buffering off;
   }
}

Erklärung der Konfiguration:

  • listen: Festlegung über welchen Port, der neue Link auf den Kamerastream bereitgestellt werden soll
  • location: Definition über welchem neuen Pfad der Kamerastream erreichbar sein soll.
  • proxy-pass: Link zum Stream der ESENTA SIAS Kamera ohne die Authentifizierung
  • proxy_set_header Authorization: Wie in den Klammern angedeutet, muss hier der Base64 enkodierte Wert aus Username (camera) und Passwort des Livestreams eingetragen werden.

Die Einrichtung bezieht sich aus Gründen der einfacheren Erklärung nur auf die Verbindung via HTTP. Klar zustellen ist hier, dass dies unsicher ist, da Username & Password bzw. das Base64 enkodierte Ergebnis ausgelesen werden können. Deutlich sicherer ist Basic Auth in Kombination mit HTTPS. Auch dies wird von NGINX natürlich unterstützt. Es gibt dazu zahlreiche Tutorials im Internet wie ein NGINX Reverse Proxy für HTTPS eingerichtet werden kann – wir gehen hier nicht näher drauf ein.

Damit die Konfiguration auch von NGINX genutzt werden kann, muss diese im Verzeichnis „sites-enabled“ vorhanden sein. Ich bevorzuge hier das Anlegen eines symlinks, sodass bei Änderungen nicht ständig 2 Konfigurationsfiles gepflegt werden müssen. Den Symlink erstellt man wie folgt:

ln -s /etc/nginx/sites-available/doorcom.conf /etc/nginx/sites-enabled/doorcom.conf

Nun deaktivieren wir die default Konfiguration, die bei der initialen Installation mitgeliefert wird:

unlink /etc/nginx/sites-enabled/default

Weiter kann man die Anpassungen an die Konfiguration mit dem ersten Befehl prüfen und mit dem zweiten in den laufenden NGINX Server laden:

nginx -t
nginx -s reload

Sofern alles in Ordnung ist, ist der Livestream nun über folgenden Link erreichbar (und zwar ohne weitere Authentifizierung – wird man hierzu aufgefordert, dann ist vermutlich der base64 enkodierte Wert falsch). Die Einbindung in das FHEM Tablet UI kann dann über den „<img>“ oder einen „<div data-type="image"...“ Tag über die folgende Adresse vorgenommen werden.

http://fhem.lan:9000/doorcam/

Ein Beispiel für die Einbindung in die TabletUI liefern wir nach!

Einbindung des Livebildes via Synology Surveillance Station in FHEM

Als dritten Lösungsweg kann man die Kamera der ESENTA SIAS über die Synology Surveillance Station und dann über das SSCAM Modul in FHEM einbinden. Das setzt natürlich voraus, dass man im Besitz eines Synology NAS ist. Sofern mehr machen möchte, als nur den Kamerastream im Tablet UI anzuzeigen, kann dieser Weg durchaus sinnvoll sein. Eine ausführliche Dokumentation, zum SSCAM Modul ist hier vorhanden und kann problemlos befolgt werden. Zuvor muss man den RTSP oder MJPEG Stream der Kamera in der Surveillance Station als Universal Device angelegt haben.


Related posts:


© 2005-Today by Uli Wolf - This Content is distributed under the Creative Commons License
This feed is for personal, non-commercial use only.
The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: d2a576b5311479d89eff39b7ca886f6b)

Benachrichtigung per Telegram beim Klingeln an der ESENTA SIAS (S)IP Türsprechanlage

$
0
0

Dieser Artikel beschäftigt sich damit, wie man eine Benachrichtigung über FHEM erhalten kann wenn jemand an der Esenta SIAS Türsprechanlage klingelt und man gerade nicht zu Hause ist.

Tatsächlich funktioniert dies natürlich auch problemlos über die Esenta SIAS App. In diesem Artikel soll aber speziell darauf eingegangen werden, wie eine Umsetzung über FHEM und Telegram erfolgt.

Als Grundlage für die Umsetzung wird Folgendes vorausgesetzt:

Sofern man die oben genannten Voraussetzungen geschaffen hat, kann man die Umsetzung mittels eines DOIF in FHEM vornehmen, das wie nachfolgend dargestellt aussehen kann. Die Umsetzung wirkt geradezu einfach und das ist sie auch. Somit ist dies ebenso ein gutes Beispiel um zu zeigen, wie schnell Anwendungsfälle realisiert werden können, wenn zuvor die entsprechenden Grundlagen geschaffen wurden.

([MQTT2_EsentaSias_ring:"ringing"] and [control_Away] eq "1")
(
get cam_door image;
set bot_telegram message @<TelegramID> Es klingelt;
sleep 1;
set bot_telegram sendImage @<TelegramID> ./www/snapshots/cam_door_snapshot.jpg;
)

Zur Erklärung:

  • Es wird auf das Event „ringing“ der ESENTA SIAS getriggert, die als MQTT Device eingebunden ist.
  • Die Nachricht wird nur bei Abwesenheit ausgelöst, was in diesem Fall über einen Dummy gesteuert wird. Natürlich können hier auch die Stati der RESIDENTS / ROOMMATE Module ausgelesen werden. (In diesem Fall sind diese im Hintergrund ebenso im Einsatz und setzen den Dummy entsprechend.)
  • In der Ausführung holt man sich über das IPCAM Modul (cam_door) einen Schnappschuss, der lokal in FHEM abgelegt wird.
  • Dann wird eine Nachricht per Telegram über das Klingeln versendet und kurz danach das Bild nachgereicht.
  • Die kurze Pause von einer Sekunde hat sich in der Praxis als notwendig erwiesen, da sonst das Bild in meinem Fall noch nicht gespeichert war und ein altes Bild versendet wurde. Der sleep Befehl wirkt in diesem Fall nicht blockierend auf FHEM und stellt somit auch kein Problem dar.

 


Related posts:


© 2005-Today by Uli Wolf - This Content is distributed under the Creative Commons License
This feed is for personal, non-commercial use only.
The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: d2a576b5311479d89eff39b7ca886f6b)

Einbindung der ESENTA SIAS (S)IP Türsprechanlage ins Smarthome (FHEM) – Anwendungsfälle

$
0
0

Nachdem sich die ersten Beiträge rund um die Esenta SIAS mit Kaufentscheidung, Einrichtung, Praxistest und grundsätzlicher Einbindung ins Smarthome (FHEM) beschäftigt haben, kommen wir nun mehr und mehr zu den Anwendungsfällen.

Im Nachfolgenden sind einige Ideen aufgelistet, die nun nach und nach durch entsprechende Artikel für die Umsetzung ergänzt und hier verlinkt werden. Die Grundlage hierfür sind immer die Integration von Esenta SIAS und FHEM via MQTT und Einbindung der Kamera.

  • Benachrichtigung über ein Türklingeln per Telegram
  • Überwachung von Zugang zum Haus bei Abwesenheit per Telegram
  • Anzeigen des Kamerabildes und Klingeln am Wandtablet
  • Anmeldung am Smarthome bei Betreten des Hauses
  • Stoppen der Klingel/ des Anrufs beim Öffnen der Tür/ Bewegung im Eingangsbereich

Sicherlich gibt es noch einige mehr tolle Ideen, wie man die Integration verwenden kann. Falls ihr welche habt, dann schreibt es einfach in die Kommentare.


Related posts:


© 2005-Today by Uli Wolf - This Content is distributed under the Creative Commons License
This feed is for personal, non-commercial use only.
The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: d2a576b5311479d89eff39b7ca886f6b)
Viewing all 46 articles
Browse latest View live