FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: AGi2019 am 13 Dezember 2022, 18:18:37

Titel: FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: AGi2019 am 13 Dezember 2022, 18:18:37
Hallo FTUI Cracks,

ich suche nach einer Möglichkeit, den Akku-Status vom Tablet an FHEM zu senden.

mit der Java-Skript Funktion:

<script>
navigator.getBattery().then(function(battery) {
var level = battery.level;
console.log(level);
});
</script>


kann ich mir den Wert in der Console(Browser) ausgeben lassen.

Nur habe ich keine Ahnung, wie ich diesen Wert zu FHEM in mein DUMMY Device bringen kann.

Vielleicht könnt ihr helfen?
Titel: Antw:FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: mr_petz am 15 Dezember 2022, 15:57:31
Hi,
die Funktion finde ich nicht schlecht.
Ich habe die mal für FTUI3 erstellt:

<script type="text/javascript">
  document.onreadystatechange = () => {
   if (document.readyState === 'complete') {
      this.label = document.querySelector('#battery');
      getBatteryLevel();
      setInterval(()=>getBatteryLevel(),60000);
    }
  };
function getBatteryLevel() {
  navigator.getBattery().then(battery => {
   const level = battery.level;
   this.label.textContent = 'Akkustand: ' + level*100 + '%';
    if (battery.chargingTime !== 0 && battery.charging === true) {
      this.label.textContent += ' ⚡';
    }
    if (battery.dischargingTime > 0 && battery.charging === false && battery.dischargingTime.toString() !== 'Infinity') {
      this.label.textContent += ' Restzeit: ' + Math.floor(battery.dischargingTime / 3600 ) + 'h ' + Math.floor( (battery.dischargingTime % 3600) / 60 ) + 'min';
    }
   //ftuiApp.fhemService.sendCommand('setreading Device Reading ' + level*100 + '%'); //Backslash´s vor ftuiApp entfernen und Device+Reading anpassen wenn benötigt.
   //ftuiApp.toast('setreading Device Reading ' + level*100 + '%'); //Backslash´s vor ftuiApp entfernen und Device+Reading anpassen wenn benötigt.
  });
};
</script>
<ftui-label id="battery"></ftui-label>


Hier in meinem Bsp. für FTUI3 wird erst gewartet bis die Seite fertig geladen ist und dann ruft ein einminütiger Interval die function getBatteryLevel() auf. Darin wird wenn gewünscht ein toast angezeigt oder es an fhem gesendet...
Im ftui-label wird es dann auch angezeigt...

Im FTUI2 könnte das funktionieren:

<script type="text/javascript">
  document.onreadystatechange = () => {
    if (document.readyState === 'complete') {
      getBatteryLevel();
      setInterval(()=>getBatteryLevel(),60000);
    }
  };
function getBatteryLevel() {
  navigator.getBattery().then(battery => {
   const level = battery.level;
   ftui.sendFhemCommand('setreading Device Reading ' + level*100 + '%');
   ftui.toast('setreading Device Reading ' + level*100 + '%');
  });
};
</script>

Hier ohne label. Ob noch {} innerhalb des ftui.sendFhemCommand() sein muss, musst du testen... (hier ungetestet)
Und Device+Reading anpassen...
level geht bei mir von 0.xx bis 1.
Deswegen *100
Klar, man könnte die Funktion erweitern für nur wenn sich der Status ändert, aber dazu braucht man trotzdem den interval oder muss es per button oder was auch immer aufrufen...

LG mr_petz

Edit: erste Anweisung geändert und Restzeit hinzugefügt...
Hinweis: Unter Browser FF und Safari funktioniert navigator.getBattery() nicht!
Titel: Antw:FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: AGi2019 am 16 Dezember 2022, 15:25:07
Hallo mr_petz,
das ist viel mehr, als ich erwartet habe.
Vielen Dank für Deine Mühe.

Ich werde es zwischen den Tagen ausprobieren und dann berichten oder weitere  Fragen stellen  ;)
Titel: Antw:FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: Ulm32b am 26 Dezember 2022, 22:46:03
Mit der Vollversion des Fully-Browsers kann man diverse Systemdaten via FHEM auslesen, unter anderem den Akku-Stand.
Damit schalte ich (unter Verwendung von Shelly- Plug) den Ladestrom ein/aus.
Titel: Antw:FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: mr_petz am 27 Dezember 2022, 15:26:28
@Ulm32b

Da hast du natürlich Recht.
Bei WallPanel und Fully kann man per MQTT die Daten holen und sogar setzen.
Ich habe z.Bsp. eine WordClock als Screensaver in FTUI3 eingebunden und wenn die Uhr aktiv ist, setze ich die Brightness runter...
Durch den Motionsensor wird die Uhr wieder deaktiviert und Brightness  hoch gesetzt...
Bild der Uhr mal angehangen.

LG mr_petz
Titel: Antw:FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: AGi2019 am 07 Januar 2023, 23:15:25

!!! Rückmeldung !!!

So, nun habe ich endlich Zeit gefunden, es in FTUI2 zu implementieren.
Es funktioniert super  :D

Der Wert wird jede Minute übertragen. Voraussetung ist, dass das Tablet eingeschaltet ist und FTUI sichtbar.
MeinTablet schalte ich von FHEM ein, wenn Bewegung im Flur ist (Ikea Bewegungsmelder). Zum Aktivieren des Tablet habe ich die WOLi APP (Android) installiert. Das Tablet deaktiviert sich nach 2 Minuten wieder von selbst.
Sollte längere Zeit keine Bewegung im Flur sein, schlate ich alle 12h das Tablet von FHEM ein. Mit dem Einschalten wird dann der Akku-Stand an Fhem übermittelt und ich kann ggf. die Ladesteckdose einschalten.


Titel: Antw:FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: andreas_r am 08 Januar 2023, 20:35:29
@mr_petz: wie hast Du die Wordclock eingebunden? Gibt es das schon als fertiges Control?

VG, Andreas
Titel: Antw:FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: mr_petz am 08 Januar 2023, 21:44:31
@andreas_r

Nein. das must du extra einbinden. Uhr stammt von hier:
https://github.com/Snapstromegon/wordclock

Ich habe mir die Uhr noch bisschen angepasst.
Bei bedarf poste ich es. Macht aber nur als Screensaver sinn...

LG
Titel: Antw:FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: Ulm32b am 05 Februar 2023, 16:13:33
Falls jemand alternative Ansätze für einen Bildschirmschoner sucht: Meiner ist minimalistisch und bewusst ohne Animation: Das Hintergrundbild ist aus einem dem eigenem Umfeld entstammenden Foto abgeleitet (Bildbearbeitung Relief, sehr dunkel), hier im unteren Bereich verschwommen dargestellt. Oben werden sehr groß Uhrzeit und Temperatur gezeigt.

Implementiert ist das über Fully (Vollversion). Dort kann man für den Screensaver eine URL angeben, dies ist hier eine ganz einfache FTUI-Seite, der Hintergrund ist über css definiert, Codes s.u.
Ein- und Ausschalten des Screensavers wird in Fully verwaltet: über Bewegungs- und Geräuscherkennung, natürlich auch durch Antippen des Bildschirms.
Das funktioniert zuverlässig seit 4 Jahren.

<html>
<head>
    <link rel="stylesheet" href="css/fhem-tablet-ui.css" />
<link rel="stylesheet" href="css/Layout_idle.css" />
<script src="js/fhem-tablet-ui.js" defer></script>
</head>
<body>
<div class="col-1-2 top-align left-align gigantic thin" data-type="label" data-device="WetterProplanta" data-get="temperature" data-fix="0" data-unit="°C" data-color="#555555"></div>
<div class="col-1-2 top-align right-align gigantic thin" data-type="clock" data-format="G:i" style="color: #555555"></div>
</body>
</html>


Style Sheet Layout_idle.css:
/* Hintergrundbild Bildschirmschoner */
  body {
    background-image: url(../images/xxx.jpg) !important;
    background-repeat: no-repeat;
    background-position: right top;
    background-attachment: fixed;
}
Titel: Aw: FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: Bozan am 31 Januar 2025, 21:20:34
Hallo mr_petz!

Ich nutze Dein Script für die Batterieanzeige. Besten Dank auch für den Code.
Ich habe die Anzeige in einem View1 erfolgreich eingebunden mit
<ftui-tab-view id="View1"> 
...
<ftui-grid-tile row="1" col="1" height="1" width="4">
        <ftui-label id="battery"></ftui-label>
</ftui-grid-tile>
...
</ftui-tab-view>

Nun will ich aber auch in allen weiteren Views links,oben den Akkustand einblenden und scheitere daran gnadenlos. Ich bekomme die Anzeige insgesamt immer nur einmal in meine Ftui3 Ausgabe.
Ich komme hier leider nicht weiter.
Besten dank schon jetzt für Deine Hilfe,

Bozan
Titel: Aw: FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: Bozan am 01 Februar 2025, 10:42:00
Ich habe es nun doch hinbekommen, indem ich den Akkustand außerhalb der Views einblende.
Soweit so gut...
Dennoch bleibt bei mir die Frage, ob, oder warum ich dies ggf. nicht mehrfach auf einer Seite darstellen kann? :-\
Titel: Aw: FTUI Widget um Akku-Status vom Tablet an FHEM zu übermitteln
Beitrag von: Shadow3561 am 01 Februar 2025, 11:47:21
@mr_petz


Ich nutze ebenfalls Wordclock als Bildschirmschoner i.V.m. Fully.

Was mich schon immer wurmt,
Gibt es die Möglichkeit in die Website noch die aktuelle Aussentemperatur und ein Wettersymbol einzubinden?
Ich habe schon versucht Wordclock in FTUI als iframe einzubinden aber es ist dann alles irgendwie verschoben.
Mit freundlichen Grüßen

EDIT:
Irgendetwas stimmt mit meinem Kopf nicht.
Habe es doch hinbekommen.
Passt zwar nicht so ganz zu meiner Erwartung, aber ist erstmal OK