NEWS
Lovelace Linux Skriptbefehle?
-
Guten Tag in die Runde,
ich habe ein kleines Display System mit einem Raspberry Pi 3b+. Auf diesem wird ein Tab auf der Visu angezeigt.
Er hängt an der Wand und um irgendwas mit ihm zu machen, müsste man sich per TeamViewer auf den Pi aufwählen.
(Er ist in Chromium im Vollbild, kann man da irgendiwe nur mit Touchscreen raus?)Nun die eigentliche Frage, kann ich irgendwie Button-Schaltflächen auf die Visualisierung packen, damit zum Beispiel die Konsole aufgerufen wird?
-
Schade, scheint es nicht zu geben.
Vielleicht noch eine andere Sache, habt ihr den kiosk-mode im Einsatz?
Ich habe diesen jetzt installiert (.js Datei in eigene Karten Tab in Lovelace Konfiguration), diese Zeilen ganz oben im Raw-Konfigurationseditor hinzugefügt: kiosk_mode: hide_header: true, aber es funktioniert nicht richtig.Der Inhalt der Seite platziert sich zwar so hin, als wäre der Header nicht da, jedoch wird dieser noch angezeigt?
@David-G eventuell weißt du da mehr? -
@timmss sagte in Lovelace Linux Skriptbefehle?:
Der Inhalt der Seite platziert sich zwar so hin, als wäre der Header nicht da, jedoch wird dieser noch angezeigt?
@David-G eventuell weißt du da mehr?Da hab ich keine Idee. Nutze das nicht.
Zu deiner Ausgangsfrage.
Das geht bestimmt irgendwie.
Vermutlich bekommt man das mit irgendeinem ssh Befehl hin. Das kannst du ja mit exec in Blockly erstellen (oder mit Linuxcontrol) und auf einen DP triggern den du in Lovelace schaltest.EDIT
Auf Google findet man aber viel. Zb https://thejoe.it/de/2014/02/05/avviare-un-programma-con-gui-da-remoto-via-ssh/ChatGPT hat mir auch eine ausführliche Anleitung geliefert.
-
@timmss said in Lovelace Linux Skriptbefehle?:
Nun die eigentliche Frage, kann ich irgendwie Button-Schaltflächen auf die Visualisierung packen, damit zum Beispiel die Konsole aufgerufen wird?
Hä? Du willst, dass der Browser verschwindet und dafür ein Terminal erscheint? Heißt das, du hast eine Tastatur an dem Gerät? Dann empfehle ich dir ein Terminal auf einen Shortcut zu legen (ich nutze meist alt+F1 dafür). Oder einfach direkt auf ein TTY umzuschalten (ctrl+alt+fX -> damit kannst du auf ein anderes tty wechseln. Die grafische Ausgabe läuft normalerweise auf tty1 oder tty2, also ctrl+alt+F1 würde dich dahin zurück bringen und mit ctrl+alt+f3 kommst du zu einer Eingabeaufforderung).
@timmss said in Lovelace Linux Skriptbefehle?:
Ich habe diesen jetzt installiert (.js Datei in eigene Karten Tab in Lovelace Konfiguration), diese Zeilen ganz oben im Raw-Konfigurationseditor hinzugefügt: kiosk_mode: hide_header: true, aber es funktioniert nicht richtig.
Warum versuchst du es so? Da musst du selber darauf achten, dass die Version von dem kiosk-skript zur Version des Frontend passt.
Was passiert, wenn du in den iobroker Objekten für die InstanzhideHeader
auf true stellst? Das sollte den Header verstecken. (aka: Funktion ist bereits integriert). -
@garfonso said in Lovelace Linux Skriptbefehle?:
Heißt das, du hast eine Tastatur an dem Gerät
Nein. Sagen wir es gäbe eine Karte, auf der man schon Befehle vordefiniert. Zum Beispiel eine reboot-Karte, eine shutdown-Karte, ... . Aber das was @David-G geschrieben hat, ist eigentlich das was ich suche.
Zu der zweiten Sache, davon wusste ich noch nichts. Aber funktionert ansich perfekt!
Einzige Sache, kann ich den Header nur bei einem Tab verstecken? Ich habe 3 Tabs aber würde gerne nur bei einem den Header verstecken.Oder brauche ich dafür eine zweite Instanz.
-
@timmss
Hm... du könntest dafür ein skript schreiben. Inpath
steht auf welchem Tab der browser gerade ist und dann müsstest du hideHeader auch per skript auf true/false stellen können. Das könnte aber sein, dass es da nicht ohne neuladen aktualisiert wird... (beim ausprobieren gerade hat sich das komisch verhalten). Wenn das nicht stört, könntest du danach noch ein refresh machen, um sicher zu stellen, dass der header weg / da ist.Ich hab noch nicht ganz verstanden, was dein Anwendungsfall ist. Eine zweite Lovelace Instanz wäre eine Möglichkeit. Ein zweiter Browser (also zweite Instanz innerhalb von lovelace) wäre eine zweite.
Du könntest auch den Header immer ausblenden und dafür mittels service_calls (und Knöpfen, auf die du die entsprechenden calls legst) navigieren, siehe hier.
Vielleicht ist aber auch ein Popup (oder ggf. einfacher more-info) was du suchst?Es gibt 1000 Möglichkeiten. g
-
@garfonso said in Lovelace Linux Skriptbefehle?:
Ich hab noch nicht ganz verstanden, was dein Anwendungsfall ist.
Anwendungsfall wäre, dass ich einen von den 3 Tabs auf meinem Raspberry Pi mit Display per Autostart mit URL-Aufruf anzeigen lasse:
chromium-browser --force-dark-mode --kiosk http://172.16.16.10:8091/lovelace/display
Es hätte ein Charm, wenn man beim URL-Aufruf irgendwie noch ?kiosk oder ?disable_header anhängen könnte.
-
@timmss
Dann sollte der Browser, den du da startest inlovelace.0.instances
einen eigenen "Unterordner" (korrekter "Device object") haben und darin ein eigeneshideHeader
Objekt, das du auf true setzen kannst. Dann gilt das nur für diesen Browser und für alle anderen nicht. -
@garfonso Kurze Frage zur Sicherstellung meiner Unklarheit :
Alle Ordner unter instances sind die Browser, über denen ich mal Lovelace auf den verschiedensten Geräten geöffnet habe?
Weil bei mir sind das ungelogen +100:
und das geht immer so weiter.
-
@timmss
Ähm.. ja..Wenn du da sehr viele hast, dann spricht das dafür, dass der Browser zu viel löscht. Beim fullyKiosk Browser ist das Problem bekannt. Da muss man abstellen, dass er den localStorage löscht. Kann sein, dass das auch für andere Browser gilt.
Mein erster Schritt wäre den ganzen Objektbaum
instances
löschen und den lovelace-Adapter neustarten. Danach mal gucken, ob neue dazu kommen. Eigentlich sollte das relativ stabil bleiben. (Und wenn ich mal rausfinde, wie, kriegen wir das auch hin da ordentliche Namen zu vergeben... die iobroker.visu-App kann das bereits, weil sie die einfach "richtig" ins localStorage schreibt). -
@timmss
Hab gerade mal chrome und kiosk in Google geschmissen und der scheint das unter unbekannte Umständen auch so zu machen:
https://stackoverflow.com/questions/55584598/localstorage-variable-not-persisting-in-chromium-kiosk-modeDa steht auch, wie du es fixen kannst.
-
@garfonso said in Lovelace Linux Skriptbefehle?:
ordentliche Namen zu vergeben
Ahh verstehe verstehe. Ich habe mal den ganzen Baum gelöscht (2590 Elemente) und die neue Raspberry chromium Instanz ausfindig gemacht. Dort hideHeader auf true gesetzt und nun ist der Header versteckt. Klappt also nun perfekt.
Allerdings sehen nun einige Werte etwas komisch aus:
Und kann ich selber dem Ordner einen eigenen Namen geben, wenn ich per Entwicklungsmodus-Stift das Objekt bearbeite?
-
Die "null" Werte, oder was meinst du? Das macht nichts, da sind halt noch keine Werte reingekommen.
@timmss said in Lovelace Linux Skriptbefehle?:
Und kann ich selber dem Ordner einen eigenen Namen geben, wenn ich per Entwicklungsmodus-Stift das Objekt bearbeite?
Den Namen (also die entsprechende Spalte) kannst du so anpassen, ja.
-
@garfonso said in Lovelace Linux Skriptbefehle?:
Das macht nichts, da sind halt noch keine Werte reingekommen.
Oh okay. Dachte, weil es vorher Taster waren und jetzt auf einmal nur null-Werte, dass da irgendwas falsch ist.
-
@garfonso said in Lovelace Linux Skriptbefehle?:
dass der Browser zu viel löscht.
Ich habe das Problem gefunden. Ich habe einen Kollegen, der in Firefox die Option aktiviert hat, dass beim Schließen des Browsers die gesamten Daten gelöscht werden:
Startet er also den Browser neu, bekommt er auch eine neue Browser Instanz
Der Raspberry hingegen verwendet immer dieselbe Browser-Instanz, also ein Problem mit dem Kiosk-Modus habe ich dort nicht.
-
@timmss
Naja, dann den bitten, dass der zumnindest eine Ausnahme für deinen ioBroker einträgt.Ich werde auch was einbauen, dass alte Instanzen gelöscht werden oder sowas. Dann ist es nicht mehr ganz so schlimm.
-
@garfonso said in Lovelace Linux Skriptbefehle?:
dass der zumnindest eine Ausnahme für deinen ioBroker einträgt.
Ist getan, klappt perfekt.
Ich danke dir für deine große Hilfe hier!