Hallo Community!
Ich bin gerade dabei für mich ein Dashboard für den ESPuino in nodeRED zu basteln und wollte mal kurz vorstellen was es so macht. Es ist noch in der „early alpha“ Phase und das Ergebnis von zwei Abenden gebastel. Des Weiteren wollte ich mal gucken ob daran interesse besteht so etwas zu veröffentlichen. Ich kann mir vorstellen, dass einige von euch einen Raspberry Pi zu hause laufen haben und vielleicht auch nodeRED für die Automatisierung verwenden. Voraussetzung sind hier nodeRED, MQTT und das nodeRED_ui
Also das frontend ist die normale NodeRED UI welche ich mit etwas css und html aufgepeppt habe. Die Icons sind eine Mischung aus FontAwesome, Angular-, und Material-Design-icons (werden alle von nodeRED unterstützt)
Das ist ein Screenshot vom Webbrowser. Auf dem Handy sind die drei Gruppen dann untereinander.
Zu den Elementen:
Das erste Panel kann zusammengeklappt werden (Dreieck oben rechts)
Status wird über den MQTT Status angezeigt, die IP auch. Wenn man auf die IP klickt/tippt gelangt man zum Webinterface von Thorsten. Das orange Logo rechts von der IP zeigt den Playmode als Icon an.
Der „Aus-Knopf“ schaltet zuerst den Neopixel auf 0 brightness und dann schickt er den ESP nach kurzem delay in den DeepSleep. Ich hatte nämlich das Problem, dass die vier weißen LEDs (oder manchmal auch nur 3) angeblieben sind wenn ich ihn schlafen geschickt habe.
Bluetooth schaltet besagtes ein (kein toggle → siehe Limitationen)
Das schloss sperrt und entsperrt die physikalischen Knöpfe / Drehencoder am ESP
Track Zeigt den laufenden Titel (Nummer) und Anzahl Gesamt Titel im Ordner an (musste ich mit regex aus der payload des State/ESPuino/Track string extrahieren (leider kein json :{} )) Wenn webradio gespielt wird, zeigt er das an, anstatt einen Track.
Der Mond schaltet die LEDs auf 2 runter und wird dann gelb wenn man drauf drückt. Wird auch gelb wenn man die LEDs selbst auf <2 stellt
Die Gauges (die Halbbögen) zeigen die LED Helligkeit und die Lautstärke an und die Schieberegler verstellen beides.
Play controls
Die oberste Reihe ist wohl selbsterklärend.
Emulate ist ein dropdown wo man Tags auswählen kann die dann virtuell an den RFID leser gehalten werden
Das gleiche gilt für das Webradio dropdown (hier habe ich einfach 12 stellige fake tags verwendet, damit ich nicht für alles eine Karte benutzen muss. Wenn man sowieso Karten für die Funktionen oder Ordner oder Radiosender hat, kann man natürlich auch die eintragen)
Tag: 555555555555 zeigt den zuletzt präsentierten RFID Tag an.
Favourites
Favourites basiert auf dem gleichen Prinzip. Hier kann man (Vorerst nur im backend) die IDs von den beliebtesten Hörbüchern, Radiosendern, Funktionen einfügen
Und so sieht es hinter den Kulissen aus:
Es basiert größtenteils (eigentlich zu 100%) auf MQTT. Vielleicht schreibt Thorsten ja noch einmal eine Doku zu den HTTP Requests, dann könnte man das auch sehr gut darüber steuern.
Daher gibt es zur Zeit noch Limitationen in Bezug auf das was man einstellen und verändern kann. Aber alles was man mit MQTT ändern und abfragen kann kann man auch mit diesem Dashboard anzeigen bzw. steuern.
Eine Sache zum Beispiel ist, dass man Bluetooth nur einschalten kann (über Emulation eines RFID Tags, welches ich vorher in der WEB UI zugeordnet habe), aber nicht wieder aus. Das liegt daran, dass der ESP im BLE Modus nicht mehr über das Wifi erreichbar ist (möglich wäre es auf dem ESP generell beides parallel laufen zu lassen), aber wenn ich Thorsten richtig verstanden habe stehen nicht genug Ressourcen zur Verfügung)
Eine weitere Limitation sind meine Programmierkenntnisse Die bestehen größtenteils aus dem was ich in der Uni mal gelernt habe, einem Bisschen selbst beigebrachtem (aus der Zeit als PHP4 gerade modern war) und viel gegoogle und copy und paste von stackoverflow et al.
Also, falls Jemand das benutzen möchte, kann ich das gerne als Open Source Projekt einrichten bzw. hier zur Verfügung stellen.
Beste grüße,
haukino