Nous A1T mit Tasmota Firmware
Mit dem Nous A1T lässt sich kostengünstig über einen Zwischenstecker die Stromversorgung von Ressourcen einschalten. Durch die Tasmota Firmware kann auch die Software angepasst werden.
Wichtig ist, dass es sich bei dem Nous um die Tasmota-Variante handelt, da nur diese ohne externe Cloud funktioniert.
Wichtige Links
- https://tasmota.github.io/docs/Firmware-Builds
- https://gitlab.com/fabinfra/fabaccess/grafana/-/tree/main?ref_type=heads
- https://tasmota.github.io/docs/Commands
Was sollte konfiguriert werden?
Folgende Configs sind - ausgehend von den Werkseinstellungen - je Steckdose zu ändern:
- Firmware Upgrade / Flash custom TLS enabled Firmware. Diese erlaubt die (fast) automatische Nutzung des Lets Encrypt Root Zertifikats ohne sämtliche weitere Konfiguration auf dem Modul. Lediglich mosquitto und BFFH müssen Lets Encrypt verwenden
- PowerOnState anpassen
- Web Admin Password
- Device Name
- Friendly Name 1
- Disable HTTP API
- Kalibrierung der Stromwerte (Netzspannung) für korrektes Monitoring/Reporting → https://tasmota.github.io/docs/Power-Monitoring-Calibration/#setup
TLS-Verschlüsselung verwenden
Standard ist:
- Host: 192.168.1.192
- Port: 1883
Angepasst ist:
- Host: fabaccess.fablabchemnitz.de
- Port: 8883
Prüfen, ob der DNS-Eintrag klappt und der Port offen ist. Sonst kann keine MQTTS Verbindung aufgebaut werden:
Der DNS-Eintrag ist aktuell im public DNS eingetragen (neycerha) und zeigt auf 192.168.1.192 → das funktioniert nicht, weil wir das DNS der Fritzbox nicht überschreiben können
Für ein LAN wird ein eigener DNS-Server gebraucht, z.B. Unifi DreamMachine oder ein pi-hole.
dig fabaccess.fablabchemnitz.de +short
dig @ns2.fablabchemnitz.de fabaccess.fablabchemnitz.de +short
dig @8.8.8.8 fabaccess.fablabchemnitz.de +short
#private DNS Server zuhause
dig @76.76.2.2 fabaccess.fablabchemnitz.de +short
dig @76.76.10.2 fabaccess.fablabchemnitz.de +short
dig @2606:1a40::2 fabaccess.fablabchemnitz.de +short
dig @2606:1a40:1::2 fabaccess.fablabchemnitz.de +short
dig @192.168.1.22 -> empty. Warum? Weil die FritzBox mit einem eigenen Eintrag bereits 192.168.1.192 inne hält und sich nicht überschreiben lässt #fritzbox
telnet fabaccess.fablabchemnitz.de 8883
In Tasmota Console:
https://tasmota.github.io/docs/Commands/#setoptions
#setzen
SetOption103 1
SetOption132 0
#output prüfen:
SetOption103
SetOption132
#DNS Server 1 "IPAddress4" verändern (testweise)
IPAddress4 192.168.1.22 #default
IPAddress4 8.8.8.8 restart 1
#DNS Server 2 "IPAddress5" verändern (testweise)
IPAddress5 0.0.0.0 #default
IPAddress5 8.8.4.4
IPAddress5 45.136.31.74 restart 1
#mDNS enablen - nur testweise
SetOption55 1
PowerOnState
- 0 = keep power(s) OFF after power up → empfohlen, damit es als Wiederanlaufschutz fungiert
- 1 = turn power(s) ON after power up
- 2 = toggle power(s) from last saved state
- 3 = switch power(s) to their last saved state (default)
- 4 = turn power(s) ON and disable further power control
- 5 = after a PulseTime period turn power(s) ON (acts as inverted PulseTime mode)
cd /opt/fabinfra/
git clone https://gitlab.com/fabinfra/fabaccess/actors/tasmota.git adapters/tasmota
chmod +x adapters/tasmota/main.py
chown -R bffh:root /opt/fabinfra/adapters/tasmota
Achtung: in main.py sind einige Angabe statisch. Das Topic "tasmota_" wird vorrangestellt, sodass in die bffh Konfiguration nur noch die ID eingetragen werden muss. Hier im Beispiel "F0AC9D"
Das Script kann manuell (unabhängig von bffh) getestet werden:
#Gerät als "admin" user nutzen (aktivieren)
/opt/fabinfra/adapters/tasmota/main.py --host localhost --user fablabc --password PASSWORD --tasmota F0AC9D state inuse admin
#Gerät wieder freigeben (ausschalten)
/opt/fabinfra/adapters/tasmota/main.py --host localhost --user fablabc --password PASSWORD --tasmota F0AC9D state free
Custom Firmware mit TLS
https://tasmota.github.io/docs/Create-your-own-Firmware-Build-without-IDE/#build-the-firmware
dnf install python python-virtualenv
pip install --upgrade pip
cd /home/tomate/FabInfra
virtualenv platformio-core
cd platformio-core
. bin/activate
pip install -U platformio
pip install --upgrade pip
cd /home/tomate/FabInfra
git clone https://github.com/arendst/Tasmota.git
vim platform.ini