SONOFF über MQTT steuern

Im Blogbeitrag Sonoff Wifi Smart Switch mit NODEMCU Firmware hatte ich die vorbereitenden Arbeiten beschrieben, um den Sonoff Smart Switch mit einer eigenen Firmware auszustatten. Ziel ist, den Sonoff Smart Switch von einem MQTT Client aus zu steuern. Das kann ein beliebiges Linux-Device, wie ein Raspberry Pi o.ä. sein, oder ein MQTT Client auf dem Smartphone.

Das grundsätzliche Vorgehen zum Start eines Anwendungsprogramms (credentials.lua, init.lua, sonoff.lua) auf dem ESP8266/NodeMCU wird hier als bekannt vorausgesetzt. In meinem Buch zu NodeMCU ist das im Detail beschrieben.

MyMQTTIch verwende hier MyMQTT aus dem Google Play Store auf einem Android Smartphone. Es gibt Alternativen sowohl für Android als auch für iOS.

Um sich an den Datenaustausch über das MQTT-Protokoll heranzutasten, bietet sich die Verwendung eines freien Broker-Dienstes als Spielwiese an. Der CloudMQTT-Broker der schwedischen Firma 84codes AB ist eine solche Möglichkeit. CloudMQTT sind Mosquitto Server in der Cloud.

Zum Erstellen einer CloudMQTT-Instanz ist es erforderlich, unter http://www.cloudmqtt.com/ ein Konto einzurichten und sich für einen Kunden-Plan zu entscheiden. Als Testfeld nutze ich den freien Plan Cute Cat.
Die Anmeldung eines Kundenkontos erfolgt über eine eMail-Adresse, an die ein Link zur
Freischaltung verschickt wird. Nach dem Erzeugen einer CloudMQTT-Instanz werden die Informationen zur erzeugten Instanz angezeigt. Alle in der folgenden Abbildung gezeigten Daten werden vom System zugewiesen. Das trifft auch für den Usernamen und das Password zu.

cloudmqtt

Ist die brokerseitige Einrichtung abgeschlossen, dann kann der MQTT Client MyMQTT eingerichtet werden.Die folgenden Screenshots zeigen die von MyMQTT abonierten Mitteilungen (Subscribe), das Versenden von Mitteilungen zum Schalten des Sonoff Smart Switches und die Protokollierung auf dem Dashboard.
subscribe

Mein MQTT Client abonniert durch die Angaben SONOFF/+/# alle gesendeten Sonoff-Mitteilungen. Zusätzlich sind alle Mitteilungen aus einem Netzwerk von Temperatursensoren abonniert (DHT11/+/#).

 

 

 

 

Publish

 

Gesendet wird von diesem MQTT-Client hier nur der Topic SONOFF/ESP8266-1878840/state mit 0 (Ausschalten) oder 1 (Einschalten) als Dateninhalt.

 

 

 

dashboard

 

 

Im Dashboard können nun die abonnierten Mitteilungen verfolgt werden.

Der eingesetzte Sonoff Smart Switch meldet sich mit einer Client-ID in seinem Topic, die automatisch durch dessen Chip-ID erzeugt wird. Die Adressierung ist damit eindeutig.

Im wesentlichen kann der durch die versendeten Mitteilungen beeinflusste Schaltzustand verfolgt werden.

Gelegentlich wird dieser Vorgang durch eine periodische  gesendete Mitteilung eines Sensors für Temperatur und Luftfeuchtigkeit unterbrochen.

 

Weiterlesen

Orange Pi Monitoring

Monitoring #Orange #Pi #One mit dem #RPi-Monitor, installiertes OS ist #ARMbian (Link)

Installation: sudo armbianmonitor -r

Aufruf: <IP-Adresse>:8888

Anzeige SoC-Temperatur und CPU-Last (während der Lastphase läuft der UNIXBench)

OPi Monitoring - 2

Anzeige CPU-Last (während der Lastphase läuft der UNIXBench)

OPi Monitoring - 1.jpg

 

C.H.I.P. kam heute mit der Post

Inbetriebnahme ist denkbar einfach. Tastatur und Maus über einen USB-Hub am C.H.I.P. anschließen. Den TRRS-Anschluss über ein „mini to RCA A/V” Kabel mit einem Monitor verbinden und das Board über ein kräftiges USB-Steckernetzteil mit Spannung versorgen.

Über DHCP bezieht das Board eine IP-Adresse, die mit

ip addr show dev wlan0

abgefragt werden kann. Dann kann man bei Verwendung als headless System über SSH auf den C.H.I.P. zugreifen und über die Kommandozeile das System erkunden.

Nach der Installation zeigt

chip@chip:~$ uname -a
Linux chip 4.3.0-ntc #1 SMP Fri Feb 19 09:37:25 PST 2016 armv7l GNU/Linux

Informationen zum eingesetzten Kernel an. Nach

sudo apt-get update && sudo apt-get upgrade

mussten aber weitere Installationen vorgenommen werden:

sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install git

Erst danach konnten erste Benchmarks erfolgen.

 

Raspberry Pi 3 Speichererweiterung durch WD PiDrive 314 GB

Erweitert man den Speicher des Raspberry Pi 3 durch die WD PiDrive Harddisk mit 314 GB, dann hat man für viele Anwendungen erst mal ausreichend externen Speicher zu Verfügung. Von Interesse sind aber außerdem die Zugriffszeiten auf dieses Medium.

Für den Banana Pi mit SATA-Interface hatte ich das bereits untersucht. Die Ergebnisse sind hier zu finden.

Die Vorbereitung der WD PiDrive Harddisk erfolgte nach den Vorgaben aus dem WD Forum.

Den erweiterten Raspberry Pi 3 mit Raspbian Jessie habe ich dem gleichen Test unterzogen und die folgenden Ergebnisse erzielt:

hdparm

Verglichen zum Banana Pi  präsentieren sich die Ergebnisse wie folgt:

Timing cached reads Timing buffered disk reads Timing O_DIRECT cached reads Timing O_DIRECT buffered disk reads
Banana Pi
USB-HD 1 TB
252.63 27.55 28.79 28.24 MB/sec
Banana Pi
SSD 32 GB
280.69 81.72 127.53 132.77 MB/sec
Raspberry Pi
WD PiDrive 314 GB
483.04 29.67 26.62 25.82 MB/sec
Nur die über das SATA-Interface an den Banana Pi angeschlossene SSD zeigt erwartungsgemäß einen höheren Datendurchsatz. Ansonsten sind die Werte vergleichbar.

 

Raspberry Pi Accessoires von WD

Speichererweiterung durch 314 GB Harddisk

Die WD PiDrive 314GB ist exakt auf Pi zugeschnitten, arbeitet effizienter als eine WD-Standardfestplatte mit dem Raspberry Pi zusammen und ist mit dem im WD Store erhältlichen WD PiDrive-Zubehör kompatibel.

Der Sonderwerbepreis für die WD PiDrive 314GB im WD-Store ist $ 31.42.

WD PiDrive-Gehäuse

Ordnen Sie Ihre Kabel, und bauen Sie einen Raspberry Pi mit Massenspeicher in einem schlanken, modularen Paket in das WD PiDrive-Gehäuse ein. Das WD PiDrive-Gehäuse ist perfekt für Eigenbauprojekte geeignet. Sie können beispielsweise einen Linux-PC, einen NAS-Server, einen HDMI-fähigen Media Player oder einen Überwachungsserver bauen.

Der Preis für das WD PiDrive-Gehäuse incl. Kabelset im WD Store ist $ 9.99.

Link zum WD Store

Sonoff Wifi Smart Switch mit NODEMCU Firmware

Sonoff ist ein WiFi Smart Switch zum Schalten von Verbrauern mit bis zu 10 A Stromaufnahme. Sonoff sendet und empfängt Daten an eine bzw. von einer Cloud-Plattform. Die Steuerung über nimmt eine Adroid oder iOS App.

Kern des Sonoff Switchs ist ein ESP8266. Was liegt hier näher als eine NODEMCU Firmware aufzuspielen und die Steuerung mit Hilfe von Lua selbst in die Hand zu nehmen?

In der Mitte des Boards kann eine fünfpolige Stiftleiste eingelötet werden. Hier stehen 3.3 V, RX, TX und GND für den Anschluss eines FTDI USB-Serial-Adapters zur Verfügung. Die Speisung des Sonoff-Boards erfolgt mit 3.3 V. Den 5 V Anschluss lässt man einfach in der Luft hängen (braunes Kabel).

Die 230 V AC Verbindung bleibt für die Reprogrammierung auf jeden Fall unbeschaltet.

Sonoff reprograming

Zur Reprogrammierung des ESP8266 ist der Controller in den Flash-Mode zu schalten. Das erfolgt beim ESP8266 durch Verbindung von GPIO0 mit GND während Reset.

GPIO0 wird über den Taster auf dem Board erreicht. Der Reset-Anschluss ist nicht zugänglich. Hier muss man den PowerOn-Reset verwenden, d.h. entwerder die 3.3 V Leitung (grünes Kabel)  lösen und verbinden oder den ganzen FTDI USB-Serial-Adapters ziehen und erneut einstecken. Danach kann der GPIO0-Taster frei gegeben werden.

Die Programmierung des Flash-Memories mit der NodeMCU-Firmware erfolgt dann mit den üblichen Tools. Zu beachten ist, dass hier nur 1 MByte Flash-Memory vorhanden ist. Ich habe deshalb über http://nodemcu-build.com/ eine Firmware erzeugt, die nur die erforderlichen Komponenten (incl. MQTT) erhält.

Das Anwendungsprogramm, welches den Sonoff Smart Switch über MQTT steuert, wird in einem gesonderten Blogbeitrag beschrieben.