Smart Home Umsetzung Part I

Da ich im Moment gerade freie Zeit habe, habe ich mich etwas weiter mit meinen Smart Home Überlegungen auseinandergesetzt.

Home Assistant, Influx DB und Grafana

Auf meinem Raspberry habe ich Home Assistant, einen SNMP Client und Mosquitto installiert. Das funktionierte soweit einwandfrei und die einzelnen Komponenten spielen auch gut miteinander zusammen. Um Grafana und Influx DB auf den Raspberry zu installieren, musste ich etwas mehr Aufwand in Kauf nehmen. Es gelang mir mithilfe der Informationen, die ich auf einem Blog fand. Home Assistant bekommt über SNMP und über MQTT zurzeit die meisten Daten. Um den Datendurchsatz des Switches, den ich habe, zu überwachen, lese ich ifInOctes und ifOutOctets über SNMP aus. Diese Werte sind aber ziemlich kryptisch und sagen mir so nicht viel. Deshalb habe ich mir die benutzte Bandweite mit folgender Query in Grafana visualisieren lassen (Quelle) :

SELECT 8 * derivative(mean("value"),1s) AS "value" FROM "sensor.network_in"  WHERE  $timeFilter GROUP BY time($interval) fill(none)

Damit wurden mir dann einfache lesbare Grafen generiert:

Grafana Network Traffic SNMP

Arduino

Ich nutze einen Arduino Uno mit Ethernet Shield. Zusätzlich habe ich einen 433 MHz Sender und Empfänger, einen DHT11 Temperatur- und Luftfeuchtigkeitssenor und einen DS18B20 Temperaturfühler an das Arduino angeschlossen. Der Datenaustausch mit Home Assistant erfolgt über das MQTT Protokoll (Ich nutzte diese Implementation). Auch das Empfangen von Befehlen funktioniert über MQTT einwandfrei.

Arduino 433 MHz

Intertechno Funksteckdose ITLR-3500T mit Arduino mit 433 MHz steuern:

Ich nutze dafür die RCSwitch Library. Hierbei hatte ich lange Probleme. Die Funksteckdose wolle meine Signale nie akzeptieren und reagierte nicht. Ich habe sogar getestet, ob meine Hardware überhaupt in Ordnung ist. Nachdem ich eine Weile recherchiert hatte und schließlich einfach Codes ausprobiert habe, habe ich schließlich einen funktionierenden Befehl für die Steckdose gefunden.

#define INTERTECH_ON  "00000000000101010001010101010100" 
#define INTERTECH_OFF "00000000000101010001010001010100"
void switchOn(void){
  mySwitch.send(INTERTECH_ON);
}

void switchOff(void){
  mySwitch.send(INTERTECH_OFF);
}

Damit gelang es mir, die Funksteckdose anzusteuern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.