### Wie finde ich das Webinterface der Tasmota Lampen?
`nmap -sP 192.168.3.0/24`, der Hostname der Lampen ist by default
tasmota, wir haben aber zwei bereits in "buntsofa" und "buntkino"
umbenannt. Das Webinterface lauscht auf dem Standard HTTP Port 80, also
einfach die IP Adresse im Browser eingeben.
### Wie liste ich alle Tasmota Lampen auf?
Nutze folgendes Python Skript:
#!/usr/bin/env python3
import json
import sys
import paho.mqtt.client as mqtt
MQTT_HOST = 'mqtt.fd'
MQTT_PORT = 1883
TOPIC_BASE = 'zigbee2mqtt/bridge/config/devices'
TOPIC_GET = f'{TOPIC_BASE}/get'
def on_connect(client, userdata, flags, rc):
client.subscribe(TOPIC_BASE)
client.publish(TOPIC_GET)
def on_message(client, userdata, msg):
things = json.loads(msg.payload.decode('utf-8'))
for thing in things:
if thing['type'] == 'Router':
print(thing['friendly_name'])
sys.exit(0)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(MQTT_HOST, MQTT_PORT, 60)
client.loop_forever()
### Wie spiele ich einen Regenbogen auf allen Lampen ab?
Wenn du obiges Python-Skript als `asdf.py` gespeichert hast und es
ausführbar ist, kannst du mit folgendem Bash-Oneliner steil gehen:
for c in {0..360..10}; do col=$(python3 -c "import colorsys; print('#' + ''.join([f'{int(c * 255):02x}'.upper() for c in colorsys.hsv_to_rgb($c / 360, 1, 1)]))"); while read -r lamp; do echo "$lamp $col"; mosquitto_pub -t "cmnd/tasmota/$lamp/color" -h mqtt.fd -m "$col"; sleep 1; done <<< $(./asdf.py); done