├── screenshots ├── 01-start.png ├── 05-pages.png ├── 02-configs.png ├── 03-config.png ├── 04-drawer.png ├── 08-adapter.png ├── 15-scenes.png ├── 16-setup_1.png ├── 17-setup_2.png ├── 18-setup_3.png ├── 19-setup_4.png ├── 20-setup_5.png ├── 21-setup_6.png ├── 22-setup_7.png ├── 06-datapoints.png ├── 07-adapters.png ├── 12-dashboard.png ├── 13-settings.png ├── gif │ ├── 03-config.gif │ └── 23-page-datapoint-sort.gif ├── 09-editdatapoint.png ├── 14-account-settings.png ├── 10-editdatapoint-type.png └── framed │ ├── 01-start_framed.png │ ├── 03-config_framed.png │ ├── 04-drawer_framed.png │ ├── 05-pages_framed.png │ ├── 15-scenes_framed.png │ ├── 02-configs_framed.png │ ├── 07-adapters_framed.png │ ├── 08-adapter_framed.png │ ├── 13-settings_framed.png │ ├── 16-setup_1_framed.png │ ├── 17-setup_2_framed.png │ ├── 18-setup_3_framed.png │ ├── 19-setup_4_framed.png │ ├── 20-setup_5_framed.png │ ├── 21-setup_6_framed.png │ ├── 22-setup_7_framed.png │ ├── 06-datapoints_framed.png │ ├── 12-dashboard_framed.png │ ├── 09-editdatapoint_framed.png │ ├── 14-account-settings_framed.png │ └── 10-editdatapoint-type_framed.png ├── scripts ├── README.md └── trashschedule │ └── trashschedule.js ├── docs ├── view-options.md ├── index.md ├── account.md ├── thermostat.md ├── config.md ├── settings.md ├── iob-pro.md └── dashboard-config.md └── README.md /screenshots/01-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/01-start.png -------------------------------------------------------------------------------- /screenshots/05-pages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/05-pages.png -------------------------------------------------------------------------------- /screenshots/02-configs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/02-configs.png -------------------------------------------------------------------------------- /screenshots/03-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/03-config.png -------------------------------------------------------------------------------- /screenshots/04-drawer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/04-drawer.png -------------------------------------------------------------------------------- /screenshots/08-adapter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/08-adapter.png -------------------------------------------------------------------------------- /screenshots/15-scenes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/15-scenes.png -------------------------------------------------------------------------------- /screenshots/16-setup_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/16-setup_1.png -------------------------------------------------------------------------------- /screenshots/17-setup_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/17-setup_2.png -------------------------------------------------------------------------------- /screenshots/18-setup_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/18-setup_3.png -------------------------------------------------------------------------------- /screenshots/19-setup_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/19-setup_4.png -------------------------------------------------------------------------------- /screenshots/20-setup_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/20-setup_5.png -------------------------------------------------------------------------------- /screenshots/21-setup_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/21-setup_6.png -------------------------------------------------------------------------------- /screenshots/22-setup_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/22-setup_7.png -------------------------------------------------------------------------------- /screenshots/06-datapoints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/06-datapoints.png -------------------------------------------------------------------------------- /screenshots/07-adapters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/07-adapters.png -------------------------------------------------------------------------------- /screenshots/12-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/12-dashboard.png -------------------------------------------------------------------------------- /screenshots/13-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/13-settings.png -------------------------------------------------------------------------------- /screenshots/gif/03-config.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/gif/03-config.gif -------------------------------------------------------------------------------- /screenshots/09-editdatapoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/09-editdatapoint.png -------------------------------------------------------------------------------- /screenshots/14-account-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/14-account-settings.png -------------------------------------------------------------------------------- /screenshots/10-editdatapoint-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/10-editdatapoint-type.png -------------------------------------------------------------------------------- /screenshots/framed/01-start_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/01-start_framed.png -------------------------------------------------------------------------------- /screenshots/framed/03-config_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/03-config_framed.png -------------------------------------------------------------------------------- /screenshots/framed/04-drawer_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/04-drawer_framed.png -------------------------------------------------------------------------------- /screenshots/framed/05-pages_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/05-pages_framed.png -------------------------------------------------------------------------------- /screenshots/framed/15-scenes_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/15-scenes_framed.png -------------------------------------------------------------------------------- /screenshots/framed/02-configs_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/02-configs_framed.png -------------------------------------------------------------------------------- /screenshots/framed/07-adapters_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/07-adapters_framed.png -------------------------------------------------------------------------------- /screenshots/framed/08-adapter_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/08-adapter_framed.png -------------------------------------------------------------------------------- /screenshots/framed/13-settings_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/13-settings_framed.png -------------------------------------------------------------------------------- /screenshots/framed/16-setup_1_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/16-setup_1_framed.png -------------------------------------------------------------------------------- /screenshots/framed/17-setup_2_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/17-setup_2_framed.png -------------------------------------------------------------------------------- /screenshots/framed/18-setup_3_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/18-setup_3_framed.png -------------------------------------------------------------------------------- /screenshots/framed/19-setup_4_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/19-setup_4_framed.png -------------------------------------------------------------------------------- /screenshots/framed/20-setup_5_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/20-setup_5_framed.png -------------------------------------------------------------------------------- /screenshots/framed/21-setup_6_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/21-setup_6_framed.png -------------------------------------------------------------------------------- /screenshots/framed/22-setup_7_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/22-setup_7_framed.png -------------------------------------------------------------------------------- /screenshots/framed/06-datapoints_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/06-datapoints_framed.png -------------------------------------------------------------------------------- /screenshots/framed/12-dashboard_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/12-dashboard_framed.png -------------------------------------------------------------------------------- /screenshots/gif/23-page-datapoint-sort.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/gif/23-page-datapoint-sort.gif -------------------------------------------------------------------------------- /screenshots/framed/09-editdatapoint_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/09-editdatapoint_framed.png -------------------------------------------------------------------------------- /screenshots/framed/14-account-settings_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/14-account-settings_framed.png -------------------------------------------------------------------------------- /screenshots/framed/10-editdatapoint-type_framed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peter9teufel/iobmobile-issues/HEAD/screenshots/framed/10-editdatapoint-type_framed.png -------------------------------------------------------------------------------- /scripts/README.md: -------------------------------------------------------------------------------- 1 | # Skriptsammlung 2 | Hier sollen in Zukunft Skripte gesammelt werden, mit denen die Daten eines Adapters so aufbereitet werden, damit diese gut in IOB Mobile eingebunden werden können. Ein erstes Beispiel dafür ist das "trashschedule" Skript für den gleichnamigen Adapter, dieses bereitet die nächsten Abfuhrtermine anhand der Einstellungen im Skript auf und speichert ein formatiertes JSON im Userdata Ordner unter .iobmobile.trashschedule.trashschedule_events welches mit dem DP Typ JSON verwendet werden kann. 3 | 4 | # Nutzung 5 | Die Skripte sind so aufgebaut, dass zu Beginn des Skriptes (wenn passend) einzelne Parameter angepasst werden können, um das Verhalten des Skriptes an die eigenen Wünsche anzupassen. Die Skripte sind Javascript Dateien (*.js), um diese in ioBroker zu nutzen, kann der Inhalt eines Skriptes einfach in ein neues Javascript in ioBroker kopiert werden. Die für das Skript nötigen Ordner und Datenpunkte im Userdata Ordner werden immer automatisch vom Skript selbst geprüft und angelegt. 6 | 7 | # Skript hinzufügen 8 | Wenn du ein Skript für einen bestimmten Anwendungsfall geschrieben hast und denkst, dass dieses auch anderen Nutzern helfen könnte, dann eröffne am einfachsten ein Issue und stell das Skript rein. Ich überprüfe die Skripte dann, passe diese an, damit der Aufbau und das Format möglichst einheitlich bleibt und stelle sie letztendlich im Ordner 'scripts' hier zur Verfügung. 9 | -------------------------------------------------------------------------------- /docs/view-options.md: -------------------------------------------------------------------------------- 1 | ## Seiten-Darstellung anpassen 2 | Wenn das Dashboard geöffnet ist, können über das Icon rechts in der Navigationsleiste die Darstellungsoptionen für die aktuelle Dashboard-Seite geöffnet werden. Hier kannst du: 3 | * Im Tab "Sortierung" die Reihenfolge der Elemente auf der Seite ändern 4 | * Im Tab "Gliederung" Trennlinien mit Überschriften erstellen 5 | * Im Tab "Navigation" Kacheln mit Titel und Icon zur Navigation auf andere Seiten erstellen 6 | 7 | ### Sortierung 8 | An den Icons rechts neben den einzelnen Einträgen ist erkennbar, ob es sich um einen Datenpunkt, eine Bereichsüberschrift (siehe unten bei "Gliederung") oder eine Navigations-Kachel (siehe unten"Navigation") handelt. Die Sortierung wird einfach per Drag&Drop geändert. 9 | 10 | ### Gliederung 11 | Um eine Seite etwas übersichtlicher zu machen, können Trennlinien mit Bereichsüberschriften erstellt werden. Wird der Text einer Bereichsüberschrift leer gelassen, wird nur die Trennlinie angezeigt. Über das "+" wird ein neues Element für die Gliederung erstellt. Die Elemente werden in der Liste im Tab "Sortierung" angezeigt und können dort je nach Wunsch eingereiht werden. 12 | 13 | ### Navigation 14 | Hier können Kacheln erstellt werden, welche rein zur Navigation benötigt werden. Jede dieser Kacheln hat einen Titel, ein Icon und ein Navigationsziel, dieses wird identisch zu Datenpunkten 15 | konfiguriert, welche zur Sub-Navigation verwendet werden. Die Navigations-Kacheln werden ebenfalls in der Liste im Tab "Sortierung" angezeigt und können somit, wie jede andere Kachel auch, nach Wunsch 16 | eingereiht und platziert werden.:w 17 | 18 | ## Vollbildmodus 19 | Über das Drawermenü kannst du zwischen Vollbildmodus und normalem Modus der App wechseln. Der gewählte Modus wird gespeichert und bleibt auch bei zukünftigen App Starts erhalten. Ein Wechsel des Modus 20 | kann unter Android einen kompletten Neustart der App erfordern (App-Multitasking des Smartphones --> App schließen --> Neu öffnen). Unter iOS wird der Modus nahtlos gewechselt. 21 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | ## Inhalt 2 | * IOB Mobile Account 3 | * Konfiguration 4 | * Dashboard konfigurieren 5 | * Einstellungen 6 | * Darstellungs-Optionen 7 | * IOB Mobile PRO Abo 8 | * Datenpunkt Typ Thermostat 9 | 10 | ## Erste Schritte 11 | Der Start mit IOB Mobile kurz zusammengefasst: 12 | * IOB Mobile Account erstellen und anmelden (optional, bietet jedoch ein paar zusätzliche Funktionen und ein gratis Testzeitraum für das PRO Abo mit allen Funktionen) 13 | * Konfiguration erstellen, um die App mit deinem ioBroker zu verbinden 14 | * Seiten erstellen 15 | * Datenpunkte auswählen und konfigurieren 16 | * Dashboard ansehen und über die Darstellungsoptionen Sortierung und Gliederung verfeinern 17 | 18 | Wichtig ist, dass der SimpleAPI und der SocketIO Adapter in deiner ioBroker Instanz installiert und gestartet sind. Achte außerdem darauf, bei der Konfiguration der App die IP Adresse oder URL zu deiner Instanz 19 | ohne http:// bzw. https:// und ohne Port (also zB. 192.168.1.200 und nicht 192.168.1.200:8081) anzugeben, Protokoll und benötigte Ports ergänzt die App. 20 | 21 | ## Fragen, Wünsche oder Probleme? 22 | Für Fragen oder auch wenn du einen Fehler in der App entdeckts hast oder einen Wunsch für eine Erweiterung hast... hier auf Github bist du dafür goldrichtig. Eröffne jederzeit gerne ein Ticket und es 23 | wird dir geholfen, entweder direkt von mir oder der Community. 24 | 25 | Schau auch gerne auf https://answer.iobmobile.thweb.net vorbei, dort kannst du dich gerne registrieren und Fragen stellen. Der Vorteil der Plattform ist, dass zukünftige User die Fragen einfach 26 | durchsuchen können und sich ebenfalls die Community gegenseitig helfen könnte. 27 | 28 | Last but not least gibt es auch noch einen Thread im ioBroker Forum (https://forum.iobroker.net/topic/75104/iob-mobile-app-f%C3%BCr-android-und-ios), dies sei aber nur der Vollständigkeit halber hier 29 | erwähnt. Der Thread wird doch mit der Zeit sehr unübersichtlich und schwer zu verfolgen, deshalb Fragen, Wünsche oder Fehler lieber als Github Issue oder der IOB Mobile Answer Plattform. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IOB Mobile - Issues 2 | Dieses Repository dient nur dazu, Issues (Fehler, Wünsche, etc.) für IOB Mobile zu erfassen und zu bearbeiten und stellt die Wiki Seiten mit Infos zur Konfiguration und Nutzung bereit. Der Code des Projektes wird nicht in diesem Repository verwaltet. 3 | 4 | ## Wiki 5 | Infos zur Konfiguration und Nutzung von IOB Mobile findest du [in unserem Wiki](https://github.com/peter9teufel/iobmobile-issues/wiki/IOB-Mobile-Quickstart). 6 | 7 | ## Issue erstellen 8 | Gehe zu den [Issues](https://github.com/peter9teufel/iobmobile-issues/issues) um ein neues Issue zu eröffnen. 9 | 10 | **Befolge bitte folgende Hinweise:** 11 | * Suche zuerst, ob es zu deinem Fehler/Wunsch schon ein bestehendes (offenes oder geschlossenes) Ticket gibt 12 | * Wenn es bereits ein passendes Issue gibt, kommentiere bitte in diesem und öffne kein zweites Issue für das gleiche Anliegen 13 | * Wenn es noch kein passendes Issue gibt, öffne gerne ein neues Issue 14 | 15 | **Folgende Informationen soll dein Issue enthalten:** 16 | * Genaue Beschreibung des Fehlers 17 | * Informationen zu deiner Konfiguration (zB. HTTPS ja/nein, Authentifizierung wird verwendet, Konfiguration des betroffenen Datenpunktes wenn zutreffend, etc.) 18 | * Wenn es sich um einen Wunsch für eine Erweiterung handelt, zB. für eines deiner Geräte, füge bitte eine genaue Beschreibung des Gerätes ein, eine Liste der Datenpunkte, sowie eine genau Erklärung wie wir dir helfen können 19 | * Hänge wenn zutreffend Screenshots an, wenn wir dadurch den Fehler besser verstehen können 20 | 21 | ## Ein paar Regeln für den Seelenfrieden 22 | **Gewisse Umgangsformen wären schön, damit wir alle ordentlich miteinander kommunizieren können:** 23 | * Vermeide nur in Großbuchstaben zu schreiben, normale Groß/Kleinschreibung ist perfekt 24 | * Normale Satzzeichen sind ausreichend, wir nehmen eure Anliegen ohnehin ernst, es müssen nicht fünf Rufzeichen im Issue Titel stehen ;-) 25 | * Kommentiere ein Issue nur wenn es tatsächlich was zu sagen gibt, wenn dich ein Fehler auch betrifft, dann zeig uns und den anderen Nutzern das über eine Reaction auf das bestehende Issue und nicht über einen separaten Kommentar mit einem Daumen hoch oder ähnliches, das lässt nur unnötig die Benachrichtigungen überlaufen und macht es schwer den Fortschritt in einem Issue tatsächlich zu verfolgen. 26 | * Sei freundlich, wir geben unser Bestes ;-) 27 | -------------------------------------------------------------------------------- /docs/account.md: -------------------------------------------------------------------------------- 1 | ## User Account 2 | 3 | Beim Start der App kommst du zum Login Screen, hier hast du die Möglichkeit, dich mit deinem IOB Mobile Account anzumelden oder einen neuen Account zu registrieren. Die Registrierung erfordert nur eine gültige E-Mail Adresse und ein selbst gewähltes Passwort. Du erhältst dann einen Link per E-Mail um deinen Account zu aktivieren, dieser Link **muss** auf deinem Gerät mit der installierten IOB Mobile App, auf dem du die Registrierung gestartet hast, geöffnet werden. 4 | 5 | 6 | 7 | IOB Mobile kann natürlich auch ohne User Account genutzt werden, die Registrierung bietet jedoch folgende Vorteile: 8 | * Sicherung aller Konfigurationen inkl. Dashboards im IOB Mobile Account (IOB Pro Abo) 9 | * Die letzten 4 Gesamtbackups deiner Konfigurationen werden aufbewahrt 10 | * Sicherung der gesamten App Konfiguration immer wenn du etwas an deinen Dashboards änderst (die App fragt dich ob du sichern möchtest, du hast immer die freie Wahl ob eine Sicherung im Account stattfinden soll) 11 | * Geräteübergreifende Wiederherstellung der gesamten App Konfiguration inkl. Dashboards 12 | * 30 Tage gratis Testzeitraum für IOB Mobile PRO mit allen App Funktionen (wenn dein automatischer gratis Testzeitraum bei der Registrierung nicht freigeschalten wird, schreib uns an support[at]thweb.net und wir aktivieren die Lizenz für dich) 13 | * Das Abo deiner IOB Pro Lizenz kann auf bis zu 5 Geräten der anderen Plattform geteilt werden, d.h. wenn du abonnierst IOB Pro auf deinem Hauptgerät das du regelmäßig nutzt (zB. unter iOS auf deinem iPhone), immer wenn du die App nutzt wird der Status deiner Lizenz im Account hinterlegt, über deinen IOB Mobile Account kannst du diese PRO Lizenz nicht nur auf all deinen iOS Geräten (und per Family Sharing auf den Geräten deiner Familien Accounts) sondern auch auf bis zu 5 Android Geräten die mit deinem IOB Mobile Account angemeldet sind nutzen! 14 | * zukünftige Erweiterungen für IOB Mobile User: sichern und wiederherstellen einzelner Konfigurationen und Dashboards, exklusiver Vorab Zugriff auf Funktionen 15 | 16 | Mehr Infos zum IOB Pro Abo findest du unter dem Punkt **IOB PRO Abo**. 17 | 18 | ### Account Sharing 19 | Natürlich kannst du deinen Account mit anderen Personen teilen, um deine App Konfiguration über deinen Account auf andere Geräte zu übertragen, bedenke jedoch: 20 | * es wird immer die gesamte App Konfiguration gesichert, teile deinen Account also nur mit Personen, die Zugriff auf deine ioBroker Instanzen haben sollen 21 | * auf Geräten mit deinem eigenen Account wird das Abo ohnehin erkannt und du kannst es auf all deinen eigenen Geräten nutzen 22 | * über deinen IOB Mobile Account wird auch dein IOB PRO Abo geteilt und kann somit auf bis zu 5 Geräten (zB. anderer Familienmitglieder, andere Plattform) genutzt werden, wenn das Limit von 5 Geräten erreicht ist, kann das Abo mit keinem weiteren Gerät mehr geteilt werden, bevor nicht ein Gerät wieder gelöscht wird. 23 | 24 | 25 | -------------------------------------------------------------------------------- /docs/thermostat.md: -------------------------------------------------------------------------------- 1 | # Datenpunkt Typ "Thermostat" 2 | DP Typ "Thermostat", konfiguriert wird der Datenpunkt mit der aktuellen Temperatur. Zusätzlich müssen angegeben werden: 3 | 4 | - Aktueller Status --> Boolean ob die Heizung an oder aus ist, wenn hier ein Datenpunkt gesetzt wird der "null" zurückgibt, geht die Kachel davon aus, dass an/aus nicht angezeigt und gesteuert werden kann und blendet es aus 5 | - Status setzen --> Datenpunkt um an/aus zu setzen, kann identisch zum DP für den aktuellen Status sein oder aber auch unterschiedlich. Wenn der Wert von Aktueller Status null ist, wird Status setzen nicht verwendet 6 | - Aktuelle Zieltemperatur --> die aktuell gesetzte Zieltemperatur 7 | - Zieltemperatur setzen --> DP um die Zieltemperatur zu setzen, kann identisch zu Aktuelle Zieltemperatur sein oder unterschiedlich, je nachdem wie es benötigt wird 8 | 9 | Der letzte DP der konfiguriert werden kann ist für die Presets, dieser ist optional. Der Datenpunkt für die Presets muss ein gültiges JSON Objekt zurückliefern, entweder mit den DP Typ String (Zeichenkette) oder JSON im ioBroker. Der Inhalt muss folgendermaßen aufgebaut sein: 10 | 11 | ``` 12 | { 13 | "presetId": "0_userdata.0.thermostat.active_preset", 14 | "setPresetId": "0_userdata.0.thermostat.active_preset", 15 | "presets": [ 16 | { 17 | "name": "Auto", 18 | "value": 0 19 | }, 20 | { 21 | "name": "Absenkung", 22 | "value": 1 23 | }, 24 | { 25 | "name": "Party", 26 | "value": 2 27 | }, 28 | { 29 | "name": "PV Auto-Modus", 30 | "value": 3 31 | } 32 | ] 33 | } 34 | ``` 35 | 36 | - presetId: Datenpunkt, der das aktuell aktive Preset zurückgibt 37 | - setPresetId: Datenpunkt zum Setzen eines Presets, kann identisch sein zu presetId oder unterschiedlich, je nach Bedarf 38 | - presets: Liste mit Presets, jedes Preset hat: 39 | - - name: Anzeigename 40 | - - value: Wert der in setPresetId geschrieben werden muss, um das Preset auszuwählen 41 | 42 | In der DP Konfiguration sieht das folgendermaßen aus: 43 | 44 | --- 45 | 46 | Image 47 | 48 | --- 49 | 50 | in der UI wird es dann als Thermostat Kachel angezeigt: 51 | 52 | --- 53 | 54 | Image 55 | 56 | --- 57 | 58 | Das Preset kann dann gewechselt werden, dabei wird der Wert in "value" in den DP der in "setPresetId" angegeben ist geschrieben. 59 | 60 | --- 61 | 62 | Image 63 | 64 | ## Zusammengefasst kann die Kachel also: 65 | 66 | - Anzeige der aktuellen Temperatur (+ Modus, wenn Presets konfiguriert sind) 67 | - wenn der Status DP einen boolean liefert ob die Heizung an/aus ist, kann über die Kachel die Heizung an/aus gemacht werden 68 | - Zieltemperatur anzeigen und setzen 69 | - wenn Presets konfiguriert sind: Anzeige aktive Preset und Wechsel zu einem anderen Preset 70 | -------------------------------------------------------------------------------- /docs/config.md: -------------------------------------------------------------------------------- 1 | ## ioBroker Setup 2 | Um IOB Mobile nutzen zu können, musst du in deiner ioBroker Instanz den **simple-api** und den **socketio** Adapter installieren und jeweils eine Instanz hinzufügen. In den Einstellungen der beiden Adapter kannst du die Ports festlegen, diese benötigst du bei der Konfiguration von IOB Mobile. Die Standard Ports sind 8087 bei SimpleAPI und 8084 bei SocketIO. 3 | 4 | Zusätzlich kannst du den MQTT Broker/Client Adapter hinzufügen. Wenn du MQTT nutzt, kannst du mit IOB Mobile Statusinformationen zum Akku deines Geräts via MQTT zu ioBroker senden, so kannst du beispielsweise einen Smartplug an dem dein Smarthome Tablet hängt abhängig vom Akkustand schalten um den Akku regelmäßig zu entladen. Zusätzlich ermöglicht die Nutzung von MQTT das Sichern deiner IOB Mobile Dashboards in ioBroker um diese auf anderen Geräten wiederherzustellen, immer wenn du etwas an einem deiner Dashboards änderst, wird ein Backup dieses Dashboards als Objekt der ersten MQTT Instanz (mqtt.0.*) gespeichert. Die Anzahl an MQTT Backups ist unbegrenzt, wenn du alte MQTT Backups deiner Dashboards löschen möchtest, kannst du das einfach im Objektbaum deiner ioBroker Instanz tun. In den Instanzeinstellungen des MQTT Adapters kannst du wieder den Port, sowie Username und Passwort zur Nutzung von MQTT festlegen. Der Standardport ist 1883. 5 | 6 | Grundsätzlich empfehlen wir, die Standardports zu verwenden, du kannst natürlich auch andere Ports definieren, musst diese dann aber beim Setup von IOB Mobile entsprechend anpassen. 7 | 8 | ## IOB Mobile Konfiguration 9 | 10 | Die Basis deiner Dashboards in IOB Mobile sind die Konfigurationen zum Verbinden mit deiner ioBroker Instanz. Tippe auf das "+" auf dem Startbildschirm um eine Konfiguration zu erstellen. Der Rest sollte selbsterklärend sein, wähle einen Namen für das Dashboard deiner neuen Konfiguration und trage die Einstellungen zum Verbinden mit deiner ioBroker Instanz ein. Die benötigten Ports und Einstellungen hast du vorhin in den simple-api, socketio und mqtt Instanzen festgelegt. Gib deinen Geräten eindeutige MQTT Namen, diese sind wichtig, wenn du Gerätedaten (Ladestand Akku, Status des Akkus, etc.) überträgst, da diese Infos in einem Unterordner im mqtt.0.* Objektbaum mit dem MQTT Namen des jeweiligen Gerätes abgelegt werden. 11 | 12 | Speichere deine Konfiguration wenn alle Einstellungen vorgenommen wurden, die neue Konfiguration scheint nun auf der Startseite auf. Tippe auf eine Konfiguration um sie zu öffnen, tippe lange auf eine Konfiguration um sie zu bearbeiten, zu duplizieren oder zu löschen. 13 | 14 | 15 | 16 | Du kannst für die gleiche ioBroker Instanz mehrere Konfigurationen anlegen um so verschiedene Dashboards für verschiedene Anwendungsfälle zu realisieren. Beispielsweise kannst du ein Dashboard für dein Smartphone erstellen welches eine umfangreiche Steuerung deines Smarthomes erlaubt und ein zweites Dashboard für ein Smarthome Tablet an der Wand, welches schnellen Zugriff auf die wichtigsten Daten und oft genutzte Funktionen oder Szenen bietet. 17 | 18 | 19 | -------------------------------------------------------------------------------- /docs/settings.md: -------------------------------------------------------------------------------- 1 | ## Weitere Einstellungen 2 | 3 | Der Tab *Konfiguration* in den Einstellungen bietet noch folgende weitere Möglichkeiten: 4 | * **Menü fixieren:** nutzt du dein Dashboard auf einem Tablet und diese Option ist aktiviert, wird das Drawer Menü mit der Liste deiner Seiten fix auf der linken Seite angezeigt und muss nicht extra geöffnet werden. 5 | * **Zahlenwerte runden:** wenn aktiviert, werden alle Zahlenwerte in den Dashboard Karten auf ganze Zahlen gerundet, wenn deaktiviert, werden alle Zahlenwerte mit 2 Nachkommastellen angezeigt. 6 | * **PIN Schutz:** du kannst deine gesamte Dashboard Konfiguration mit einem PIN schützen, beim Öffnen der Einstellungen des Dashboards muss dann zuerst dieser PIN eingegeben werden, um das Dashboard zu bearbeiten. So kannst du dein Dashboard zB. mit Familienmitgliedern teilen, stellst aber sicher, dass diese nichts verändern oder gar kaputt machen an deiner Konfiguration. 7 | * **In ioBroker sichern:** erlaubt es dir, das aktuelle Dashboard in ioBroker sichern. Wenn MQTT konfiguriert ist, erfolgt die Sicherung in einem automatisch erstellten Datenpunkt im MQTT Objektbaum, zudem können mehrere Dashboards direkt in ioBroker gesichert und wiederhergestellt werden. Wenn du MQTT nicht nutzt kann immer nur 1 Dashboard direkt in ioBroker gesichert werden, um dies zu tun musst du vorher den Datenpunkt **0_userdata.0.iobmobile.configurations** vom Typ *Zeichenkette* (String) anlegen, in diesem erfolgt dann die Sicherung. 8 | * **Backups in ioBroker anzeigen:** Wenn für deine Konfiguration MQTT aktiviert ist, hast du hier zusätzlich den Menüpunkt *Backups in ioBroker anzeigen*. Dieser öffnet ein Popup mit einer Liste aller in MQTT hinterlegten, automatischen Dashboard Backups für diese ioBroker Instanz. Das neueste Backup ist in der Liste immer ganz oben, anhand des Namens des Backups erkennst du, für welches Dashboard das Backup erstellt wurde. Der Name des Dashboards entspricht immer jenem Namen, den du beim Erstellen der Konfiguration gewählt hast. 9 | 10 | 11 | 12 | ### Account Settings 13 | 14 | Wenn du mit einem IOB Mobile Account angemeldet bist, hast du im Drawer Menü über *Account* bzw. über den Tab *Account* Zugriff auf folgende IOB Mobile Account Funktionen: 15 | * **Status:** zeigt die E-Mail Adresse mit der die App aktuell angemeldet ist 16 | * **IOB PRO Abo:** zeigt ob du ein IOB Pro Abo hast und dessen Status/Gültigkeit 17 | * **Backup prüfen:** lädt verfügbare Backups aus deinem IOB Mobile Account und zeigt Details dazu an 18 | * **Konfiguration sichern:** ermöglicht das manuelle Sichern der gesamten App Konfiguration in deinem IOB Mobile Account 19 | * **Backup wiederherstellen:** lädt wie *Backup prüfen* die verfügbaren Backups und zeigt deren Details an, klicke auf den Haken bei einem Backup um dieses wiederherzustellen 20 | * **Passwort zurücksetzen und Logout:** selbsterklärend ;-) 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /docs/iob-pro.md: -------------------------------------------------------------------------------- 1 | ## IOB PRO Abo 2 | Mit einem IOB PRO Abo unterstützt du die Weiterentwicklung von IOB Mobile und erhältst Zugriff auf alle Funktionen der App. 3 | 4 | Die gratis Version der App enthält: 5 | * 1 Dashboard Konfiguration 6 | * max. 3 Seiten 7 | * bis zu 20 Datenpunkte für dein Dashboard 8 | * die meisten Typen von Datenpunkten für dein Dashboard 9 | 10 | Mit einem IOB PRO Abo erhältst du: 11 | * beliebig viele Dashboard Konfigurationen 12 | * beliebig viele Dashboards für die gleiche ioBroker Instanz 13 | * Erstellen beliebiger Dashboards für mehrere ioBroker Instanzen 14 | * alle Typen von Datenpunkten inkl. Kamera-Streams und Mediensteuerung für Alexa und Sonos 15 | * Backup/Restore der gesamten App Konfiguration über deinen IOB Mobile Account 16 | * Backup/Restore deiner Dashboard Konfiguration direkt über ioBroker, entweder als einzelnes Dashboard über den manuell erstellten Datenpunkt **0_userdata.0.iobmobile.configurations** oder mehrere Dashboards wenn du MQTT nutzt 17 | * Zugriff auf alle zukünftigen Erweiterungen und Funktionen von IOB Mobile 18 | 19 | ### Ein Abo für Allest 20 | Es gibt genau **ein** IOB PRO Abo welches alle Funktionen freischaltet, daran wird sich auch in Zukunft nichts ändern. Dieses Abo bietet dir uneingeschränkten Zugriff auf alle zukünftigen Erweiterungen. Außerdem kannst du jederzeit über unseren Issue Tracker Wünsche für Erweiterungen einreichen, dabei werden die Wünsche von IOB PRO Abo Nutzern höher priorisiert. 21 | 22 | ## Fehler, Bugs und Wünsche für Erweiterungen 23 | Wenn du Fehler in der App findest, eine Idee für eine Erweiterung der App hast oder ein spezielles Gerät hast, welches noch nicht optimal unterstützt wird (zB. eine andere Art von Rollladen Aktor), dann öffne gern ein neues Issue in unserem Issuetracker. Wir finden natürlich nicht alle Fehler selbst und so mancher Nutzer kommt auf Ideen die wir selbst noch nicht hatten. So haben wir eure Ideen, Wünsche und Bugreports an einem Punkt gesammelt und können uns bestmöglich darum kümmern. Für Wünsche zu Erweiterungen und neuen Geräten geben wir hier IOB PRO Abonennten höhere Prioriät, da diese die Entwicklung aktiv unterstützen. Bei Fehlern gilt dies natürlich nicht. 24 | 25 | ## Skripte 26 | Es macht nicht immer Sinn jeden Adapter oder Gerätetyp direkt zu unterstützen, oft lassen sich die gewünschten Daten problemlos mit einem Skript in Userdata Datenpunkten ioBroker aufbereiten, damit 27 | diese dann in der App eingebunden und angezeigt werden können. Wenn du für einen Adapter ein solches Skript geschrieben hast, lass es uns gerne zukommen. Hier im Issue Repo gibt es einen Ordner 28 | "scripts", in diesem sollen, nach Adaptern sortiert, Skripte gesammelt werden. So finden andere IOB Mobile Nutzer schneller ans Ziel. Die Skripte werden gegebenenfalls noch etwas angepasst, damit 29 | diese möglichst einheitlich sind und sich über ein paar Variablen am Beginn des Skriptes konfigurieren lassen. 30 | 31 | Ein erstes Beispiel dafür gibt es bereits für den Trashschedule Adapter. 32 | 33 | 34 | ## Warum ist IOB Mobile nicht Open Source? 35 | Über diese Entscheidung wurde lange nachgedacht, um eine native App für iOS zu veröffentlichen wird ein kostenpflichter Developer Account benötigt, das Backend für die Accountverwaltung verursacht ebenfalls Kosten und gerade in der Startphase der App ist mir die Kontrolle über die Weiterentwicklung sehr wichtig. Daher fiel die Entscheidung, die App als Closed Source zu betreiben. Durch die Unterstützung durch treue Nutzer soll die Weiterentwicklung sichergestellt werden, wobei der einzelne Nutzer nur einen minimalen Beitrag leistet, 99 Cent pro Monat erschienen hier als fair. Zudem ermöglicht dieser Weg ein kontrolliertes Wachstum, ist das Interesse groß und die Nutzerzahlen steigen, ermöglicht uns das kontrolliert Entwickler ins Boot zu holen um die Entwicklung weiter voran zu treiben. 36 | 37 | ## Gibt es eine Lifetime Lizenz? 38 | Grundsätzlich nicht, wobei es technisch schon mal vorbereitet ist. Es ist durchaus möglich, dass zukünftig zusätzlich zum monatlichen Abo noch Optionen für ein jährliches Abo und eine Lifetime Lizenz hinzu kommen. Lifetime Lizenzen für Apps die auch Cloudfeatures über einen User Account anbieten sind immer etwas schwierig in der Preisgestaltung, da schlicht und einfach der laufende Betrieb Kosten verursacht. 39 | 40 | -------------------------------------------------------------------------------- /scripts/trashschedule/trashschedule.js: -------------------------------------------------------------------------------- 1 | // SCRIPT SETTINGS ############################################################################################################################### 2 | /* 3 | SCRIPT SETTINGS: 4 | Adapt these settings to match your desired configuration 5 | SHOW_WEEKDAY: if true, the date string contains the weekday for example in format "MO, 02.09.2024" or "Montag, 02.09.2024" 6 | USE_SHORT_WEEKDAY: if true the weekday is shown abbreviated, e.g. "MO", "DI", ..., if false the weekday is shown in full length, e.g. "Montag", "Dienstag", ... 7 | NUM_NEXT_EVENTS: maximum number of upcoming trashschedule events to be saved in the result JSON 8 | TRASHSCHEDULE_INSTANCE_NUMBER: trashschedule instance number in case you have more instances 9 | NUM_DAYS_INSTEAD_OF_DATE: if the event is tomorrow, the date string is replaced by "Morgen", if the days left to the event is within NUM_DAYS_INSTEAD_OF_DATE, the date string is replaced by "in X Tagen" 10 | TRASHSCHEDULE_DATAPOINT_TYPE: default is 'string' so the value can be easily viewed in the objects tree in iobroker admin 11 | */ 12 | const SHOW_WEEKDAY = true; 13 | const USE_SHORT_WEEKDAY = true; 14 | const NUM_NEXT_EVENTS = 4; 15 | const TRASHSCHEDULE_INSTANCE_NUMBER = 0; 16 | const NUM_DAYS_INSTEAD_OF_DATE = 2; 17 | const TRASHSCHEDULE_DATAPOINT_TYPE = 'string'; 18 | 19 | 20 | // SCHEDULE ####################################################################################################################################### 21 | /* 22 | Scheduling of automatic updates, first digit is the minute, second digit is the hour of day, default update is daily at 3:00 23 | If the default schedule does not fit your needs, feel free to add more schedules or adapt the default one 24 | If you are not familiar with this syntax, google "cron syntax" ;-) 25 | */ 26 | schedule('0 3 * * *', runUpdate); 27 | 28 | 29 | // DATAPOINTS ##################################################################################################################################### 30 | /* 31 | Paths for the datapoint where the result JSON is saved in userdata, do not modify if you don't know what you are doing ;-) 32 | */ 33 | const ID_USERDATA_IOB_MOBILE_DIR = '0_userdata.0.iobmobile'; 34 | const ID_USERDATA_TRASHSCHEDULE_DIR = ID_USERDATA_IOB_MOBILE_DIR + '.trashschedule'; 35 | const ID_USERDATA_IOB_MOBILE_TRASHSCHEDULE_JSON = ID_USERDATA_TRASHSCHEDULE_DIR + '.trashschedule_events'; 36 | 37 | 38 | 39 | 40 | 41 | // ################################################################################################################################################ 42 | // ################################################################################################################################################ 43 | // ################################################################################################################################################ 44 | // ################################################################################################################################################ 45 | // ################################################################################################################################################ 46 | // ################################################################################################################################################ 47 | // ################################################################################################################################################ 48 | // ################################################################################################################################################ 49 | // ################################################################################################################################################ 50 | // DANGER ZONE #################################################################################################################################### 51 | // DO NOT CHANGE ANYTHING BELOW! ################################################################################################################## 52 | // Below is where the magic happens, DO NOT CHANGE ANYTHING BELOW except you know what you are doing ############################################## 53 | // ################################################################################################################################################ 54 | 55 | // id to datapoint that contains a JSON with all upcoming trashschedule events 56 | const ID_TRASHSCHEDULE_TYPES = 'trashschedule.' + TRASHSCHEDULE_INSTANCE_NUMBER + '.type.json'; 57 | 58 | // array of weekdays for display output 59 | const WEEKDAYS = ['SO', 'MO','DI','MI','DO','FR','SA']; 60 | const WEEKDAYS_LONG = ['Sonntag', 'Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag']; 61 | 62 | // call runUpdate() when the script is started or saved 63 | runUpdate(); 64 | 65 | // function creates paths and datapoint if necessery and calls updateJson() 66 | function runUpdate(){ 67 | createFolderIfNotExists(ID_USERDATA_IOB_MOBILE_DIR); 68 | createFolderIfNotExists(ID_USERDATA_TRASHSCHEDULE_DIR); 69 | createDatapointIfNotExists(ID_USERDATA_IOB_MOBILE_TRASHSCHEDULE_JSON, '{}', 'Trashschedule Termine', TRASHSCHEDULE_DATAPOINT_TYPE, 'value', function(){ 70 | // run update JSON in callback in case the datapoint did not exist and was newly created 71 | updateJson(); 72 | }); 73 | // run update JSON in case the datapoint already existed and has not been created, thus the state created callback was not triggered 74 | updateJson(); 75 | } 76 | 77 | function createFolderIfNotExists(id, name){ 78 | if(!existsObject(id)){ 79 | setObject(id, {type: 'channel', common: {name: name}, native: {}}) 80 | } 81 | } 82 | 83 | function createDatapointIfNotExists(id, initial, name, dataType, role = 'value', setStateCallback = () => {}){ 84 | if (!existsState(id )) { 85 | createState(id,initial,{name: name, type: dataType, role: role}, setStateCallback); 86 | } 87 | } 88 | 89 | function updateJson(){ 90 | let data = getState(ID_TRASHSCHEDULE_TYPES).val; 91 | let jsonData = JSON.parse(data); 92 | let result = {}; 93 | for(var i = 0; i < jsonData.length && i < NUM_NEXT_EVENTS; i++){ 94 | let e = jsonData[i]; 95 | let d = new Date(e.nextDate); 96 | let dStr = formatDate(d); 97 | if(e.daysLeft == 0){ 98 | dStr = 'Heute'; 99 | }else if(e.daysLeft == 1){ 100 | dStr = 'Morgen'; 101 | }else if(e.daysLeft <= NUM_DAYS_INSTEAD_OF_DATE){ 102 | dStr = 'in ' + e.daysLeft + ' Tagen'; 103 | } 104 | result[e.name] = dStr; 105 | } 106 | let newData = result; 107 | if(TRASHSCHEDULE_DATAPOINT_TYPE == 'string'){ 108 | newData = JSON.stringify(result); 109 | } 110 | setState(ID_USERDATA_IOB_MOBILE_TRASHSCHEDULE_JSON, newData, true); 111 | } 112 | 113 | function formatDate(date){ 114 | const options = {year: 'numeric', month: '2-digit', day: '2-digit'}; 115 | if(SHOW_WEEKDAY){ 116 | let wd = WEEKDAYS[date.getDay()]; 117 | if(!USE_SHORT_WEEKDAY){ 118 | wd = WEEKDAYS_LONG[date.getDay()]; 119 | } 120 | return wd + ', ' + date.toLocaleDateString('de-DE', options); 121 | } 122 | return date.toLocaleDateString('de-DE', options); 123 | } -------------------------------------------------------------------------------- /docs/dashboard-config.md: -------------------------------------------------------------------------------- 1 | ## Dashboard konfigurieren 2 | Ein Dashboard in IOB Mobile ist simpel aufgebaut, du erstellst Seiten, wählst dann Datenpunkte aus deinem ioBroker und weist diese jeweils einer Seite zu. Um dein Dashboard zu konfigurieren öffne das Drawer Menü links und klicke auf Einstellungen, alternativ kannst du auch im Dashboard rechts oben auf das Einstellungs Icon klicken, dieses öffnet die Einstellungen und filtert die Datenpunkte bereits nach der aktuell angezeigten Seite. 3 | 4 | ### Ablauf 5 | Der Ablauf um dein Dashboard zu erstellen ist simpel: 6 | * Erstelle deine benötigten Seiten 7 | * Wähle im Tab den gewünschten Adapter 8 | * Füge einzelne Datenpunkte aus dem Adapter zu Seiten hinzu 9 | * Jeder Datenpunkt kann konfiguriert werden und einer oder mehreren Seiten hinzugefügt werden 10 | * Für jeden Datenpunkt wählst du den passenden Typ aus 11 | * Schließe die Einstellungen um zu deinem Dashboard zu gelangen, die Seiten deines Dashboards werden als Liste im Drawer Menü angezeigt 12 | 13 | 14 | 15 | 16 | 17 | 18 | Im Folgenden sind die einzelnen Schritte nochmal genauer erklärt. 19 | 20 | ### Schritt 1: Seiten erstellen 21 | Der erste Schritt für dein Dashboard ist das Erstellen von Seiten, wechsle dazu zum Tab "Seiten" und füge über das "+" neue Seiten hinzu. Für jede Seite wählst du einen Namen und ein Icon aus. Die Reihenfolge, in der deine Seiten im Menü angezeigt werden, kannst du bearbeiten indem du lange auf eine Seite tippst und diese per Drag & Drop an die neue Position ziehst. 22 | 23 | Eine Seite kann als Unterseite einer anderen Seite definiert werden, Unterseiten werden entweder so wie Fullscreen Widgets als Tab, oder wenn ausgewählt mit eigener Überschrift als Bereich auf der Hauptseite angezeigt. Eine Besonderheit bei Unterseiten ist, dass die Hauptseite nicht angezeigt wird wenn ihr keine Datenpunkte zugewiesen sind, d.h. man kann zB. eine Seite "Multimedia" als Hauptseite erstellen. "Multimedia" enthält jedoch keine Datenpunkte sondern nur Unterseiten für "Wohnzimmer", "Schlafzimmer" und "Terrasse". Im Menü hat man somit als Seite "Multimedia" zur Auswahl, öffnet man diese erhält man die Tabs für die Unterseiten, die leere Hauptseite wird nicht angezeigt. Enthält die Hauptseite ebenfalls Datenpunkte, wird diese natürlich wie gewohnt dargestellt. 24 | 25 | Jede Seite kann ihr Design selbst festlegen, um es etwas zu vereinfachen, kann das Design einer anderen Seite kopiert werden. Die verfügbaren Optionen sind: 26 | * Hintergrundfarbe oder alternativ Hintergrundbild für die Seite 27 | * Hintergrundbild kann weichgezeichnet und/oder abgedunkelt werden 28 | * Kacheln können halbtransparent angezeigt werden 29 | * Hintergrundfarbe für die Kacheln 30 | * Vordergrundfarbe für die Kacheln 31 | * optional: Rahmenfarbe und Rahmenstärke für die Kacheln 32 | 33 | ### Schritt 2: Datenpunkte hinzufügen 34 | Als nächstes wechselst du zum Tab "Adapter", dort siehst du eine Liste all deiner Adapter. Über das Suchfeld oben kannst du die Liste der Adapter filtern. Klicke auf einen Adapter um diesen zu öffnen und dessen Objekte und Datenpunkte anzuzeigen. Die Liste aus Objekten und Datenpunkten kannst du ebenfalls über das Suchfeld oben filtern. Datenpunkte die bereits hinzugefügt wurden sind mit einem Haken gekennzeichnet. Klicke auf das "+" bei einem Datenpunkt um diesen hinzuzufügen. Im Popup kannst du den Datenpunkt für dein Dashboard beliebig umbenennen und einer oder mehrerer Seiten zuweisen. Unter dem Namensfeld werden anhand der Objekt ID des Datenpunktes Vorschläge gemacht die du per Klick als Name übernehmen kannst. Tippe lange auf einen Vorschlag um diesen an den derzeitigen Namen hinten anzuhängen. Die Größe bestimmt wie viel Platz die Karte des Datenpunktes einnimmt, für einzelne Werte eignet sich 1x1 sehr gut, für größere Widgets wie zum Beispiel Kamerastreams machen größere Karten durchaus Sinn. Auf Smartphones wird die Größe automatisch angepasst, da hier nur eine maximale Breite von 2 möglich ist. Über den Typ des Datenpunktes legst du fest, wie dieser im Dashboard dargestellt wird, jeder Typ enthält auch direkt in der App eine Kurzbeschreibung: 35 | * Einzelwert: ein einzelner Wert (zB. Temperatur), die Einheit (zB. °C etc.) kann festgelegt werden 36 | * On/Off Button: für Datenpunkte die zwischen *true* und *false* geschalten werden, zB. der State eines Shelly 1L 37 | * Taster: für Taster Datenpunkte, die per kurzem Trigger auf *true* auslösen 38 | * Slider: klassisch für Dimmer, zeigt einen Slider um den Dimmerwert zu ändern 39 | * Dimmer Switch: für Dimmer, wenn du diese wie einen On/Off Schalter steuern möchtest und nicht per Slider 40 | * Homematic Rollladen: wähle diesen Typ für den *LEVEL* Datenpunkt eines Homematic Rollladen Aktors um einen Rollladen Schalter (hoch, runter, stopp) anzuzeigen 41 | * Shelly 2.5 Rollladen: wie Homematic Rollladen jedoch für Shelly 2.5 Level Datenpunktes zur Steuerung des Rollladens 42 | * Tür/Fensterkontakt: selbsterklärend, ein Kontakt der offen oder geschlossen sein kann, Icon frei wählbar 43 | * Boolean Wert: ein beliebiger Status der als boolean Wert in ioBroker hinterlegt ist, die Anzeigewerte für *true* und *false* können frei gewählt werden, ein Beispiel: online Status deines Homeservers als boolean Status --> Anzeige von *Online* oder *Offline* 44 | * HTML: für Datenpunkte in denen entweder ein HTML String oder eine URL hinterlegt ist, ich nutze das beispielsweise, um mir ein Strompreisdiagramm für aWATTar per Skript zu hinterlegen und dann anzuzeigen. Zudem können Datenpunkte des E-Charts Adapters mit dem Typ HTML (bzw. Full Screen HTML) angezeigt werden 45 | * Full Screen HTML: wie HTML jedoch wird im Dashboard auf der gewählten Seite ein eigener Tab für die Fullscreen Anzeige des HTML erzeugt, die restlichen Datenpunkte der Seite (sofern welche vorhanden sind) liegen in einem zweiten Tab. Dieser Typ kann dazu genutzt werden, um Dashboards (Grafana, Flot, VIS, etc.) in IOB Mobile einzubinden, zudem können E-Charts Datenpunkte damit konfiguriert werden 46 | * Kamera Stream: hinterlege in einem Datenpunkt die URL zu deinem Kamerastream und wähle diesen Datenpunkt mit Typ Kamera Stream um den Stream in deinem Dashboard einzubinden. Unterstützt werden sowohl MJPEG (zB. MotionEye, viele IP Kameras) als auch RTSP Streams 47 | * Kamera Fullscreen Stream: wie Kamera Stream doch wieder mit eigener Seite zur großen Darstellung wie bei Fullscreen HTML 48 | * Text: für Datenpunkte die Text enthalten, verhält sich ähnlich wie Einzelwert, jedoch wird der Text bis zu einer gewissen Größe runterskaliert um die Darstellung auf der Kachel zu gewährleisten. 49 | * Bild: für Datenpunkte die den relativen Pfad zu einem Bild in ioBroker wie zB. Icon vom Adapter dasWetter (wird über den Web Adapter per http://:8082 geladen) oder eine URL zu einem Bild im Web/Netzwerk (URL im Datenpunkt startet mit http:// bzw. https://). Bild kann skaliert werden oder die Kachel komplett ausfüllen, der Name des Datenpunktes kann als Overlay angezeigt werden. 50 | * Eigenen Wert schreiben: schreibt beim Klick der Kachel einen eigenen Wert in den jeweiligen Datenpunkt, der Wert kann entweder fix in der Konfiguration des Datenpunktes hinterlegt werden oder leer gelassen werden. Es kann entweder ein Wert hinterlegt werden, oder mehrere Werte mit Komma getrennt. Werden mehrere Werte hinterlegt, müssen zusätzlich Namen für die Werte (ebenfalls mit Komma getrennt) angegeben werden. Beim Klick auf die Kachel wird ein einzelner Wert sofort gesendet, sind mehrere Werte hinterlegt, kommt ein Popup, in welchem man auswählt, welcher der vordefinierten Werte gesendet werden soll. Ist der Wert leer, wird dieser beim Klick auf die Kachel eingegeben, somit kann bei jedem Klick ein anderer Wert gesendet werden 51 | * Mehrere Werte: erlaubt die Anzeige der Werte von mehreren Datenpunkten in einer Kachel 52 | * RGB: Als Typ RGB muss der On/Off State der RGB Lampe zur Konfiguration verwendet werden, es kann dann ausgewählt werden, über welche Datenpunkte die Lampe gesteuert wird (Helligkeit und Datenpunkte je nach RGB Typ: HEX Farbwert, HSV, RGB). Die RGB Kachel zeigt dann in einer Kachel kombiniert einen On/Off Switch, einen Button um ein Popup mit Helligkeits-Slider zu öffnen sowie die aktuelle Farbe welche per Klick eine Farbauswahl öffnet. 53 | * Mediensteuerung Sonos/Alexa: zur Steuerung der aktuellen Wiedergabe auf einem Sonos- oder Alexa Speaker. 54 | * Homematic IP Thermostat 55 | 56 | Für manche Typen kann noch ausgewählt werden: 57 | * Boolean Werte farbig: Werte von Boolean Datenpunkten können farbig dargestellt werden, die Farben für true/false können dabei selbst gewählt werden 58 | * Min/Max Werte (Slider) --> enthält der Datenpunkt in ioBroker Min/Max Werte, so werden diese beim Hinzufügen des Datenpunktes geladen. Wurde ein Slider vor dem Hinzufügen dieser Funktion erstellt kann dies über "Default Min/Max Werte wiederherstellen" nachgeholt werden. Definiert der Datenpunkt in ioBroker Min/Max Werte, so müssen die gewählten Min/Max Werte in diesem Bereich liegen. 59 | * Zeitpunkt der letzten Änderung anzeigen (On/Off, Taster, Einzelwert, Text) 60 | * Werte anzeigen (Slider) --> zeigt zusätzlich den aktuellen Wert des Sliders sowie eine Beschriftung. 61 | * Werte anzeigen (Eigenen Wert schreiben) --> auf der Kachel wird der aktuelle Wert des Datenpunktes angezeigt, ist dies deaktiviert, wird ein Icon angezeigt (analog zum Typ Taster) 62 | * Bild skaliert oder Kachel komplett ausfüllen (Bild) --> Darstellung vom Datenpunkt Typ Bild 63 | * Dezimalstellen (Einzelwert) --> mit wie vielen Dezimalstellen soll ein Zahlenwert dargestellt werden, diese Einstellung hat keine Auswirkung wenn in den allgemeinen Einstellungen der Konfiguration die Option "Zahlenwerte runden" aktiviert ist 64 | * Änderung schützen --> überall da, wo auch was gesteuert wird über eine Kachel (On/Off Button, Taster, usw.) kann durch diese Option die Ausführung des Befehls durch vorherige Abfrage der Smartphone/Tablet Authentifizierung (Face/Touch ID bzw. Fingerprint) oder alternativ durch Eingabe des Konfigurations-PIN (muss im Tab "Konfiguration" --> PIN Schutz aktiviert sein) geschützt werden. Dies dient einerseits der Sicherheit, andererseits kann man so das versehentliche Auslösen von sensiblen Aktionen vermeiden 65 | * Sub-Navigation erlaubt die Navigation zu anderen Seiten in der App oder einer URL die in einem DP hinterlegt ist 66 | * Trigger Einstellungen: manche DP Typen erlauben es, einen anderen Datenpunkt als Triggerziel zu konfigurieren, so kann zB. der Status der Lampe angezeigt werden, tippt man auf die Kachel wird zuum 67 | Schalten der Lampe jedoch ein anderer Datenpunkt verwendet. 68 | 69 | **Disclaimer: **die App wird laufend für die Wünsche der User erweitert, verzeiht es mir also bitte, wenn es also mal Einstellungen gibt, die es noch nicht auf die Wiki Seite geschafft haben. Nach 70 | bisheriger Erfahrung ist das ca. ständig so 😄 71 | 72 | Speichere zum Schluss deinen Datenpunkt mit Klick auf "Speichern". 73 | 74 | Die Reihenfolge der Datenpunkte konnte früher per langem Tippen mit Drag & Drop angepasst werden, du kannst die Datenpunkte weiterhin sortieren, dies hat jedoch nur mehr Auswirkung auf die Liste in den Einstellungen. Die Sortierung der Datenpunkte auf den einzelnen Seiten kann nun individuell angepasst werden, mehr dazu weiter unten. 75 | 76 | Über das Filter-Icon rechts oben, kannst du Liste der Datenpunkte filtern um nur jene einer bestimmten Seite anzuzeigen. Wenn du die Einstellungen nicht über das Drawer Menü sondern über das Einstellungen Icon rechts oben im Dashboard öffnest, wird die Liste der Datenpunkte automatisch für die zuletzt geöffnete Seite des Dashboards gefiltert, so kannst du schneller gezielt eine Seite bearbeiten. 77 | 78 | ### Schritt 3: Dashboard ansehen 79 | 80 | Wenn du Seiten erstellt und deine ersten Datenpunkte hinzugefügt hast, verlasse die Einstellungen per Klick auf das Zurück-Icon links oben. Wenn du etwas geändert hast und mit einem IOB Mobile Account angemeldet bist, wirst du gefragt ob du deine gesamte App Konfiguration im Account sichern möchtest. Du kommst direkt zum Dashboard mit deinen Seiten und Datenpunkten. 81 | 82 | 83 | 84 | Über das Sortier-Icon in der Navigationsleiste kannst du die Anordnung der Datenpunkte auf der aktuell sichtbaren Seite nach deinen Wünschen anpassen, sowie Trennlinien mit Bereichstiteln und eigene 85 | Kacheln die rein nur der Navigation dienen einfügen. Mehr dazu findest du bei der Erklärung zu den Darstellungs Optionen von Dashbaord Seiten. 86 | 87 | 88 | 89 | ### Dashboard schließen 90 | Wähle im Drawer Menü *Dashboard schließen* um das aktuelle Dashboard zu schließen und zurück zur Startseite zu gelangen. Wenn du die App öffnest und das zuletzt geöffnete Dashboard nicht erreichbar ist wird dieses automatisch geschlossen. 91 | 92 | 93 | --------------------------------------------------------------------------------