Openweatermap Icons in Basic UI

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

papet
Beiträge: 21
Registriert: 4. Jan 2024 08:48
Answers: 0

Openweatermap Icons in Basic UI

Beitrag von papet »

Ich möchte gerne die openweathermap icons in meiner Sitemap darstellen und habe dazu folgende Rule gefunden:

import javax.imageio.ImageIO;
import java.io.File;

rule "Weather Condition Icons"
when
Member of OpenWeatherMap_Icon changed
then
if(triggeringItem.state != NULL) {
val cmd = "/etc/openhab/scripts/base642png.sh " + triggeringItem.name.replace("_Icon","").replace("owmCondition_","").toLowerCase + " \"" + triggeringItem.state.toFullString.replace("data:image/png;base64,","") + "\""
//logWarn("DEBUG",cmd)
executeCommandLine(cmd,2000)
}
end

Ich bekomme 3 Fehlermeldungen

"The import 'javax.imageio.ImageIO' is never used"
"The import 'java.io.File' is never used"
executeCommandLine(cmd,2000)
bringt "Type mismatch: cannot convert from int to String"

Was mache ich falsch?

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Openweatermap Icons in Basic UI

Beitrag von udo1toni »

Warum?
Nimm einfach ein Image Item und verlinke es direkt mit dem passenden Channel ...#icon. In der Sitemap verwendest Du ebenfalls ein Image Widget
Alternativ kannst Du auch alle Items herunterladen und passend benennen, so dass Du über die Icon ID das passende Icem darstellen kannst.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

papet
Beiträge: 21
Registriert: 4. Jan 2024 08:48
Answers: 0

Re: Openweatermap Icons in Basic UI

Beitrag von papet »

Weil ich es gerne als Icon bei der Text Wettermeldung stehen haben möchte.

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openweatermap Icons in Basic UI

Beitrag von peter-pan »

Wo hast du denn die Regel gefunden ? Ich habe auf die Schnelle nur hier etwas dazu finden können. Da hab ich aber nichts von "Importen" gesehen.

Hast du auch das dazugehörige Bash-Script installiert und evtl. das Imagepack, nicht zu vergessen, die entsprechenden Items ?

Die Fehlermeldung "Type mismatch: cannot convert from int to String" deutet auch darauf hin, dass die Umwandlung nicht geklappt hat.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

papet
Beiträge: 21
Registriert: 4. Jan 2024 08:48
Answers: 0

Re: Openweatermap Icons in Basic UI

Beitrag von papet »

https://community.openhab.org/t/openwea ... emap/65298

Vielleich habe ich auch das Bash-Script falsch installiert.
Wo mache ich das genau?

tomtom97
Beiträge: 20
Registriert: 25. Dez 2020 18:24
Answers: 1

Re: Openweatermap Icons in Basic UI

Beitrag von tomtom97 »

Hallo,
papet hat geschrieben: 9. Jan 2024 10:28 Ich bekomme 3 Fehlermeldungen

"The import 'javax.imageio.ImageIO' is never used"
Die Bibliothek wird von keinem der Befehle in Deiner Rule verwendet.
Das ist kein Fehler, sondern nur der Hinweis, dass Du Dir den Import der Bibliothek sparen kannst.
papet hat geschrieben: 9. Jan 2024 10:28 "The import 'java.io.File' is never used"
Die Bibliothek wird von keinem der Befehle in Deiner Rule verwendet.
papet hat geschrieben: 9. Jan 2024 10:28 executeCommandLine(cmd,2000)
bringt "Type mismatch: cannot convert from int to String"
Für den Befehl executeCommandLine gibt es 3 verschiedene Möglichkeiten, wie man ihn aufruft:

https://www.openhab.org/docs/configurat ... ec-actions

Keine dieser 3 Möglichkeiten passt auf die Syntax in Deiner Rule. So, wie du es angegeben hast, müsste in der Variablen cmd ein Timeout-Wert in Sekunden (also eine Zahl) stehen und die 2000 ist der Shell-Befehl, welcher ausgeführt werden soll. Der interpreter erkennt die 2000 als Integer und versucht sie zu einem String (dem Shell-Befehl) zu konvertieren. Das führt zu der Fehlermeldung "cannot convert from int to String".

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openweatermap Icons in Basic UI

Beitrag von peter-pan »

papet hat geschrieben: 9. Jan 2024 10:28 /etc/openhab/scripts/
Das Script sollte hier liegen. Zumindest wird es von dort aus in der Rule aufgerufen. Das Script sollte natürlich auch ausführbar sein und dem User "openhab" gehören(normalerweise). Die passenden Items und natürlich das openweathermap-Binding(bzw. Onecall) hast du auch angelegt.

Es könnte auch sein, das die "Schreibweise" von "executeCommandline" nicht mehr aktuell ist. Schau mal hier.

Ich hab diesen "Moloch" nicht mehr installiert, da es aus meiner Sicht sehr ressourcenfressend ist.

Code: Alles auswählen

	
id	802
main	"Clouds"
description	"Mäßig bewölkt"
icon	"03n"
daily	
0	
dt	1704884400
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

papet
Beiträge: 21
Registriert: 4. Jan 2024 08:48
Answers: 0

Re: Openweatermap Icons in Basic UI

Beitrag von papet »

das script base642png.sh
liegt im Unterverzeichnis scripts
und sieht so aus:

#!/bin/sh

/bin/echo "$2" | base64 -d > /etc/openhab/icons/classic/$1.png

papet
Beiträge: 21
Registriert: 4. Jan 2024 08:48
Answers: 0

Re: Openweatermap Icons in Basic UI

Beitrag von papet »

das script base642png.sh
liegt im Unterverzeichnis scripts
und sieht so aus:

#!/bin/sh

/bin/echo "$2" | base64 -d > /etc/openhab/icons/classic/$1.png

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openweatermap Icons in Basic UI

Beitrag von peter-pan »

Das Script liegt wohl im richtigen Ordner, dann muss es wohl an den Umgebungsvariablen und/oder an der "Action" (executeCommandLine) liegen. Ich habe leider keine Möglichkeiten, das bei mir zu testen.
Vielleicht findest du im internationalen Forum einen Ansatz.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten