Host:mqtt.intern.k4cg.org: Unterschied zwischen den Versionen
Noqqe (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{Hostbox | hostname = mqtt.intern.k4cg.org | ipv4 = 192.168.178.20 | network = 255.255.255.0 | gateway = 192.168.178.1 | DNS = 192.168.178.1 | OS = NixOS | lo…“) |
Noqqe (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 37: | Zeile 37: | ||
usw.. | usw.. | ||
=== Ich möchte auch Daten in die MQTT schicken! === | |||
Klar! | |||
* Such dir jemanden der Access auf mqtt.intern.k4cg.org hat. | |||
* Editiere <code>/etc/nixos/configuration.nix</code> | |||
<pre> | |||
# MQTT | |||
services.mosquitto = { | |||
host = "0.0.0.0"; | |||
enable = true; | |||
users = { | |||
admin = { | |||
password = "xxx"; | |||
acl = [ "topic #" ]; | |||
}; | |||
door = { | |||
password = "xxx"; | |||
acl = [ "topic write sensors/door/#" ]; | |||
}; | |||
}; | |||
}; | |||
</pre> | |||
* Anschliessend kannst du dir ein neuen **User**, **Topic**, und **Passwort** ausdenken. | |||
<pre> | |||
USER = { | |||
password = "PASSWORT"; | |||
acl = [ "topic write TOPIC" ]; | |||
}; | |||
</pre> | |||
* Wenn das geschafft ist, die Konfiguration noch bei NixOS anwenden | |||
<pre> | |||
nixos-rebuild switch | |||
</pre> | |||
== MQTT2Spacestatus == | == MQTT2Spacestatus == | ||
Zeile 43: | Zeile 83: | ||
<pre> | <pre> | ||
/usr/local/ | /usr/local/mqtt2spacestatus/mqtt2spacestatus.py | ||
</pre> | </pre> | ||
Zeile 49: | Zeile 89: | ||
<pre> | <pre> | ||
systemctl restart | systemctl restart mqtt2spacestatus | ||
</pre> | </pre> | ||
Zeile 55: | Zeile 95: | ||
<pre> | <pre> | ||
source /usr/local/ | source /usr/local/mqtt2spacestatus/.venv/bin/activate | ||
/usr/local/ | /usr/local/mqtt2spacestatus/mqtt2spacestatus.py --debug | ||
</pre> | </pre> | ||
Zeile 66: | Zeile 106: | ||
Dieses Script ist näher hier beschrieben [[Projekt:wifi2mqtt]] | Dieses Script ist näher hier beschrieben [[Projekt:wifi2mqtt]] | ||
== Apache == | |||
Ist im Endeffekt ein ganz normaler Apache der nur auf Port 80 hört und da folgende Datei ausliefert: | |||
<pre> | |||
/var/www/spacestatus/status.json | |||
</pre> | |||
Von extern ist dieses File dann über http://k4cgrouter.duckdns.org:59468/status.json erreichbar. |
Aktuelle Version vom 26. März 2018, 09:52 Uhr
Host:mqtt.intern.k4cg.org | |
Hostname | mqtt.intern.k4cg.org |
IPv4 | 192.168.178.20 |
Network | 255.255.255.0 |
Gateway | 192.168.178.1 |
DNS | 192.168.178.1 |
OS | NixOS |
Location | Host:beehive.intern.k4cg.org |
Generelles
Dieser Host stellt einen zur Verfügung
- MQTT Daemon
- HTTPD, welcher die status.json hostet
- mqtt2spacestatus, Daemon der MQTT Sensoren in die status.json schreibt
- wifi2mqtt, Script welches alle Wifi Hosts zählt und in MQTT pushed
Alle Konfiguration wird unter /etc/nixos/configuration.nix
gepflegt und gewartet.
Mosquitto MQTT
Der Mosquitto Daemon läuft auf Port 1883 (default) und ist nur mit Authorisierung benutzbar.
Topic Organisation
Im Endeffekt nutzen wir momentan nur
- sensors/#
Als Topic im alle Daten zu gruppieren
- sensors/wifi
- sensors/tischtennis/temp
- sensors/spacestatus/door
usw..
Ich möchte auch Daten in die MQTT schicken!
Klar!
- Such dir jemanden der Access auf mqtt.intern.k4cg.org hat.
- Editiere
/etc/nixos/configuration.nix
# MQTT services.mosquitto = { host = "0.0.0.0"; enable = true; users = { admin = { password = "xxx"; acl = [ "topic #" ]; }; door = { password = "xxx"; acl = [ "topic write sensors/door/#" ]; }; }; };
- Anschliessend kannst du dir ein neuen **User**, **Topic**, und **Passwort** ausdenken.
USER = { password = "PASSWORT"; acl = [ "topic write TOPIC" ]; };
- Wenn das geschafft ist, die Konfiguration noch bei NixOS anwenden
nixos-rebuild switch
MQTT2Spacestatus
Ein Daemon der alle gewählten Sensoren von MQTT in den Spacestatus schreibt
/usr/local/mqtt2spacestatus/mqtt2spacestatus.py
Daemon Neustart
systemctl restart mqtt2spacestatus
Sollte es mal Debuggin Probleme geben kann mit
source /usr/local/mqtt2spacestatus/.venv/bin/activate /usr/local/mqtt2spacestatus/mqtt2spacestatus.py --debug
debuggt werden
wifi2mqtt
Holt momentan connectete Hosts vom AP ab und pushlished die Anzahl in MQTT
Dieses Script ist näher hier beschrieben Projekt:wifi2mqtt
Apache
Ist im Endeffekt ein ganz normaler Apache der nur auf Port 80 hört und da folgende Datei ausliefert:
/var/www/spacestatus/status.json
Von extern ist dieses File dann über http://k4cgrouter.duckdns.org:59468/status.json erreichbar.