Wat mécht ee mat engem Kniwwelino deen en doheem trëllen huet? Richteg, eng Fernsteierung fir ee Volumio oder Sonos Medie Spiller.
An engem fréieren Artikel hunn ech schonn beschriwwen wéi ee kann ee Zigbee Taster vun Xiaomi benotzen fir een Volumio oder Sonos fernzesteieren.
Elo maache mir dat ganzt mat engem Kniwwelino.
Wat brauch een?
- Kniwwelino
- Kniwwelino Software (Arduino mat Kniwwelino Bibliothéiken. Héi sinn d’Instruktioune)
- MQTT Broker
- Automation Software, ech benotzen Home Assistant
Volumio?
Volumio ass een Open-Source Medie Spiller, ideal fir aus ale Lautsprecher a Kombinatioun mat engem Raspberry Pi ee mächtege Medie Spiller ze bauen. Och do hunn ech schonn driwwer geschriwwen.
Arduino Code
Volume +
Knäppchen “A” drécken:
- Kniwwelino schéckt de Message “VOLUP” un den MQTT Broker
- LED Matrix weist een “+” un
- LED Matrix schalt sech no 500ms rëm aus
Volume –
Knäppchen “B” drécken:
- Kniwwelino schéckt de Message “VOLDOWN” un den MQTT Broker
- LED Matrix weist een “+” un
- LED Matrix schalt sech no 500ms rëm aus
Play/Pause
Knäppchen “A + B” zesumme drécken:
- Kniwwelino schéckt de Message “PLAY-PAUSE” un den MQTT Broker
- LED Matrix weist ee Symbol un
- LED Matrix schalt sech no 500ms rëm aus
Optional – Previous Track:
Hei kann een sech nach een zousätzlechen Taster un de PIN “D5” uschléissen:
- Kniwwelino schéckt de Message “PREV-TRACK” un den MQTT Broker
- LED Matrix weist ee Feil no lenks un
- LED Matrix schalt sech no 500ms rëm aus
Optional – Next Track:
Hei kann een sech nach een zousätzlechen Taster un de PIN “D6” uschléissen:
- Kniwwelino schéckt de Message “NEXT-TRACK” un den MQTT Broker
- LED Matrix weist ee Feil no riets un
- LED Matrix schalt sech no 500ms rëm aus
Hei ass den Code fir dat ganzt:
#include <Kniwwelino.h> void setup() { //Initialize the Kniwwelino Board Kniwwelino.begin(true, true, false); // Wifi=true, Fastboot=true, MQTT Logging=false Kniwwelino.MQTTsetup("IP.vum.MQTT.Broker", 1883, "user", "password); Kniwwelino.MQTTconnect(); Kniwwelino.MQTTsubscribe("volumio/kichen"); Kniwwelino.PINenableButton(D5); Kniwwelino.PINenableButton(D6); } void loop() { if (Kniwwelino.BUTTONABclicked()) { Kniwwelino.MQTTpublish("volumio/kichen", String("PLAY-PAUSE")); Kniwwelino.MATRIXdrawIcon(String("B0010001010111110101000100")); Kniwwelino.logln(String("PLAY-PAUSE")); Kniwwelino.sleep(500); Kniwwelino.MATRIXclear(); } else if (Kniwwelino.BUTTONAclicked()) { Kniwwelino.MQTTpublish("volumio/kichen", String("VOLUP")); Kniwwelino.MATRIXdrawIcon(String("B0010000100111110010000100")); Kniwwelino.logln(String("VOLUP")); Kniwwelino.sleep(500); Kniwwelino.MATRIXclear(); } else if (Kniwwelino.BUTTONBclicked()) { Kniwwelino.MQTTpublish("volumio/kichen", String("VOLDOWN")); Kniwwelino.MATRIXdrawIcon(String("B0000000000111110000000000")); Kniwwelino.logln(String("VOLDOWN")); Kniwwelino.sleep(500); Kniwwelino.MATRIXclear(); } if (Kniwwelino.PINbuttonClicked(D5)) { Kniwwelino.MQTTpublish("volumio/kichen", String("PREV-TRACK")); Kniwwelino.MATRIXdrawIcon(String("B0010001000111110100000100")); Kniwwelino.logln(String("PREV-TRACK")); Kniwwelino.sleep(500); Kniwwelino.MATRIXclear(); } else if (Kniwwelino.PINbuttonClicked(D6)) { Kniwwelino.MQTTpublish("volumio/kichen", String("NEXT-TRACK")); Kniwwelino.MATRIXdrawIcon(String("B0010000010111110001000100")); Kniwwelino.logln(String("NEXT-TRACK")); Kniwwelino.sleep(500); Kniwwelino.MATRIXclear(); } Kniwwelino.loop(); // do background stuff... }
Kee Wifi am Code?
Richteg gesinn, am Code ass néierens eng Zeile ze fanne fir de Kniwwelino un ee Wifi ze verbannen.
Ech benotzen dofir léiwer déi agebaute Funktioun vun der Firmware:
Einfach déi 2 Knäppchen A a B wärend dem astieche vum USB Kabel (lies: uschalte vum Kniwwelino) gedréckt halen. De Kniwwelino start dann am Wifi AP Modus. Einfach mam Smartphone op deen Temporäre Wifi (SSID Kniwwelino_xyz.) verbannen an zack! lant een um Portal wou een ee Wifi auswiele ka fir sech domadder ze verbannen.
MQTT Topic
Opgepasst!
Am Code gëtt de MQTT Topic als volumio/kichen définéiert, mee de Kniwwelino setzt nach ee Prefix kniwwelino/ virdrun, sou dass den Topic um MQTT Broker schlussendlech kniwwelino/volumio/kichen ass.
Home Assistant
Zu gudder Lescht benotzen ech den Home Assistant fir op déi verschidden Evenementer resp MQTT Topics ze lauschteren an deementspriechend Aktiounen aus ze féieren.
Pro Aktioun een Automatisme, hei déi fir Volume Down:
- id: '1570021574570' alias: Kniwwelino - Volumio Kichen Volume Down trigger: - payload: VOLDOWN platform: mqtt topic: kniwwelino/volumio/kichen condition: [] action: - data: entity_id: media_player.volumio_kichen_local service: media_player.volume_down
Déi aner Automatismen hunn folgend Parameter déi sollen opgeruff ginn:
- Volume Up – Payload: VOLUP – Service: media_player.volume_up
- Play/Pause – Payload: PLAY-PAUSE – Service: media_player.media_play_pause
- Previous Track – Payload: PREV-TRACK – Service: media_player.media_previous_track
- Next Track – Payload: NEXT-TRACK – Service: media_player.media_next_track
An elo?
Dat war et schonn. Elo brauch ech just nach ee Gehais aus engem 3D Printer fir de Kniwwelino.
Vill Spaass beim Nobauen!
Rezent Kommentare