Openweatermap Icons in Basic UI

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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 »

Ich habe mir das Ganze nochmal etwas näher betrachtet und folgendes gemacht:

1. Bash-Script in "/etc/openhab/scripts/" ausführbar gemacht, mit:

Code: Alles auswählen

 sudo chmod +x  base642png.sh
2. Owner-Ship mit openhab-cli

Code: Alles auswählen

sudo openhab-cli reset-ownership
das Ergebnis sieht dann so aus:

Code: Alles auswählen

-rwxrwxr-x  1 openhab openhab   74 11. Jan 19:08  base642png.sh*
Die Regel sieht dann so aus:

Code: Alles auswählen

rule "wettericon"

when
  Member of OpenWeatherMap_Icon changed
then 
  if(triggeringItem.state != NULL) {
     val vImageString = triggeringItem.state.toFullString.replace("data:image/png;base64,","") 
     val vImageName = triggeringItem.name.replace("_Icon","").replace("owmCondition_","").toLowerCase 
     var vResult = executeCommandLine(Duration.ofSeconds(3), "/etc/openhab/scripts/base642png.sh", vImageName, vImageString)
  }
end 
Das Ergebnis sollte dann ein Icon im Ordner "/etc/openhab/icons/classic/" mit dem Namen des "triggernden" Items sein, Also z.B. "forecastHours00.png", etc., je nachdem, welches Icon (Typ-Image) sich geändert hat.

Viel Spass beim Probieren. ;) ;)
Zuletzt geändert von peter-pan am 13. Jan 2024 15:05, insgesamt 1-mal geändert.
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 »

Vielen Dank dass du dir das genauer angesehen hast.
bei sudo openhab-lib reset-ownership bekomme ich zunächst folgende Fehlermeldung:

chown: fts_read failed: No such file or directory

wenn ich den Befehl dann nochmal ausführe läuft er durch.

Nun habe ich das Problem, dass ich keine Schreiberechte mehr auf meine config files (things, items und sitemaps) habe.

Musss auch zugeben, dass ich von Linux leider sehr wenig Ahnung habe.

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 heisst nicht "sudo openhab-lib reset-ownership", sondern "sudo openhab-cli reset-ownership".
Ich habe das oben leider mit einem "t" zuviel geschrieben, aber gleich geändert.

Edit:
Hab gerade gesehen, dass die Fehlermeldung wohl mit dem CHOWN-Befehl zusammenhängt.
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 »

und in der rule bekomme ich die Warnung bei var vResult
The value of the local variable vResult is not used

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: 13. Jan 2024 15:09 und in der rule bekomme ich die Warnung bei var vResult
The value of the local variable vResult is not used
Das ist nicht schlimm, sondern nur ein Hinweis, dass diese Variable im weiteren Kontext (hier Scriptablauf) nicht benutzt wird.
Wenn du das nicht haben möchtest kannst du

a) Die Zuweisung weglassen, also die Zeile so abändern:

Code: Alles auswählen

executeCommandLine(Duration.ofSeconds(3), "/etc/openhab/scripts/base642png.sh", vImageName, vImageString)
oder
b) eine Zeile mit einer Loganweisung ergänzen:

Code: Alles auswählen

rule "wettericon"

when
  Member of OpenWeatherMap_Icon changed
then 
  if(triggeringItem.state != NULL) {
     val vImageString = triggeringItem.state.toFullString.replace("data:image/png;base64,","") 
     val vImageName = triggeringItem.name.replace("_Icon","").replace("owmCondition_","").toLowerCase 
     var vResult = executeCommandLine(Duration.ofSeconds(3), "/etc/openhab/scripts/base642png.sh", vImageName, vImageString)
     logInfo("wettericon","Der Inhalt der Variablen ist: {} ", vResult)
  }
end 
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 »

Kannst du mir sagen, warum ich mit nano oder via Samba Zugriff nur noch Leserechte habe?

BTW die Rule an sich funktioniert ich bekomme die Icons. Vielen, vielen Dank.

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 kann ich dir leider nicht sagen, da ich auch nur "Anfänger" bin und dein System nicht kenne.
Aber mal allgemein gefragt, wem gehören denn die Ordner und Dateien in "/etc/openhab" bzw. in der Variablen "$OPENHAB_CONF"

Code: Alles auswählen

hab3@oh3ssd:~ $ echo $OPENHAB_CONF
/etc/openhab
hab3@oh3ssd:~ $ ls -alF /etc/openhab
insgesamt 68
drwxrwxr-x 17 openhab openhab 4096 18. Dez 09:55 ./
drwxr-xr-x 99 root    root    4096 10. Jan 17:30 ../
drwxrwxr-x  3 openhab openhab 4096 20. Dez 2021  automation/
drwxrwxr-x  3 openhab openhab 4096  9. Jan 12:21 html/
drwxrwxr-x  3 openhab openhab 4096 12. Dez 2021  icons/
drwxrwxr-x  2 openhab openhab 4096 10. Jan 11:22 items/
drwxrwxr-x  2 openhab openhab 4096 25. Apr 2023  misc/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 persistence/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:27 rules/
drwxrwxr-x  2 openhab openhab 4096 11. Jan 19:07 scripts/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 services/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 sitemaps/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 sounds/
drwxr-xr-x  2 openhab openhab 4096  9. Jan 12:21 tags/
drwxrwxr-x  2 openhab openhab 4096  9. Jan 12:21 things/
drwxrwxr-x  2 openhab openhab 4096 10. Jan 14:25 transform/
drwxrwxr-x  2 openhab openhab 4096 23. Dez 2021  .vscode/
hab3@oh3ssd:~ $
Ich kann da auch nur mutmassen, dass evtl. die Gruppenzugehörigkeit nicht passt, oder dass du evtl. mit "sudo nano" editieren musst. Es gibt da viele Möglichkeiten. Aber vor allen Dingen hängt das sicherlich auch davon ab, was du für Hardware einsetzt und wie dein System bzw. OpenHAB-System aufgebaut ist.

Was ist denn das Ergbnis des Befehls "cat /etc/group | grep -i openhab":

Code: Alles auswählen

hab3@oh3ssd:/etc/openhab/scripts $ cat /etc/group | grep -i openhab
tty:x:5:openhab,hab3
dialout:x:20:hab3,openhab
audio:x:29:hab3,openhab
bluetooth:x:112:openhab,hab3
gpio:x:997:hab3,openhab
openhab:x:117:frontail,hab3
hab3@oh3ssd:/etc/openhab/scripts $
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 »

Ich denke das Problem ist mein user ist openhabian und nicht openhab
Da es ja vorher funktioniert hat (vor "sudo openhab-cli reset-ownership") wie kann ich das zurücksetzen?

Code: Alles auswählen

openhabian@openhabian:/ $ ls -alF /etc/openhab
total 56
drwxrwxr-x 14 openhab openhab 4096 Dec 14 15:40 ./
drwxr-xr-x 97 root    root    4096 Jan  4 17:08 ../
drwxrwxr-x  4 openhab openhab 4096 Dec 14 17:55 automation/
drwxrwxr-x  2 openhab openhab 4096 Jan 11 09:01 html/
drwxrwxr-x  3 openhab openhab 4096 Dec 18 15:58 icons/
drwxrwxr-x  2 openhab openhab 4096 Jan 13 15:27 items/
drwxrwxr-x  2 openhab openhab 4096 Dec 14 15:38 persistence/
drwxrwxr-x  2 openhab openhab 4096 Jan 13 14:37 rules/
drwxrwxr-x  2 openhab openhab 4096 Jan  9 09:41 scripts/
drwxrwxr-x  2 openhab openhab 4096 Jan  6 09:30 services/
drwxrwxr-x  2 openhab openhab 4096 Jan 13 15:17 sitemaps/
drwxrwxr-x  2 openhab openhab 4096 Dec 14 15:38 sounds/
drwxrwxr-x  2 openhab openhab 4096 Jan 13 14:39 things/
drwxrwxr-x  2 openhab openhab 4096 Dec 14 15:38 transform/

openhabian@openhabian:/ $ cat /etc/group | grep -i openhab
adm:x:4:openhabian
tty:x:5:openhab,openhabian
dialout:x:20:openhabian,openhab
cdrom:x:24:openhabian
sudo:x:27:openhabian
audio:x:29:openhabian,openhab
video:x:44:openhabian
plugdev:x:46:openhabian
games:x:60:openhabian
users:x:100:openhabian
input:x:104:openhabian
render:x:106:openhabian
netdev:x:108:openhabian
bluetooth:x:112:openhab,openhabian
spi:x:999:openhabian
i2c:x:998:openhabian
gpio:x:997:openhabian,openhab
openhabian:x:1000:openhabian,frontail
openhab:x:114:frontail,openhabian

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 »

Zurücksetzten kann man das nicht, was die Funktion "sudo openhab-cli reset-ownership" macht. Das ist auch nicht gewollt, da diese extra dazu gedacht ist, alles für das openhab-System richtig zu stellen.

Code: Alles auswählen

hab3@oh3ssd:~ $ sudo openhab-cli reset-ownership
This command gives openHAB control of its own directories.
May resolve permission errors during startup or configuration.
openHAB directories will be owned by openhab:openhab

Okay to Continue? [y/N]: y
hab3@oh3ssd:~ $

Mein User heisst "oh3", das hat aber nichts direkt mit dem User/Gruppe "openhab" zu tun. Das muss einen anderen Grund haben.

Die Fehlermeldung mit dem "...chmod", die du vorhin beschrieben hast gibt mir aber Grund zum Bedenken. Vielleicht hast du da was gemacht.

Vielleicht weiss jemand anders hier im Forum einen Grund.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Openweatermap Icons in Basic UI

Beitrag von udo1toni »

Der User openhabian sollte eigentlich in der Gruppe openhab sein (und es sieht auch erst mal so aus, als sei das der Fall) Damit hat der User openhabian dann auch Schreibrechte, insbesondere nachdem openhab-cli reset-ownership ausgeführt wurde.
Dieser Befehl führt letztlich eine Reihe von Befehlen aus - welche das genau sind, müsste ich nachschauen, aber es wird auf etwas in dieser Art hinauslaufen:

Code: Alles auswählen

sudo chown openhab: -R $OPENHAB_CONF $OPENHAB_USERDATA $OPENHAB_RUNTIME
sudo chmod 775 -R $OPENHAB_CONF $OPENHAB_RUNTIME
Der erste Befehl ändert den Besitzer der Datei auf openhab und ändert die Gruppenbesitzrechte ebenfalls auf openhab (die Gruppe steht hinter dem Doppelpunkt, ist sie identisch mit dem User, muss man sie nicht ein zweites Mal hinschreiben) Das -R steht für Recursive, d.h. die angegebenen Verzeichnisse werden komplett durchlaufen und der Befehl wird auf jeden einzelnen Eintrag angewendet.
Der zweite Befehl setzt die Permission auf die Bitmaske 111111101 (wird als Oktalzahl angegeben, eben 775), di erste Oktalziffer steht für die Rechte des Besitzers, die zweite Oktalziffer steht für die Rechte von Gruppenmitgliedern, die dritte Oktalziffer für alle übrigen Anwender. Die einzelnen Bits heißen 4=Leserecht, 2=Schreibrecht, 1=Ausführungsrecht. aus der 7 ergeben sich also volle Rechte, wohingegen die 5 nur lesen und ausführen darf.
Bei einem Verzeichnis bedeutet "Ausführen", das Betreten des Verzeichnisses, was das Listen des Inhalts einschließt.
Da der User openhabian Mitglied der Gruppe openhab ist , sollte er auch Schreibrechte auf die Konfigurationsdateien haben.

Die Berechtigungen haben übrigens nichts mit dem Zugriff über Samba zu tun (nun ja, doch,aber nur "on top"), Samba hat eine eigene Nutzerverwaltung, die zusätzlich die Rechte verwaltet. Logisch werden die beiden Rechteverwaltungen ver-und-et, für erfolgreiches Schreiben mittels Samba muss also sowohl das Schreiben auf Dateiebene (GNU/Linux User) als auch auf Protokollebene (Samba User) erlaubt sein.
Warum das bei Dir nun nicht funktioniert, müsste man im Einzelnen klären, da kann es viel Ursachen geben, die aber immer auf eine Fehlbedienung im Vorfeld hinauslaufen :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten