Seite 1 von 2

[gelöst] Widget für Tankerkönig

Verfasst: 29. Aug 2022 14:51
von scotty
Mal eine Frage an die Experten unter euch: mit diesem Befehl bilde ich in einer HTML-Datei ein Icon ab, dass im Verzeichnis "/OH3/conf/html/bilder" abgelegt ist.

Code: Alles auswählen

<td style="min-width:50px" align="center"><img src="https://xxx.xxx.xxx.xxx:yyyy/static/bilder/shell.svg" width="32" height="32"></img></td>
wobei "img src=" für die Verwendung von Bildern benutzt wird.

Weiß jemand wie die Zeile formuliert werden muss, wenn der Inhalt eines Items dort abgebildet werden soll?

Einsatz von OH 3.3 im Docker

Re: Widget für Tankerkönig

Verfasst: 29. Aug 2022 15:53
von udo1toni
Da gibt es keine allgemeingültige Antwort.

Re: Widget für Tankerkönig

Verfasst: 29. Aug 2022 17:30
von scotty
Vielleicht hat sich jemand trotzdem damit schon einmal beschäftigt und etwas heraus gefunden. Mir ist es ja mit dem abbilden von Images auch gelungen.

Re: Widget für Tankerkönig

Verfasst: 29. Aug 2022 18:03
von udo1toni
Ja, aber das ist etwas völlig anderes. Jetty ist so konfiguriert, dass es statische Inhalte aus dem Verzeichnis /etc/openhab/html ausliefert. Wenn man nun selbst Inhalte in diesem Verzeichnis anlegt, kann man den Pfad leicht angeben. Item Status sind etwas komplett anderes. Und wenn Du nun in der Main UI etwas bastelst, kannst Du leicht die integrierten Funktionen verwenden, genauso in der Sitemap oder auch in HABPanel, ja sogar extern ist es kein Problem, die Status abzubilden. Aber eben in jedem der Bereiche unterschiedlich.

Re: Widget für Tankerkönig

Verfasst: 29. Aug 2022 20:00
von scotty
Ich habe da etwas gefunden:

Code: Alles auswählen

 <script src="myscripts.js"></script> 
Das wäre eine Möglichkeit. Beim Aufbau der Scriptdatei bräuchte ich allerdings Hilfe. Lässt sich ein Item-Status überhaupt per JavaScript abfragen?

Re: Widget für Tankerkönig

Verfasst: 29. Aug 2022 23:22
von udo1toni
Du kannst einen API Aufruf einbauen. Dazu brauchst Du curl oder was vergleichbares

Re: Widget für Tankerkönig

Verfasst: 30. Aug 2022 00:38
von scotty
Ich habe allerdings keine Vorstellung, wie der API Aufruf zu realisieren ist.

Update: vermutlich über den API Explorer. Ich suche noch nach einer Anleitung...

Update2: in der Dokumentation unter "openHAB REST API" finde ich zwar Beispiele, die helfen mir aber nicht wirklich.

Re: Widget für Tankerkönig

Verfasst: 30. Aug 2022 08:34
von udo1toni
Na, Du gehst in die Entwicklertools und generierst den API-Aufruf. Um z.B. den Status eines Items abzufragen, brauchst Du (logischerweise) den Namen des Items.
Dann gehst Du in die Main UI->Administration->Entwickler Tools->API Explorer->Items->Get /items/{itemname}/state->Try it Out (rechte Seite)
Itemname im Feld eintragen -> Execute

Im Ergebnis erhältst Du einen curl Aufruf der einen Authorization Bearer enthält, genau wie die eigentliche URL für den Zugriff auf den Wert.

Aber wo ich so auf den Titel des Topics schaue: Innerhalb eines Widgets (welches in der Main UI verwendet wird) greifst Du völlig anders auf die Items zu. Schau Dir einfach andere Widgets an, das ist ja eine absolute Basis Funktion, die jedes Widget hat.

Re: Widget für Tankerkönig

Verfasst: 30. Aug 2022 13:30
von scotty
Ich habe schon einige Personal Widgets gebaut und weiß daher, dass man eigentlich anders auf Items zugreift. In diesem Fall verhält es sich doch etwas spezieller. Unter Openhab 2.5 hatte ich die Vor-Vorgängerversion hier schon einmal zu Verfügung gestellt.

https://openhabforum.de/viewtopic.php? ... nig#p23090

Da ich unter OH3.x nicht mehr mit Habpanel arbeite, musste das Ganze umgeschrieben werden. Den Code für die Karte konnte ich übernehmen und auch alles, was keinen Zugriff auf OH3-Daten benötigt. Dafür habe ich übergangsweise mit einem 2. Widget gearbeitet, was (ehrlich gesagt) etwas bescheiden aussieht. Man bekommt z. B. die zusammengehörenden Zeilen nie korrekt auf eine Höhe.

Weil die im Eröffnungsthread gezeigte Zeile im HTML-Teil der alten Karte funktioniert und mir Programmierkenntnisse fehlen kam ich auf die Idee, die fehlenden Item-Werte auf eine ähnliche Art anzeigen zu lassen wie das Bild im Et.

So, nun habe ich mal etwas genauer erklärt, warum ich diesen Weg gehe. Es wurden auch schon andere Möglichkeiten getestet, die aber allesamt nicht funktionierten. Wenn jemand noch Tipps hat - ich bin gerne bereit zu testen.

Bis dahin versuche ich mal den Vorschlag von Udo mit dem API-Aufruf hin zu bekommen.

Re: Widget für Tankerkönig

Verfasst: 30. Aug 2022 16:52
von scotty
So, den API Aufruf für ein Item habe ich mittels "Execute" erstellt. Jetzt kann ich natürlich weitere Versuche anstellen, aber ich frage lieber mal:
wie geht es weiter? Ich vermute mal, dass das Ergebnis des curl Aufrufes in einer js-Datei gespeichert wird und diese dann unter Skripte abgelegt wird? Könnte ich in mit einer js-Datei mehrere curl Aufrufe speichern?

Kennt sich jemand aus?