Showing Posts From

Iot

Xiaomi Roborock Saugroboter mit Raspberry Pi hacken/rooten (ohne cloud upload)

Xiaomi Roborock Saugroboter mit Raspberry Pi hacken/rooten (ohne cloud upload)

Ziel dieser Anleitung ist es, den Xiaomi/Roborock Saugroboter ohne Internet/Cloud zu betreiben. Es sollen keine persönlichen Daten hochgeladen werden können.Unterstützte Geräte: alle Roborock mit LDS (S5, S50, S55), Xiaomi MiEin Saug- und Wischroboter ist eine sehr große Hilfe bei einer großen Wohnung. Da die Preise in diesem Jahr stark gesunken sind, habe ich angefangen verschiedenen Modelle zu vergleichen. Die Funktion, dass der Saugroboter die Räume mit einem Laser abscannen kann und eine Karte der Wohnung erstellt, war mir wichtig. So kann der Saugroboter selbständig durch die Wohnung navigieren und die Räume schneller saugen, als ein Saugroboter der nach dem Zufallsprinzip vorgeht. Leider "benötigen" die Saugroboter mit Raumerkennung eine aktive Internetverbindung, um zu funktionieren. Damit habe ich ein großes Problem, da alle persönlichen Daten in die Cloud des Herstellers hochgeladen werden. Man hat keine Wahl ob bzw. welche Daten man freigibt. Mir ist es ein Rätsel warum das mit der deutschen Datenschutzverordnung möglich ist. Nach einer Recherche, habe ich das Dustcloud Projekt gefunden, mit der es möglich ist, Xiaomi/Roborock Saugroboter zu rooten. Mit dem Root-Zugang hat man uneingeschränkten Zugriff auf das System des Saugroboters und kann beliebige Software darauf installieren. Damit du den Saugroboter im eigenen Netzwerk steuern kannst, wird die Web-App Valetudo auf dem Saugroboter installiert. Benötigt wird:Roborock mit LDS (S5, S50, S55), Xiaomi Mi Raspberry Pi (A+ ist ausreichend) mit Micro-SD Kart, Monitor, Maus u TastaturDie Anleitung muss auf einem Linux (Debian) System ausgeführt werden (Windows/Mac OSX nicht möglich). Deshalb benötigst du den Raspberry Pi. Alternativ kannst du auch eine Virtuelle Machine mit Debian verwenden. Bei einigen Schritten kann es zu Problemen kommen, da die Programme mit der Netzwerkverbindung der Virtual Machine nicht zurecht kommen. Ich übernehme keine Haftung für Schäden. Beachte auch das die Garantie des Gerätes verfällt. Es ist möglich die original Firmware wieder auf das Gerät zu spielen. Inhalt Update 19.05.2019: Deutsche Sprachdatei hinzugefügt (Schritt 12) 15.09.2019: Python Befehle an Python 3 angepasst Firmware Flashen Teil. Danke an Benjamin und den anderen Hilfreichen Kommentatoren. Dustcloud/Dummycloud, Valetudo und Firmware herunterladenInstalliere Raspbian auf deinem Raspberry Pi. Eine einfache Anleitung findest du hier. Schritt 1 in dieser Anleitung ist ausreichend. WLAN kannst du im Raspbian Desktop einstellen.Aktualisiere die Paketlisten um die neuesten Software Versionen installieren zu können. Danach werden ein paar Programme installiert, die zum "rooten" benötigt werden. (&& verbindet zwei Befehle) sudo apt-get update && sudo apt-get install -y ccrypt git wget unzip dos2unixErstell einen Ordern mit dem Name rockrobo im Heimverzeichnis (/home/pi) und navigiere in den neu erstellten Ordner. mkdir ~/rockrobo && cd ~/rockroboKlone/kopiere das Dustcloud Repository in den aktuellen Ordner (rockrobo) mit Git. git clone https://github.com/dgiese/dustcloud.gitErstelle im rockrobo Ordner einen neuen Ordner valetudo und navigiere hinein. mkdir valetudo && cd valetudoJetzt musst du die aktuelle Valetudo Datei in den valetudo Ordner herunterladen. Geh dazu auf die Valetudo Release Seite. Dort sind alle Versionen aufgelistet. Bei mir ist es die Version 0.3.1. Scroll etwas nach unten bis zur "Assets" Auflistung. Kopiere dort den Link zur "valetudo" Datei. Ersetze dann den Link nach dem wget Befehl. wget https://github.com/Hypfer/Valetudo/releases/download/0.3.1/valetudo Nachdem du den Befehl ausgeführt hast, sollte sich eine Datei "valetudo" im aktuellen Ordner Befinden. Das kannst du mit dem Befehl ls prüfen.Erstell im valetudo Ordner einen neuen Ordner, mit dem Namen deployment und navigiere hinein. mkdir deployment && cd deploymentLade die valetudo.conf Datei herunter. wget https://github.com/Hypfer/Valetudo/raw/master/deployment/valetudo.confErstell im deployment Ordner einen neuen Ordner, mit dem Namen etc und navigiere hinein. mkdir etc && cd etc Lade die hosts und die rc.local Datei herunter. wget https://github.com/Hypfer/Valetudo/raw/master/deployment/etc/hostswget https://github.com/Hypfer/Valetudo/raw/master/deployment/etc/rc.local In der hosts Datei sind alle bekannten Xiaomi/mi.com/RoboRock Server vermerkt. Dies verhindert das deine Daten in die Cloud hochgeladen werden. In der rc.local Datei wird festgelegt, dass der Datenaustausch mit der Xiaomi/mi.com/RoboRock Cloud auf die interne Dummycloud umgeleitet wird. So wird dem RoboRock System vorgegaukelt das es nach "Hause telefoniert".Navigiere zurück in die oberste Ebene des rockrobo Ordners cd ~/rockrobo und erstelle dort einen neuen Ordner mit dem Namen rrlogd-patcher. Navigiere hinein. mkdir rrlogd-patcher && pushd rrlogd-patcher Lade die patcher.py Datei herunter. wget https://raw.githubusercontent.com/JohnRev/rrlogd-patcher/master/patcher.py Das Python script rrlogd-patcher sorgt dafür das die Cleaning Logs nicht verschlüsselt werden. Das ist nötig um sie später in der Valetudo App anzeigen zu lassen.Navigiere wieder zurück in die oberste Ebene des rockrobo Ordners cd ~/rockrobo und erstelle einen neuen Ordner mit dem Namen firmware und navigiere hinein. mkdir firmware && cd firmware Schau auf der Dustcloud Seite nach, welche die aktuellste getestete Firmware vom Roborock ist. Achte darauf das du die richtige Generation wählst (Roborock S5 ist z.B. Gen2). Ersetze den letzten Teil der URL (v11_001810.fullos.pkg) mit dem Dateinamen deiner Firmwareversion. wget https://cdn.awsbj0.fds.api.mi-img.com/rubys/updpkg/v11_001810.fullos.pkg Wenn du die Firmware nicht herunterladen konntest, probier einen anderen Server. Nicht alle Versionen sind auf allen Servern verfügbar.Du benötigst noch eine Sprachdatei. Diese findest du hier. Lade mit folgendem Befehl die deutsche Sprachdatei herunter (in den Firmware Ordner). wget https://dustbuilder.xvm.mit.edu/pkg/voice/de.pkgDein rockrobo Ordner sollte jetzt folgende Struktur haben.rockrobo/ ├── dustcloud │ ├── cloudprotocol.pdf │ ├── devices │ ├── docker │ ├── dummycloud │ ├── dustcloud │ ├── LICENSE │ ├── Pipfile │ ├── Pipfile.lock │ ├── presentations │ └── README.md ├── firmware │ ├── v11_001810.fullos.pkg │ └── de.pkg ├── rrlogd-patcher │ └── patcher.py └── valetudo ├── deployment │ └── etc │ ├── hosts │ └── rc.local └── valetudoSSH Key erstellen Der SSH Key wird benötigt, um dich später mit deinem gerooteten Roborock per SSH zu verbinden.Prüfe ob schon ein SSH Key existiert. Wenn die Meldung angezeigt wird, dass die Datei oder Verzeichnis nicht gefunden wurde, gibt es noch keinen SSH Key. cat ~/.ssh/id_rsa.pubErstelle einen neuen SSH Key mit folgendem Befehl. ssh-keygen Speicherort (~/.ssh/id_rsa) mit Enter bestätigen. Das Passwort kannst du leer lassen und mit zwei mal Enter Bestätigen.Firmware "patchen" und Image erstellen Bevor du die Firmware auf den Roborock kopierst, muss sie "gepatched" werden. Sonst hast du später keinen Root-Zugang zum Roborock und der Saugroboter kann nicht ohne Xiaomi Cloud betrieben werden.Navigiere wieder in den rockrobo Ordner cd ~/rockrobo und erstelle einen neuen Ordner image und navigiere hinein. mkdir image && cd imageFühre jetzt den Befehl aus, der die Firmware patch/rootet. Für eine bessere Übersicht habe ich den Befehl in mehrere Zeilen aufgeteilt. Durch Backslash \ am Ende jeder Zeile kannst du den Befehl so in dein Terminal einfügen und er wird als eine Zeile interpretiert. Wichtig ist noch, dass du den Dateiname der zuvor gespeicherten Firmware anpasst (bei mir v11_001810.fullos.pkg).sudo ../dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh \ --firmware=../firmware/v11_001810.fullos.pkg \ --soundfile=../firmware/de.pkg \ --public-key=$HOME/.ssh/id_rsa.pub \ --valetudo-path=../valetudo \ --disable-firmware-updates \ --ntpserver=fritz.box \ --rrlogd-patcher=../rrlogd-patcher/patcher.py \ --replace-adbd Hier der selbe Befehlt in einer langen Zeile, falls du Probleme hast.sudo ../dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh --firmware=../firmware/v11_001810.fullos.pkg --soundfile=../firmware/de.pkg --public-key=$HOME/.ssh/id_rsa.pub --valetudo-path=../valetudo --disable-firmware-updates --ntpserver=fritz.box --rrlogd-patcher=../rrlogd-patcher/patcher.py --replace-adbd Falls du keine Fritzbox hast, entferne die Zeile mit dem Parameter --ntpserver, oder ersetze fritz.box mit der IP des NTP Server.--firmware: gibt an wo die original Firmware gespeichert ist --soundfile: gibt an wo die Sprachdatei gespeichert ist, die später vom Saugroboter verwendet werden soll (hier englisch) --public-key: gibt an wo der Public SSH Key gespeichert ist --valetudo-path: gibt an wo das Valetudo Programm gespeichert ist --disable-firmware-updates: schaltet automatische Firmware Updates aus (wichtig da sonst der root Zugang verloren gehen kann) --ntpserver: IP des NTP Servers (Zeitserver) --rrlogd-patcher: gibt an wo das rrlogd-patcher script gespeichert ist --replace-adbd: falls etwas schief geht, kannst du noch per USB auf den Saugroboter zugreifenFirmware auf den Roborock Saugroboter flashen Jetzt muss das patchte Firmware Image auf den Roborock Saugroboter kopiert (flashen) werden.Installiere die benötigten Programme. sudo apt-get install -y python3 python3-pip python3-venv python3-dev libffi-dev libssl-devOptional: Erstell eine virtuelle Umgebung für die Python Pakete. Eine genaue Erklärung findest du in den Kommentaren. python3 -m venv .venvInstalliere wheel, damit weitere Pakete automatisch installiert werden können. pip3 install wheelInstalliere python-miio pip3 install python-miioSetze jetzt das WLAN des Roborock zurück, indem du die Zwei Tasten rechts und links neben dem Power Knopf gleichzeitig gedrückt hälst. Du kannst auch die Reset Taste unter der Klappe gedrückt halten.Verbind jetzt den Raspberry Pi mit dem WLAN des RoboRock. roborock-vacuum-s5-…. Wenn der Raspberry Pi mit dem WLAN des Roborock verbunden ist, kannst du die Firmware übertragen (flashen). Wichtig ist das du den Dateinamen der Firmware anpasst. Lass dir den Namen mit ls anzeigen. ls outputpython3 ~/rockrobo/dustcloud/devices/xiaomi.vacuum/firmwarebuilder/flasher.py -f output/v11_001810.fullos.pkg Diesen Befehl im images Ordner ausführen. ~/roborock/images Die Firmware wird übertragen. Danach wird sie auf dem RoboRock installiert. Das dauert ca. 5-10min. Den Saugroboter währenddessen nicht ausschalten! Wenn der Roborock die Start-Melodie abspielt, weisst du das die Installation beendet ist.Valetudo Webapp öffnen/ WLAN Einstellen, Roborock Steuern Auf dem Xiaomi Saugroboter läuft jetzt die Firmware mit Root-Zugang, die Valetudo Web-App und Dummycloud. Wenn dein Computer noch mit dem Roborock WLAN verbunden ist, kannst du im Browser die URL http://192.168.8.1 aufrufen. Saugroboter mit deinem WLAN verbinden. In der Valetudo Web-App unter Settings -> WIFI -> WIFI Settings kannst du deinen WLAN Namen und Passwort eingeben. Nach dem Bestätigen des Button "Save new Wifi configuration", startet der Saugroboter neu und verbindet sich mit deinem WLAN Netzwerk (das Roborock eigene WIFI verschwindet). Verbinde dein Computer mit dem zuvor eingestelltem WIFI und rufe die URL http://rockrobo/ auf.Valetudo App startet nicht/ ist nicht erreichbar. Falls die Valetudo Web-App sich nicht im Browser öffnet, kann es sein das sie manuell gestartet werden muss. Verbinde dich dazu per SSH mit deinem Roborock Saugroboter. Dein Computer muss mit dem WIFI des Roborock verbunden sein. Führe folgenden Befehl im Terminal aus, um dich per SSH zu verbinden. Es sollte der selbe Computer/Raspberry Pi sein, auf dem du vorher den SSH Key erstellt hast, oder du kopierst den Public SSH Key auf einen anderen Rechner. ssh root@rockrobo Starte jetzt valetudo service. service valetudo start

MotionEyeOs: Benachrichtigung bei Bewegungserkennung via Slack - motion push notification

MotionEyeOs: Benachrichtigung bei Bewegungserkennung via Slack - motion push notification

Du möchtest benachrichtigt werden wenn deine MotionEyeOs Überwachungskamera eine Bewegung erkennt. MotionEye hat mehrere Funktionen das Umzusetzen. Wenn MotionEye eine Bewegung erkennt, kannst du eine E-Mail versenden, ein Webhook aufrufen, oder ein Script starten. Letzteres verwenden wir um eine Nachricht an deinen Slack Account zu senden. Slack ist kostenlos für Mac OSX, Windows, iOS und Android verfügbar. Du kannst Push Nachrichten auf dein iPhone oder Android Smartphone erhalten. Voraussetzung ist ein laufendes MotionEye. Anleitung MotionEyeOS auf dem Raspberry Pi installieren. Inhalt Slack einrichtenDu benötigst einen kostenlosen Slack Account. Diesen kannst du hier erstellen.Ein Webhook wird benötigt, um Nachrichten (per Script) an deinen Slack Channel zu senden. Öffne die Seite https://my.slack.com/services/new/incoming-webhook/. Erstelle einen neuen Channel nur für MotionEye. Klick auf "create a new channel".Markiere den neuen Channel als "Private", damit nur du und eingeladene Benutzer den Inhalt des Channels sehen können. Gib dem Channel einen eindeutigen Namen, wie "MotionEye" und klick auf "Create Channel". Jetzt müßtest du wieder auf der vorherigen Seite sein. Klick dort auf den Button "Add Incoming WebHooks integration".Der Webhook für deinen neuen Channel wurde erstellt. Diesen benötigst du später für dein Slack-Benachrichtigungs Script. Lass die Seite offen, oder speichere dir die URL ab.MotionEyeOs Slack Notification Script erstellen MotionEyeOs ist eine sehr reduzierte Linux Version. Man kann nicht wie bei Raspbian Pakete mit apt-get installieren und manche Befehle wie git clone funktionieren auch nicht. Den Befehl sudo benötigt man nicht, da du dich als root anmeldest. Das Script muss im Ordner data gespeichert werden.Melde dich per SSH bei deinem Raspberry Pi mit MotionEyeOs an. Ersetze die IP, mit der deines Raspberry Pi. ssh admin@192.168.0.10 Das Passwort ist das selbe wie bei deinem MotionEye Admin Benutzer.Erstelle die Script Datei mit dem Namen slack.py im Ordner data und öffne den Nano Texteditor. nano /data/slack.pyDer Github-Nutzer raspberrycoulis hat das MotionEyeOs Slack Script erstellt. Kopiere das folgende Script in den Nano Texteditor (Copy Button rechts oben im schwarzen Code-Bereich).#!/usr/bin/python# Created by Wesley Archer at Raspberry Coulis # # Website: https://www.raspberrycoulis.co.uk | Twitter: @raspberrycoulis # # # # 1. Intro: # # # # This Python script sends notifications to a dedicated Slack channel whenever movement is # # detected in MotionEye OS. # # # # You will need to create a free Slack account over at https://slack.com/ and create an incoming # # webhook by visiting https://my.slack.com/services/new/incoming-webhook/. I recommend creating # # a dedicated Slack channel (i.e. #motioneyeos), but you can also add a custom icon and name # # to make it look the part too! # # # # 2. Customising your Slack notification: # # # # You can customise the message sent to Slack by editing the data string below. # # # # The string must be within curly brackets and start with {"text": }. Links can be included # # between <> - i.e. and text can be displayed using | so this # # would be a link to Raspberry Coulis! # # # # To emphasise text, place words you want in bold between two asterix - i.e. *this is bold!* # # # # Split text onto a new line with "\n" (without the quotation marks) so "Hello\nWorld!" becomes # # # # Hello # # World! # # # # Remember to enclose your custom text message within quotation marks though! # # # # 3. This is my example: # # # # '{"text": "Motion Detected!\nView the *<http://IP.ADD.RE.SS|live stream>* now!"}' #import urllib2url = 'INSERT-SLACK-INCOMING-WEBHOOK-URL-HERE' # Add your Slack incoming Webhook URL here (starts https://hooks.slack.com) data = '{"text": "Motion Detected!\nView the *<http://IP.ADD.RE.SS|live stream>* now! :video_camera:"}' # See above to customise message.req = urllib2.Request(url, data, {'Content-Type': 'application/json'}) f = urllib2.urlopen(req) f.close()Du musst das Script noch anpassen. Ersetze "INSERT-SLACK-INCOMING-WEBHOOK-URL-HERE" im Script mit der URL deines Slack Webhook. Die Nachricht kannst du anpassen wenn du diesen Text veränderst. "Motion Detected!\nView the *<http://IP.ADD.RE.SS|live stream>* now!" Das Zeichen \n bedeutet ein Zeilenumbruch. Links kannst du wie folgt formatieren, um sie in deiner Slack Nachricht anzuzeigen. <Linkadresse|Linktext> Emoji kannst du auch einfügen. Hier eine Übersicht aller verfügbaren Emoji. Verwende den "Short Name" Code. Beende den Nano Texteditor mit Ctrl+X und Bestätige die Änderung mit Y.Das Script muss noch ausführbar gemacht werden. chmod +x /data/slack.pyJetzt kannst du das Script testen. python /data/slack.py Du solltest eine Push Notification auf dein Smartphone erhalten. Wenn du mit dem Browser in der Slack App angemeldet bist, erhältst du nur dort eine Benachrichtigung.Script in MotionEye Einstellung hinterlegenÖffne die MotionEye Weboberfläche und klick links oben auf das Menu-IconAktiviere die Bewegungserkennung im Menüpunkt "Motion Detection".Im Menüpunkt "Motion Notification" aktiviere "Run A Command". Im Feld "Command" trägst du den Befehl zum starten des Slack Notification Scipt ein. python /data/slack.py Die Änderungen speicherst du mit einem klick oben auf den orangenem Button "Apply".Wenn MotionEye eine Bewegung erkennt, solltest du eine Push Notification auf deinem iPhone/Android Smartphone empfangen. Vorausgesetzt du hast die Slack App installiert und bist dort angemeldet. ;)

Controll FHEM devices with amazon dash button
  • 10 Aug, 2017
  • 6 min read

Controll FHEM devices with amazon dash button

I explained in this article how you can execute IFTTT actions with the Amazon dash button. By changing a single line of code you can switch an FHEM device. How does it work? By calling a URL (HHTP Post Request) you can tell FHEM to do soemthing. This way you can switch lights on or off, open or close shutters, turn remote contrles wall plugs on or off and a lot more. The dash button is not suitable for every application as the button has a latency of 5 to 6 seconds until a FHEM device is switched. What's required:Raspberry Pi or Debian/Ubuntu Linux computer Amazon Dash Button Running FHEMHere is a sample video how a Philips Hue lamp is turned on using a Amazon dash button and FHEM. Thanks to Hagen for that video.Contents Option 1: FHEM module dash_dhcpWorks without additional software FHEM server can be connected to the network vial ethernet cable Multiple Amazon dash buttons can be embeddedUpdate your FHEM to the newest version and install the module dash_dhcp. Here is a short tutorial how you can implement a update button in the sidebar of the FHEM web interface.Determine the MAC address of your Amazon dash button. Therefore, log into your router. I have a Fritzbox where all wifi devices are listed under WLAN -> Network. For Mac the free application LanScan can be used to run a scan of your network and detemrin the respective MAC address.Open the FHEM configuration file fhem.cfg and add the following code. Replace the MAC address behind allowed with the one of your dash button. You can write multiple MAC addresses after each other if you separate them by ,. The MAC address should be written in small caps.define DashButton dash_dhcp attr DashButton allowed ac:66:be:e3:fb:fe attr DashButton port 6767 attr DashButton room dashbuttondefine n_DashButton1 notify DashButton:ac-66-be-e3-fb-fe..short IF ([YourFHEMDevice] eq "on") (set YourFHEMDevice off) ELSE (set YourFHEMDevice on) Replace in the notify command YourFHEMDevice with the name of your FHEM device that you want to switch on or off and make sure that the MAC adress is written with dashes. Don't forget to save! Multiple dash buttons can be separated by commas.attr DashButton allowed ac:66:be:e3:fb:fe,ac:66:be:e3:fa:31Now You need to forward the data from port 67 to port 6767. DHCP requests arrive always through port 67 and that port can only be accessed with root access rights. FHEM is usually started without root rights. In case your FHEM server in implemened in the network via a wifi domgle execute the following command in the terminal.sudo iptables -I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 In case the FHEM server is implemented via a ethernet cable use the following command.sudo iptables -I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767You should be now able to switch your FHEM device on or off with the Amazon dash button. In order to check if the dash button is recognized by FHEM you can use the Event monitor in the FHEM web interface in the left sidebar. After clicking the dash button, dash_dhcp DashButton ac-66-be-e3-fb-fe: short should appear in the monitor. The forwarding of the ports via iptables needs to be set after a restart. Install the application iptables-persistent that the fowarding is loaded automatically after a restart.sudo apt-get update && sudo apt-get install -y iptables-persistent During the installation of iptables-persistent a couple of settings need to be made. Confirm all with YES. You can now write the port forward for the dash button in the file rules.v4. sudo nano /etc/iptables/rules.v4 Add the forward before the last COMMIT. (Ethernet cable)-I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 (WIFI Dongle)-I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 Exit the Nano text editor with ctrl+x and save the changes. After a restart with sudo reboot the rules.v4 file is loaded automatically and the port forwarding should work. ALTERNATIVE In case the fowarding via rules.v4 does not work, you can try this alternative option. Open the /etc/rc.local file. This file is executed during every system start.sudo nano /etc/rc.local and add the command for the forwarding before exit 0. (Ethernet cable)sudo iptables -I PREROUTING -t nat -i eth0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767 (WIFI dongle)sudo iptables -I PREROUTING -t nat -i wlan0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767Option 2: with NodeJS and DasherFHEM Server can be connected to the network via ethernet cable Multiple Amazon dash buttons can be used Flexible as other services, such as, Zapier or IFTTT can be pinged via HTTP GET and POST Request.- Additional software is requiredAs first step the package lists need to be updated and the required applications git & libpcap-dev need to be installed. sudo apt-get update && sudo apt-get install libpcap-dev Furthermore, the current version of Node.js (v6.5.0) is required. Detailed Tutorial Add the Node.js source to your package list. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - You can now install Node.js. sudo apt-get install -y nodejsAs next step you can download and install the Node.js application "Dasher". Navigate with cd ~/ into your home folder and copy Dasher from Github. git clone https://github.com/maddox/dasher.git Navigate to the Dasher directory cd dasher Now the required programs and dependencies of Dasher need to be installed. npm installDasher requires the MAC address of your dash button which are easily found. Log into your router and have a look at the connected devices. You can also use the program "find-button" that is provided by Dasher. script/find_button Press after "find-button" was started the dash button. The program should show the MAC address. Copy the MAC address and close the program with ctrl+c on a Mac or strg+c in Windows.Now you need to adjust the URL in the Dasher config/config.json file the way you want. nano config/config.json{"buttons":[ { "name": "Dash1", "address": "ac:61:b3:e1:fa:fe", "url": "http://127.0.0.1:8083/fhem?cmd=set%20DashButton1%20toggle", "method": "POST", "json": true, "body": {"value1": "any value", "value2": "another value"} } ]} The IP 127.0.0.1 points always to the local computer, i.e. himself. As alternative you can write http://localhost:8083/fhem?cmd=set%20DashButton1%20toggle.Start Dasher and press the button to check if everything works. If everything is fine the terminal should show "Dash1 pressed". Dasher and your button work and FHEM can be configured. You can close the program with ctrl+c. sudo npm run startConfigure FHEM for the Dash Button Open the FHEM configuration file fhem.cfg and add the following code. Define in FHEM a Dummy for the dash button. Here is a good help for beginners.define DashButton1 dummy attr DashButton1 webCmd toggleCreate a notify that turns your FHEM device on or off. Replace YourFHEMDevice with the name of your FHEM device. Save the cfg file. In case you have closed Dasher, you can start it with sudo npm run start and press the dash button.define n_DashButton1 notify DashButton1.* IF ([YourFHEMDevice] eq "on") (set YourFHEMDevice off) ELSE (set YourFHEMDevice on) Explenation: The Dummy DashButton1 will be define n_DashButton1[name of the notify] notify[the command] DashButton1.*[in case of a change of the Dummy Reading, then] IF ([YourFHEMDevice] eq "on") [check if Reading of YourFHEMDevice is on, then] (set YourFHEMDevice off) [set YourFHEMDevice Reading to off] ELSE (set YourFHEMDevice on) [otherwise set YourFHEMDevice Reading to on] To configure the dash button to turn off multiple FHEM devices, use the following configuration. Again, replace YourFHEMDevice and YourFHEMDevice1 with your FHEM devices names. You can write as many devices as you want behind each other as long as they are separated by ;;.define n_DashButton1 notify DashButton1.* set YourFHEMDevice off;; set YourFHEMDevice1 offSet up Dasher Autostart After every system start the Dasher Programm would need to be reconfigured by hand. Set up a Init script for Dasher that the Dasher runs as a service runs in the background and is started when the system is started. Tutorial You can see here roughly the time the setup needs to react.

günstiges CO2-Messgerät AirCO2ntrol im Test #1 - Raspberry Pi FHEM USB

günstiges CO2-Messgerät AirCO2ntrol im Test #1 - Raspberry Pi FHEM USB

Das CO2-Messgerät AirCO2ntrol von TFA Dostmann ist ein günstiges und einfach zu benutzendes CO2 Messgerät für Innenräume. Nicht wie bei anderen günstigen CO2-Messgeräten, wo der CO2-Wert über einen Algorithmus errechnet wird, ist im TFA Dostmann CO2-Messgerät AirCO2ntrol ein richtiger CO2-Sensor verbaut. Ein weiterer Vorteil ist, dass die Messwerte über das USB-Kabel ausgegeben werden. Mit der Software co2monitor für Linux/Raspbian (Raspberry Pi) und CO2mini Logging für Windows, können die Messwerte gespeichert werden (data logging). Es gibt auch ein FHEM Modul (fhem-co2mini). Auf Amazon (ca. 68,99€) und wettershop.de (ca. 72€) kann das CO2 Messgerät AirCO2ntrol gekauft werden.Inhalt Was ist CO2? CO2 ist die chemische Kurzbezeichnung für Kohlendioxid. Es ist ein farb- und geruchloses Gas. Die Kohlendioxidkonzentration in der Luft wird in ppm (englisch: parts per million, deutsch: Volumenteile pro Million Volumenteile) angegeben. Die CO2-Konzentration in der Raumluft gilt als Indikator für die Luftqualität in Innenräumen.≤ 800 (Hohe Raumluftqualität) 800–1000 (Mittlere Raumluftqualität) 1000-1400 (Mäßige Raumluftqualität) > 1400 (Niedrige Raumluftqualität)(Absolute CO2-Konzentration in der Innenraumluft in ppm) Quelle¹ Die CO2-Konzentration in Räumen hängt von folgenden Faktoren abRaumvolumen Anzahl der Personen im Raum Aktivität der Personen im Raum Verbrennung im Raum LuftwechselTest des CO2-Messgeräts AirCO2ntrol von TFA Dostmann Das CO2-Messgerät wird in einer kleinen Box mit den wichtigsten Informationen, wie Anwendungsbeispielen, technischen Daten und einer Skala für gute bis schlechte Luftqualität geliefert. Im Lieferumfang ist das CO2-Messgerät AirCO2ntrol, ein Micro-USB Kabel (1,5m) und eine Anleitung in Deutsch, Englisch, Französisch, Italienisch, Niederländisch sowie Spanisch. Das Gehäuse ist solide verarbeitet und in den Farben weiß und grün verfügbar. Durch die zwei kleinen Füße steht das Messgerät etwas angekippt und das Ablesen des Displays von oben wird erleichtert. Nach dem Auspacken kann das CO2-Messgerät sofort verwendet werden. Es muss nicht kalibriert werden und benötigt keine lange Aufwärmphase. Da kein Netzteil mitgeliefert wird, musst du das Messgerät über den USB Port deines Computers mit Strom versorgen. Oder du verwendest ein USB-Netzteil, wie das vom iPhone. Alternativ kannst du ein Raspberry Pi Micro USB-Netzteil oder eine Powerbank verwenden. Die Stromversorgung über USB hat den Vorteil, dass nicht unbedingt eine Steckdose in der Nähe sein muss, um das Gerät mit Strom zu versorgen. Nach dem Einschalten zählt das CO2-Messgerät von 5 auf 0 und zeigt danach die CO2 Konzentration in der Luft und die Raumtemperatur an. Der CO2-Wert (ppm) und die Temperatur (℃/℉) werden abwechselnd (15 sec./ 5 sec.) auf dem Display angezeigt. Das Display hat keine Hintergrundbeleuchtung, was Strom spart. An der Vorderseite sind 3 Led's für die Qualität der Luftqualität (grün: gute Luftqualität, geld: mittlere Luftqualität, rot: schlechte Luftqualität). Durch die Led's kann man den Status der Luftqualität auch von weitem erkennen. Kinder oder Personen die nicht mit den CO2 Werten vertraut sind, haben durch die Led's einen einfachen Indikator für die aktuelle Luftqualität. In dunkler Umgebung sind die Led's etwas zu hell und stören etwas (im Schlafzimmer, oder neben dem Fernseher). Versteckte Funktionen Die Rückseite läßt sich leichte mit einem Schraubenzieher entfernen. Mit dem rechten Knopf (EnterKey) kannst du von Celsius auf Fahrenheit umstellen. Achtung wenn ihr an den Einstellungen herrumspielt, kann es sein, dass euer Gerät neue Kalibriert werden muss. Offiziell werden diese Funktionen nicht vom Hersteller unterstützt. Bitte keine Anfragen an den Kundendienst von TFA. Mit dem Linken Knopf (ModeKey) kannst du ein paar versteckte Funktionen umstellen.Alti: Dort kannst du die Höhe des Messgeräts in Meter über dem Meeresspiegel einstellen. So wird der unterschiedliche Druck ausgeglichen. Al1/Al2: Dort kannst du den Schwellenwert für die Gelbe und Rote Led verändern. Die Standardwerte sind 800ppm und 1200ppm 8bc: Aktiviert/Deaktivert die Selbst-Kalibrierung. Ist der Wert auf on, Kalibriert sich das Messgerät alle 8 Tage selbst. Es wertet den niedrigsten gemessenen Wert als Frischluft (400ppm). Ist der Wert auf onCE, Kalibriert sich das Messgerät einmal in 8 Tagen selbst. Ist der Wert auf oFF, Kalibriert sich das Messgerät nicht selbst. rcFS: führt einen Factory Reset durch. Das Gerät wird zurückgesetzt.Auf der Platine sind zwei Lötpunkte, an denen ein Summer angelötet werden kann. Wenn der zweite Schwellenwert (Rote Led) erreicht ist, gibt das Messgerät alle 2 Sekunden einen Warnton ab. Bitte schreibt ein Kommentar unter den Artikel, wenn ihr dazu ein Tutorial möchtet. Technische DatenTemperatur Messbereich: 0 bis +50℃ (+32℉ bis 122℉) Kohlendioxid Messbereich: 0 bis 3000ppm Auflösung: 1ppm bei 0-1000ppm / 10ppm bei 1001-3000ppm Abmessungen: 116mm (Breite) x 24mm (Tiefe) x 42mm (Höhe) Aufwärmzeit: < 60 Sekunden Messmethode: NDIR (Nicht-Dispersive-Infrarot Technologie) Temperaturabhängigkeit: ±0,3-±4ppm pro ℃, bezogen auf 25℃ Gewicht: 65g Anschlüsse: Micro-USBStromkosten des CO2-Messgerät AirCO2ntrol Über Nacht (ca. 10 Stunden) habe ich das CO2-Messgerät an einem Energiekosten-Messgerät (Energy Master Basic von ELV) angeschlossen.1,727KWh Jahresverbrauch 0,40€ Stromkosten für ein Jahr (0,23€ pro 1KWh) min. 0,1W / max. 0,4WDie Stromkosten von ca. 0,40€ für ein Jahr Dauerbetrieb, finde ich sehr günstig. Ich hätte mit mehr gerechnet. CO2-Messgerät AirCO2ntrol Kalibrieren Das CO2-Messgerät ist ab Werk Kalibriert und muss normalerweise nicht nachträglich Kalibriert werden. Falls doch mal die Messwerte stark abweichen, kann das AirCO2ntrol Messgerät wie folgt Kalibriert werden. Am einfachsten kann es im Freien an der Frischluft Kalibriert werden. Dort sollte der Wert zwischen 350ppm und 450ppm betragen. Oder man verwendet eine CO2 Kapsel mit einem Schlauch zur Öffnung an der Seite. Damit sollte der Messwert 1000ppm betragen. Offiziell wird diese Funktion nicht vom Hersteller unterstützt. Bitte keine Anfragen an den Kundendienst von TFA.Lade dir die Software zum Kalibrieren von hier herunter http://www.zyaura.com/support/support_software.htmEntpacke die RAR-Datei. Im Ordner ZyAura_USB_HUB_PC_software musst du die ZG.eye Datei in ZG.exe umbenennen.Öffne oben in der Menüleiste auf CalibrationWähle die Quelle für den Referenz-Messwert. 1000 ppm wenn du eine CO2 Kapsel zur verfügung hast, oder Out door um das Gerät im Freien zu Kalibrieren (350~450 ppm).Klick auf Execute Leite jetzt das CO2 Gas aus der Kapsel zur Kalibrieröffnung an der Seite, oder stell das Messgerät ins Freie. Klicke auf Start. Wenn du die Kalibrierung im Freien durchführst, solltest du das Gerät min. 30 Minuten Kalibrieren.Der Offset sollte nicht mehr als 50ppm betragen. Dann kannst du auf Stop/Exit klicken.Quellen ¹https://www.umweltbundesamt.de/sites/default/files/medien/pdfs/kohlendioxid\_2008.pdf

Android Things auf einem Raspberry Pi 3 installieren und WLAN einrichten

Android Things auf einem Raspberry Pi 3 installieren und WLAN einrichten

In diesem Tutorial wird erklärt wie du das IoT Betriebsystem Android Things auf einem Raspberry Pi 3 installierst, eine Verbindung mit dem ADB (Android Debug Bridge) herstellst und das WLAN am Raspberry Pi 3 einrichtest. Achtung Android Things ist ein Betriebssystem für IoT (Internet of Things) Geräte und hat keine grafische Benutzeroberfläche. Es ist vergleichbar mit Windows 10 IoT, welches eher für Hobby Entwickler gedacht ist. Android Things ist mehr für Systeme in Unternehmensbereichen gedacht. Inhalt Android Things auf einem Raspberry Pi 3 installierenLade dir das aktuelle [Android Things Image](http://Android Things) herunter und enpacke die Zip Datei.Um das Image so einfach wie möglich auf die SD-Karte zu kopieren, kannst du Etcher verwenden. Das Programm ist für Windows, Mac OSX und Linux verfügbar. Lade dir Etcher herunter und installiere es. Öffne Etcher und wähle das Android Things Image aus. Etcher wählt meist automatisch das richtige Ziel zum Kopieren des Image. Klick auf Flash! um den Schreibvorgang zu starten. Nachdem das Image erfolgreich auf die SD-Karte geschrieben wurde, kannst du die SD-Karte sicher Auswerfen.Steck die SD-Karte in dein Raspberry Pi 3, schließ ein Lan Kabel an und steck das Micro-USB Netzteil an. Android Things wird gebootet und zeigt dir die Netzwerkadesse an. adb connect IP-DES-RASPBERRY-PIADB (Android Debug Bridge) installieren Um eine Verbindung zu Android Things herzustellen, wird die Software-Schnittstelle Android Debug Bridge (ADB) verwendet. Damit kannst du auf das Android Gerät zugreifen und Befehle ausführen. Weitere Informationen findest du hier www.droidwiki.deADB (Android Debug Bridge) für Mac OSX installieren Installiere Homebrew auf deinem Mac /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Jetzt kannst du mit Hilfe von Homebrew einfach und schnell ADB installieren. brew install android-platform-toolsADB auf Linux Ubuntu +12.10 und Debian Jessie installieren sudo apt-get install android-tools-adbMit ADB eine Verbindung zum Raspberry Pi herstellen Jetzt kannst du mit ADB eine Verbindung zum Raspberry Pi und Android Things herstellen. Die IP Adresse vom Raspberry Pi siehst du auf dem Startbild von Android Things. Ersetze IP-DES-RASPBERRY-PI im Befehl. adb connect IP-DES-RASPBERRY-PIWLAN Verbindung einrichten Ersetze NETWORK-SSID und WIFI-PASSWORT mit deinen WLAN Daten.adb shell am startservice -n com.google.wifisetup/.WifiSetupService -a WifiSetupService.Connect -e ssid NETWORK-SSID -e passphrase WIFI-PASSWORTDu kannst mit folgendem Befehl testen, ob du auf das Android Things Gerät per WLAN zugreifen kannst.adb shell ping IP-DES-RASPBERRY-PIMit dem Shortcut CTRL+C kannst du den Test wieder beenden.