Widget für iOS
Verfasst: Di Jan 19, 2021 7:16 pm
Weiter unten im Thread gibt es eine aktualisierte Version, bei der kein Eingriff in die openWB mehr nötig ist!
Das hier am Anfang vorgestellte Widget ist mittlerweile stark veraltet, es sieht mittlerweile ganz anders aus!
Erstmal ein paar Bilder des Widgets, dank iOS14 kann das Widget natürlich frei auf dem Homescreen platziert werden:
Ich bin so jemand, der seine PV-Anlage einfach gerne überwacht und anschließend auswertet.
Um lange Zeiträume umfangreich auszuwerten habe ich mir ein Grafana-Dashbaord erstellt, das habe ich hier schon vorgestellt:
https://www.photovoltaikforum.com/thre ... /?pageNo=1
Um aber einfach mal schnell nachzuschauen, wieviel Überschuss ich gerade so habe, ist es mir zu umständlich entweder Grafana oder die openWB-Website zu öffnen. Dazu kommt noch, dass Grafana-Dashboards am Handy oft nicht so toll aussehen.
Eigentlich habe ich immer gehofft das es mit der Integration von openWB in die Apple-Home App mal vorangeht, aber da scheint Apple mit den Einheiten ja nicht gerade einfach zu sein:
viewtopic.php?f=4&t=483&hilit=home+apple
In letzter Zeit habe ich dann immer wieder mal von Leuten gelesen, die sich mit der App „Scriptable“ selbst Corona-Widgets zusammenbauen, die etwa die Inzidenz oder auch die Anzahl der in D geimpften Personen anzeigen. Mein openWB-Widget ist im Prinzip nur ein solches abgewandeltes Widget:
https://gist.github.com/m4p/20cc77b6d9f ... ab6eed0ff3
Erstmal muss openWB die Daten natürlich bereitstellen. Dazu müssen per SSH zwei Skripte auf dem Raspi der oWB abgelegt werden. Macht das also nur wenn ihr wisst was ihr tut!
Die beiden angehängten Skripte „iosWidget.php“ und „iosWidget.py“ müssen auf dem openWB-Raspi in dem Ordner /var/www/html/cust/ abgelegt werden. Das „.txt“ muss entfernt werden! Aus „iosWidget.php.txt“ müsst ihr „iosWidget.php“ machen und aus „iosWidget.py.txt“ müsst ihr „iosWidget.py“ machen.
Kurze Erklärung der Skripte:
Das PHP Skript ruft eigentlich nur das Python Skript auf und leitet die Rückgabe des Python Skripts weiter. Sicher hätte man es auch nur mit einem PHP Skript lösen können, ich arbeite aber lieber mit Python.
Das Python Skript holt sich die Daten aus den entsprechenden Ramdisk-Dateien, und berechnet daraus einige Werte, wie Farbe oder Footnote. Anschließend werden all diese Daten zusammen mit einem Timestamp zu einem Json-String „gebastelt“, der dann an das PHP-Skript zurückgegeben wird.
Die gerade erwähnte Berechnung von Footnote und Farbe der einzelnen Werte hätte ich natürlich auch direkt in der Scriptable-App machen können. Wenn ich dann aber was anpassen wollen würde müsste ich es auf allen Geräten auf denen das Widget angezeigt werden soll einzeln machen. Dadurch, dass diese Berechnungen aber in dem Python-Skript erfolgen muss ich es nur einmal dort anpassen, was die nachträgliche Anpassung etwas vereinfacht.
Das war‘s dann auch schon am openWB-Raspi. Als nächstes muss die Scriptable-App heruntergeladen werden:
https://apps.apple.com/de/app/scriptable/id1405459188
Dann braucht ihr die Datei „PV-Widget.scriptable.txt“. Diese muss wieder umbenannt werden, in „PV-Widget.scriptable“.Entweder das wird dann direkt in der App geöffnet, oder man muss noch auf das Teilen-Symbol klicken und dann Scriptable auswählen.
Um das Widget dann zum Home-Screen hinzuzufügen muss man zum Homescreen zuerst ein Scriptable-Widget hinzufügen. Danach lange auf dieses Widget Tippen um es zu bearbeiten und als Skript PV-Widget auswählen. Alle anderen Werte einfach so lassen.
In der Scriptable-App kann man das Widget dann nach belieben anpassen, z.B. welche Werte angezeigt werden, die Widget-Größe usw.
Was aber angepasst werden MUSS ist einmal die URL wo die Daten herkommen (<IP_der_openWB>/cust/iosWidget.php) und die URL auf die weitergeleitet werden soll wenn auf das Widget getippt wird, also z.B. die Home-Seite von oWB.
Beides sollte in dem Skript eigentlich relativ einfach zu finden sein, ich hab‘s auf jeden Fall mit einem entsprechenden Kommentar versehen.
Was noch suboptimal ist ist die Aktualisierung des Widgets, da dieses nicht so regelmäßig aktualisiert wird, meist irgendetwas zwischen 30 Sekunden und fünf Minuten. Das geht in iOS/Scriptable aber leider nicht anders, weswegen ich den Timestamp anzeige, damit man sieht von wann die Daten sind.
Auch sind es bis jetzt nur PV-,Speicher- und Netzdaten, noch keine Autodaten. Das liegt einerseits daran, dass ich die Autodaten (bis auf den SoC des Autos) nicht so interessant finde, und andererseits daran, dass die Lieferzeiten von E-Autos so verdammt lange sind
Das hier am Anfang vorgestellte Widget ist mittlerweile stark veraltet, es sieht mittlerweile ganz anders aus!
Erstmal ein paar Bilder des Widgets, dank iOS14 kann das Widget natürlich frei auf dem Homescreen platziert werden:
Ich bin so jemand, der seine PV-Anlage einfach gerne überwacht und anschließend auswertet.
Um lange Zeiträume umfangreich auszuwerten habe ich mir ein Grafana-Dashbaord erstellt, das habe ich hier schon vorgestellt:
https://www.photovoltaikforum.com/thre ... /?pageNo=1
Um aber einfach mal schnell nachzuschauen, wieviel Überschuss ich gerade so habe, ist es mir zu umständlich entweder Grafana oder die openWB-Website zu öffnen. Dazu kommt noch, dass Grafana-Dashboards am Handy oft nicht so toll aussehen.
Eigentlich habe ich immer gehofft das es mit der Integration von openWB in die Apple-Home App mal vorangeht, aber da scheint Apple mit den Einheiten ja nicht gerade einfach zu sein:
viewtopic.php?f=4&t=483&hilit=home+apple
In letzter Zeit habe ich dann immer wieder mal von Leuten gelesen, die sich mit der App „Scriptable“ selbst Corona-Widgets zusammenbauen, die etwa die Inzidenz oder auch die Anzahl der in D geimpften Personen anzeigen. Mein openWB-Widget ist im Prinzip nur ein solches abgewandeltes Widget:
https://gist.github.com/m4p/20cc77b6d9f ... ab6eed0ff3
Erstmal muss openWB die Daten natürlich bereitstellen. Dazu müssen per SSH zwei Skripte auf dem Raspi der oWB abgelegt werden. Macht das also nur wenn ihr wisst was ihr tut!
Die beiden angehängten Skripte „iosWidget.php“ und „iosWidget.py“ müssen auf dem openWB-Raspi in dem Ordner /var/www/html/cust/ abgelegt werden. Das „.txt“ muss entfernt werden! Aus „iosWidget.php.txt“ müsst ihr „iosWidget.php“ machen und aus „iosWidget.py.txt“ müsst ihr „iosWidget.py“ machen.
Kurze Erklärung der Skripte:
Das PHP Skript ruft eigentlich nur das Python Skript auf und leitet die Rückgabe des Python Skripts weiter. Sicher hätte man es auch nur mit einem PHP Skript lösen können, ich arbeite aber lieber mit Python.
Das Python Skript holt sich die Daten aus den entsprechenden Ramdisk-Dateien, und berechnet daraus einige Werte, wie Farbe oder Footnote. Anschließend werden all diese Daten zusammen mit einem Timestamp zu einem Json-String „gebastelt“, der dann an das PHP-Skript zurückgegeben wird.
Die gerade erwähnte Berechnung von Footnote und Farbe der einzelnen Werte hätte ich natürlich auch direkt in der Scriptable-App machen können. Wenn ich dann aber was anpassen wollen würde müsste ich es auf allen Geräten auf denen das Widget angezeigt werden soll einzeln machen. Dadurch, dass diese Berechnungen aber in dem Python-Skript erfolgen muss ich es nur einmal dort anpassen, was die nachträgliche Anpassung etwas vereinfacht.
Das war‘s dann auch schon am openWB-Raspi. Als nächstes muss die Scriptable-App heruntergeladen werden:
https://apps.apple.com/de/app/scriptable/id1405459188
Dann braucht ihr die Datei „PV-Widget.scriptable.txt“. Diese muss wieder umbenannt werden, in „PV-Widget.scriptable“.Entweder das wird dann direkt in der App geöffnet, oder man muss noch auf das Teilen-Symbol klicken und dann Scriptable auswählen.
Um das Widget dann zum Home-Screen hinzuzufügen muss man zum Homescreen zuerst ein Scriptable-Widget hinzufügen. Danach lange auf dieses Widget Tippen um es zu bearbeiten und als Skript PV-Widget auswählen. Alle anderen Werte einfach so lassen.
In der Scriptable-App kann man das Widget dann nach belieben anpassen, z.B. welche Werte angezeigt werden, die Widget-Größe usw.
Was aber angepasst werden MUSS ist einmal die URL wo die Daten herkommen (<IP_der_openWB>/cust/iosWidget.php) und die URL auf die weitergeleitet werden soll wenn auf das Widget getippt wird, also z.B. die Home-Seite von oWB.
Beides sollte in dem Skript eigentlich relativ einfach zu finden sein, ich hab‘s auf jeden Fall mit einem entsprechenden Kommentar versehen.
Was noch suboptimal ist ist die Aktualisierung des Widgets, da dieses nicht so regelmäßig aktualisiert wird, meist irgendetwas zwischen 30 Sekunden und fünf Minuten. Das geht in iOS/Scriptable aber leider nicht anders, weswegen ich den Timestamp anzeige, damit man sieht von wann die Daten sind.
Auch sind es bis jetzt nur PV-,Speicher- und Netzdaten, noch keine Autodaten. Das liegt einerseits daran, dass ich die Autodaten (bis auf den SoC des Autos) nicht so interessant finde, und andererseits daran, dass die Lieferzeiten von E-Autos so verdammt lange sind