NEWS
[Vorstellung] Meine VIS
-
Hallo Zusammen,
da ich hier im Forum immer viele Hilfen und Anregungen gefunden habe dachte ich, ich gebe mal was zurück, was vielleicht der ein oder andere als Anregung gebrauchen kann.
Ich habe meine aktuelle VIS etwas auf Vordermann gebracht und wollte sie euch einfach mal zeigen. Ziel war ein möglichst aufgeräumtes Display mit wenig Farben auf dem trotzdem die wichtigsten Dinge sofort gesteuert und angezeigt werden können.Main Screen mit Rollladensteuerung, Terminen (Müllabfuhr, aktuell keine im Bild da nicht fällig) und den wichtigsten Steuerelementen rechts:
Die orangen Punkte zeigen an, welche Fensterkontakte offen sind und erscheinen einmal neben dem jeweiligen Fenster und, sobald mindestens ein Fenster offen ist, auch unten im Menü. Dann sieht man immer, auch auf anderen Screens, ob noch was offen ist. Zusätzlich kommt beim Verlassen der Wohnung eine akustische Ansage über das Tablett, wenn noch Fenster offen sind.Rollladensteuerung über jqui-Widget:
Lichtsteuerung:
Texte und Hintergrundkacheln sind jetzt (soweit möglich) alle pixelgenau zwischen den Views ausgerichtet. So wirkt die Oberfläche auch beim Umschalten aufgeräumt weil nicht alles hin und her springt.
Musiksteuerung:
Eingebunden sind der Denon AVR-X2000 Receiver über den entsprechenden Adapter sowie Spotify.
Der Center Speaker vom Denon lässt sich an und abschalten, je nachdem ob man Musik hören, oder einen Film gucken will. Ist beim Denon leider normalerweise nicht per Befehl vorgesehen. Deshalb habe ich auf dem View per iFrame die entsprechende Konfigurationsseite des Denon eingeblendet. Mittlerweile hab ich aber herausgefunden wie es auch per Skript geht. Ich habe das Ewigkeiten gegoogelt und dann trotzdem nix gefunden und musste mir von einem Freund mit sehr guten IT-Kentnissen helfen lassen. Also wenn es mal jemand braucht:Center am Denon an (per curl Befehl z.B. über exec Block in Blockly). Hier auf "Small", "Large" würde auch gehen:
curl -d "setPureDirectOn=OFF&setSetupLock=OFF&radioSpConfigFr=Large&radioSpConfigC=Small&radioSpConfigSw=No&radioSpConfigSrA=Small" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://die.IP.vom.Denon/SETUP/SPEAKERS/SPEAKERCONFIG/s_speakersetup.asp
Center Speaker wieder abschalten ("None"):
curl -d "setPureDirectOn=OFF&setSetupLock=OFF&radioSpConfigFr=Large&radioSpConfigC=Small&radioSpConfigSw=No&radioSpConfigSrA=Small" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://die.IP.vom.Denon/SETUP/SPEAKERS/SPEAKERCONFIG/s_speakersetup.asp
Das ganze geht natürlich auch über den entsprechenden Sprachbefehl "Ich möchte einen Film gucken" mit "Snips" (leider nicht mehr weiterentwickelt).
Staubsauger:
Xiaomi Roborock S5, per Adapter eingebunden. Auf der Karte können einzelne oder mehrere Räume markiert werden. Dann werden diese nacheinander gesaugt. Das Ganze klappt über die XY-Koordinaten die per Adapter an den Staubsauger geschickt werden. Man muss also einmal alle Räume "vermessen" ("Gehe zu" in der Handy-App und dann im Adapter gucken, welche Koordinaten er zurückmeldet. Ist ein bisschen Fummelarbeit, geht vielleicht auch einfacher).
Wetter:
Das Diagramm rechts liegt 2 mal übereinander vor und welchselt je nach Jahreszeit automatisch. So ändert sich der angezeigte Temperaturbereich entsprechend. Die gelbe Kurve ist die Temperatur in der Sonne, die Rote die im Schatten. Daraus erzeuge ich mir die Variable "Sonne_scheint" um damit z.B. die Beschattung der Rollladen zu steuern. Unter dem Bild und Diagramm ist noch Platz für max. zwei DWD-Wetterwarnungen. Aktuell ist aber alles ruhig.
Das sind die Haupt-Screens. Zusätzlich gibt es noch ein paar nette Features wie z.B. Diagramme, die sich über versteckte Schalter aufrufen lassen. Ein Klick auf die große Uhrzeit in der Mitte öffnet z.B. das Diagramm zur Solarthermie:
(War ein schlechter Tag)Warum "versteckte" Schalter? Naja, meine Frau interessieren die Diagramme nicht und so ist es optisch aufgeräumt. Ich weiß ja, wo ich drücken muss.
Verpasste Anrufe werden über den tr-064 Adapter ausgelesen und entsprechend bei Bedarf eingeblendet:
Der Wecker lässt sich über die Hauptseite erreichen und dann konfigurieren:
Das ganze läuft auf einem 10 Zoll Android Tablet (Lenovo Tab-10), das bei mir an der Wand hängt. Dafür wurden bei der Renovierung direkt Kabel und Unterputzdosen vorgesehen. Dort ist ein USB Netzteil verbaut und versorgt das Tablet mit Strom. Das Lenovo hat den Vorteil, dass die drei Android-Tasten nur bei Bedarf im Display eingeblendet werden und nicht immer zu sehen sind. Die brauche ich für die VIS ja nicht. Das Gerät ist immer an, Nightstand-Mode und das Display wird bei Berührung beleuchtet bzw. wenn man die Tür öffnet (dann kann man den Summer direkt drücken).
Ich hoffe euch gefällt's auch! Ich hatte erst überlegt den VIS-Export hier hochzuladen, aber die VIS verwendet ziemlich viele eigene Grafiken, die dann ja fehlen. Wenn jemand weiß, wie der Export mit allen Grafiken geht, lasst es mich wissen!
Und damit Danke nochmal an Alle, von denen ich hier im Forum gelernt habe!
-
Hallo
Echt schön gemacht, mich würde interessieren wie du das mit der Einzelraum Reinigung genau umgesetzt hast
-
Was möchtest Du denn wissen?
Wie das VIS aufgebaut ist, oder wie das Skript dahinter aussieht?
Oder wie man an die Koordinaten für die Räume kommt? -
Ich habe seit einem Monat einen S50 MAX denn ich aber noch nicht eingebunden habe. Ich habe shcon ein paar Visualisierungen gesehen wo man die räume er saugen soll über einen Button einschaltet oder ausschaltet. Wie hast du das bei deiner VIS mit den Räumen gemacht (als das mit abwählen und anwählen ? Wie gesagt hab ich mich mit dem Adapter noch nicht beschäftigt aber werden dort dann Datenpunkte geschaltet er er saugt dann einen raum nach dem anderen oder wie geht das vor sich?
lg
-
Ah, okay.
Ich versuch's mal zusammenzufassen.
Der Adapter stellt einen Datenpunkt "zoneClean" zur Verfügung:Dort können die X,Y-Koordinaten der Räume (ich glaube das ist dann immer die obere Linke und untere rechte Ecke) eingetragen werden.
Das Format sieht so aus:
[19000,22000, 22500, 27000, 1], [22400, 25000, 29000, 27500, 1] x1, y1, x2, y2, 1 x1, y1, x2, y2, 1
Das Beispiel saugt zwei Räume, der erste ist in den ersten eckigen Klammern, der zweite in der zweiten eckigen Klammer.
Die "1" in der Klammer gibt die Anzahl der Saugdurchgänge an. Max. gehen hier 3 glaube ich.Ich hab mir eine Word-Datei gemacht und mir das für jeden Raum aufgeschrieben, ich fand das sonst sehr unübersichtlich:
Du musst also ein Skript haben, das diesen Datenpunkt mit den richtigen Koordinaten im richtigen Format füllt. Eine eckige Klammer pro Raum, dazwischen ein Komma und Leerzeichen, aber am Ende kein Komma mehr, sonst geht's nicht. Die Syntax ist also wichtig!
Hier ist mein Blockly dafür:
-- Oder doch nicht, der Post ist zu lang zum abschicken.. Ich häng es in den nächsten Post.
Im Prinzip:
Wenn in der VIS der Startknopf gedrückt wird, setze alle Variablen erstmal auf leer, damit da nix schief geht.
Dann prüfe Raum für Raum durch, ob dieser aktuell in der VIS auf true steht. Wenn ja, dann setze die Variable des entsprechenden Raumes auf die vorher ermittelten Koordinaten und Anzahl Saugvorgänge (ist bei mir immer 1, ich habe keinen Knopf dafür in der VIS, könnte man aber auch noch machen, das Skript ist dafür schon mal vorbereitet.)
Am Ende wird dann ein Gesamttext aus allen nicht leeren Variablen erstellt und dann zu guter letzt noch korrekt Formatiert (also das letzte Komma gelöscht).
Das ganze wird dann in das Objekt "zoneClean" geschrieben.Dann fährt der Sauger los.
In der VIS ist das einfach eine leere Karte vom Grundriss:
Dadrüber ist dann für jeden Raum ein Bild, nur mit der blauen Füllung:
Diese sind alle gleich ausgerichtet und auch gleich groß, dann passt das in der VIS nachher gut übereinander.
Zusätzlich sind dann über diesen ganzen Bildern noch durchsichtige Schalter (leeres Bild benutzen) in der Größe der Räume platziert. Hier auf den richtigen Z-Index achten. Die Knöpfe müssen über den Bildern liegen!
Damit werden die Räume (Die ganzen "_bool" - Variablen) dann an und aus geschaltet. Und die blauen Bilder sind so eingestellt, dass die Sichtbarkeit nur true ist, wenn der Raum aktiviert ist. Man könnte vermutlich auch direkt die Bilder der Räume auf die Knöpfe machen, dann spart man sich die eine Ebene. Aber ich hab's halt so gemacht.So, ich hoffe das war jetzt einigermaßen verständlich.
Sonst frag nochmal nach! -
Und hier noch der Export als TXT-Datei. Scheint zu lang zu sein für einen normalen Post.
-
Das hast du wirklich gut gelöst, ich werde das ganze am Abend mal ausprobieren. Wenn ich das rihtig verstehe hast du für jeden Raum einen Datenpunkt angelegt denn du auf "true" oder "false" setzt über dem Button oder ?
-
Ja, genau.
Ich habe mir eigene Datenpunkte angelegt, also z.B. "xiaomi_badezimmer_bool".
Diese werden über die unsichtbaren Knöpfe vor den Grafiken in VIS auf true oder false gesetzt.
Damit steuere ich 1. die Sichtbarkeit der blauen Raumfüllungen und 2. werden damit im Skript die Blöcke gestartet, die die Raumkoordinaten in die skriptinternen Text-Variablen schreiben.
Aus den ganzen beschriebenen Text-Variablen wird dann ein Gesamttext erstellt, die Syntax schön gemacht und dann in den Datenpunkt des Adapters geschrieben. Ändert sich dieser Datenpunkt und enthält etwas "sinnvolles", dann fährt der Sauger los. -
-
Hier der Export zur VIS:
2021-06-03-main.zip