Hilfe Model lädt nicht mehr

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
pbm
Beiträge: 6
Registriert: 28. Mär 2024 09:38

Hilfe Model lädt nicht mehr

Beitrag von pbm »

Hallo,

ich habe ein Model aufgesetzt und nachdem ich einen weiteren Point hinzugefügt hatte...das Model lädt sich tot.

Nach meinen Recherchen bin ich wohl nicht der Einzige und es mag am Semantic Model liegen oder Tags, die ich aber nicht verwende.

Setup:
openHAB 4.1.1 auf RasPi 4

Welche Optionen habe ich nun?
WIe kann ich den Fehler einkreisen?

Danke!

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

Re: Hilfe Model lädt nicht mehr

Beitrag von udo1toni »

In den allermeisten Fällen hast Du einen Fehler bei der Zuweisung der Tags und/oder Gruppen gemacht.
Auf beide Informationen kannst Du auch aus der Items-Ansicht zugreifen (leider nur einzeln für jedes Item).
Wichtigste Regeln:
1. Keine Zirkelbezüge! Niemals! unter keinen Umständen! (Zirkelbezug: ein Nachkomme ist gleichzeitig sein eigener Vorfahre, z.B. GroupItem2 ist Member von GroupItem1 ist Member von GroupItem3 ist Member von GroupItem2) Das kann man recht leicht über VS Code mit openHAB Plugin herausfinden, denn dort gibt es eine Baumstruktur der Items, welche immer alle Items anzeigt, eine Item taucht also in jeder Gruppe auf, der es zugeordnet ist, auch wenn das bedeutet, dass es mehrfach auftaucht.
2. Ein Item darf maximal einem Semantic Group Item zugeordnet sein, niemals mehreren Semantic Group Items. Es gibt Anwender, die das bestreiten, aber die Doku ist da eindeutig und seit V4 setzt openHAB das auch gnadenlos durch. (Ein Semantic Item darf aber durchaus mehreren Group Items angehören, nur dürfen bis auf eines davon halt keine weiteren Teil des Semantic Model sein...)
3. Ein Semantic Item hat gewöhnlich genau ein Tag, manchmal gibt es auch mehrere Tags, die müssen aber zueinander passen.

Die Zuordnung zu vieler Tags ist leider nur mit systematischem Prüfen jedes einzelnen Items zu finden.

Allerdings: Manchmal hilft es auch, openHAB mal neu zu starten. Anschließend schaust Du ins Log, dort könnte openHAB sich dann beschweren, dass es einen Fehler im Semantic Model gibt (dann gewöhnlich mit recht konkretem Hinweis auf den Fehler...)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

pbm
Beiträge: 6
Registriert: 28. Mär 2024 09:38

Re: Hilfe Model lädt nicht mehr

Beitrag von pbm »

Danke.
Hab ich im Prinzip verstanden, macht Sinn!

Ich habe keine Tags vergeben und auch keine Group aktiv angelegt oder zugeordnet. Daher weiß ich nicht wo ich sinnvoller Weise anfangen sollte zu suchen….
Wie funktioniert das mit VS Code? Das Programm läuft z.B. auf einem Mac und liest die Daten auf den Raspberry aus?

Ich wäge ab ob ich den Fehler suche oder alles neu mache…

Danke für eine Einschätzung .

pbm
Beiträge: 6
Registriert: 28. Mär 2024 09:38

Re: Hilfe Model lädt nicht mehr

Beitrag von pbm »

Noch eine Idee/ Frage:
Hilft es komplette bindings bzw. alle items des bindings zu entfernen?

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

Re: Hilfe Model lädt nicht mehr

Beitrag von udo1toni »

Das Semantic Model funktioniert komplett mit Tags und Groups. Ganz grob: Orte und Equipment sind Group Items, die genauere Spezifizierung geschieht über Tags (z.B. Obergeschoss, Flur, Heizung, Luftfeuchte)

Bindings haben mit dem Problem nichts zu tun.

Von null neu machen kann sinnvoll sein, wenn Du bisher nur sehr wenig eingerichtet hast (meinetwegen zwei oder drei Orte/Räume und zwei oder drei Geräte). Wenn Du aber schon ein Dutzend Channel oder mehr ins Semantic Model verlinkt und vielleicht noch viel mehr Things bereits angelegt hast, wäre es schade um die vertane Arbeit.
Natürlich kann man auch argumentieren, dass Du beim zweiten Anlauf schon viel weißt und das als Übung abhaken kannst. Letztlich musst Du das selbst wissen.

VS Code: Es gibt von Microsoft einen Open Source Editor unter dem Namen VisualStudio Code (oder eben kurz VS Code) der innerhalb kürzester Zeit zum Quasi Standard Editor geworden ist - einfach weil er so irre gut ist (muss man echt anerkennen).
Einer der Vorzüge gegenüber anderen Editoren ist die gigantische Auswahl an Plugins zu allen vorstellbaren Aufgabenstellungen, die einem mit einem Editor so über den Weg laufen, angefangen mit Highlighting diverser (Programmier-)Sprachen über Tools zum Entwirren von JSON oder XML bis hin zu kompletten Compilern, die VS Code als Frontend verwenden (z.B. PlatformIO).
Und wie erwähnt gibt es ein openHAB Plugin, mit welchem man openHAB sehr komfortabel über Textdateien konfigurieren kann (da kommt openHAB ursprünglich her...). Dieses Plugin greift online über LSP auf eine frei wählbare openHAB Instanz zu, um Code zu verifizieren (womit Fehlermeldungen immer vom Server selbst kommen, nicht von einem Plugin, das von sich aus nicht wissen kann, welchen Softwarestand der Server hat) und sie greift per API auch auf die Items und Things Listen zu, dabei wird z.B. auch der aktuelle Status jedes Items angezeigt, das kann beim Entwickeln von Rules echt hilfreich sein.
VS Code gibt es für alle üblichen Betriebssysteme, selbstverständlich auch für ein aktuelles MacOS. Wenn Du VS Code installierst, musst Du anschließend aus dem VS Code Marketplace noch das Plugin installieren und anschließend über die Einstellungen die Zugangsdaten zu Deiner openHAB Instanz eintragen. Für openHAB ab V3 ist dringend angeraten, statt User und Passwort lieben ein Token einzurichten (Token kann man in der Main UI ganz einfach erstellen - unten links auf den eingeloggten User klicken, der Rest ist weitgehend selbsterklärend... - Tokennamen dürfen keine Sonderzeichen enthalten, der Scope ist momentan irrelevant :) )
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Hilfe Model lädt nicht mehr

Beitrag von peter-pan »

Hast du es mit einem Neustart von OH, wie von Udo beschrieben, schon einmal probiert ? Und hast du auch keine Fehler im Log gemeldet bekommen ?

Evtl. könntest du auch mal versuchen auf Shell-Ebene (Putty) den OH-Cache zu löschen
1) OH stoppen (sudo systemctl stop openhab)
2) Cache löschen (sudo openhab-cli clean-cache)
3) OH starten (sudo systemctl start openhab)

Der Neustart von OH dauert dann beim ersten mal etwas länger, weil diverse "OH-Interna" neu angelegt werden müssen.

Noch eine kleine Anmerkung zu VSC:
Ich bin auch total begeistert von dem Editor, da ich 99% meiner Konfiguration textbasiert angelegt habe. Wenn du natürlich dein SetUp über die MainUI erledigt hast, dann wird dir, soweit ich weiss, der VS-Code-Editor keine grosse Hilfe sein können.

Hier noch ein Beispiel, wie ich meine grundsätzliche Raumaufteilung (locations) vorgenommen habe:

Code: Alles auswählen

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                 Locations                                                                                  +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                 Gebäudeplan - Building plan       
Group                             gEstate         "Anwesen Flurstück"                      <garden>                                 ["Location"]
//                                                 Aussenbereich Outdoor area                                            
Group                             gAussen         "Aussenbereich"                          <garden>              (gEstate)          ["Outdoor"]                          { widgetOrder="1" }
Group                             gFront          "Vorgarten"                              <garage_1>            (gAussen)          ["Garden"]                           { widgetOrder="1" }
Group                             gHof            "Garageneinfahrt"                        <garage_1>            (gAussen)          ["Driveway"]                         { widgetOrder="2" }
Group                             gGarage         "Garage"                                 <garage_1>            (gAussen)          ["Garage", "garage_detached"]        { widgetOrder="3" }
Group                             gBack           "Garten Südseite"                        <garage_1>            (gAussen)          ["Garden"]                           { widgetOrder="4" }
Group                             gGhaus          "Gartenhütte"                            <garage_1>            (gAussen)          ["Outdoor"]                          { widgetOrder="5" }
//                                                 Innenbereich - Indoor                                            
Group                             gInnen          "Innenbereich"                           <house>               (gEstate)          ["Indoor"]                           { widgetOrder="2" }
                                                                                           
Group                             gHome           "Casa Claudia"                           <house>               (gInnen)           ["Building"]
//                                                 Stockwerke - Floors                                               
Group                             gEG             "Erdgeschoss"                            <groundfloor>         (gHome)            ["GroundFloor"]                      { widgetOrder="2" }
Group                             gDG             "Dachgeschoss"                           <firstfloor>          (gHome)            ["Attic"]                            { widgetOrder="3"}
Group                             gUGElw          "ELW UG"                                 <cellar>              (gHome)            ["Basement"]                         { widgetOrder="1"}
Group                             gUGKel          "Keller"                                 <cellar>              (gHome)            ["Basement"]                         { widgetOrder="0"}
//                                                 Zimmer - Rooms                                                  
Group                             gEG_Bad         "Badezimmer"                             <bubble_bath>         (gEG)              ["Bathroom" ]                        { synonyms="Badezimmer" }
Group                             gEG_Essen       "Esszimmer"                              <dining>              (gEG)              ["DiningRoom" ]
Group                             gEG_Kind1       "Zimmer Claudia"                         <girl_3>              (gEG)              ["GuestRoom", "Vorrat","Kinder" ]    { synonyms="Speisekammer" }
Group                             gEG_WC          "Toilette"                               <toilet>              (gEG)              ["Bathroom" ]                  
Group                             gEG_Wohnen      "Wohnzimmer"                             <living>              (gEG)              ["LivingRoom" ]
Group                             gEG_Schlafen    "Schlafzimmer"                           <bed>                 (gEG)              ["Bedroom" ]
Group                             gEG_Kueche      "Küche"                                  <catfridge>           (gEG)              ["Kitchen" ]
Group                             gEG_Windfang    "Windfang-Garderobe"                     <wardrobe>            (gEG)              ["Entry" ]
Group                             gEG_Vorgarten   "Vorgarten"                              <lawnmower>           (gEG)              ["Garden" ]
Group                             gEG_Terrasse    "Terrasse"                               <terrace>             (gEG)              ["Terrace" ]
Group                             gEG_Kind2       "Zimmer York"                            <boy_3>               (gEG)              ["Room", "Kinder" ]                  { synonyms="Kinderzimmer" }
Group                             gEG_Diele       "Diele"                                  <corridor>            (gEG)              ["Corridor" ]
Group                             gEG_Flur        "Flur"                                   <corridor>            (gEG)              ["Corridor" ]
Group                             gEG_Buero       "Arbeitszimmer"                          <office>              (gEG)              ["Office" ]                          { synonyms="Bureau,Bureaux" }
Group                             gDG_Speicher    "Dachboden"                              <attic>               (gDG)              ["Room" ]
Group                             gUG_Wohnen      "Wohn-Esszimmer"                         <sofa>                (gUGElw)           ["LivingRoom" ]
Group                             gUG_Schlafen    "Schlafzimmer"                           <bed>                 (gUGElw)           ["Bedroom" ]
Group                             gUG_Bad         "Badezimmer"                             <bath>                (gUGElw)           ["Bathroom" ]
Group                             gUG_Diele       "Flur"                                   <corridor>            (gUGElw)           ["Corridor" ]
Group                             gUG_Waschkueche "Waschküche"                             <washingmachine>      (gUGKel)           ["LaundryRoom" ]
Group                             gUG_Heizraum    "Heizungsraum"                           <heating>             (gUGKel)           ["BoilerRoom" ]
Group                             gUG_Keller      "Keller"                                 <cellar>              (gUGKel)           ["Cellar" ]
Group                             gUG_Holzkeller  "Holz-Keller"                            <cellar>              (gUGKel)           ["Cellar", "Holz" ]
                                                  
Group                             gSpecial        "Special"                                                      (gInnen)           ["Indoor"]
Group                             gMonitor        "Monitoring"                                                   (gInnen)           ["Indoor"]

// aktive Gruppen  - Monitoring           
Group:Switch:OR(ON,OFF)           gLight          "Licht [MAP(de.map):%s]"                 <light>               (gHome)         ["Indoor"]
Group:Switch:OR(ON,OFF)           gSwiSo          "Schalter-Steckdosen [MAP(de.map):%s]"   <light>               (gHome)         ["Indoor","Light"]
Group:Contact:OR(OPEN,CLOSED)     gDoor           "Türen [MAP(de.map):%s]"                 <door>                (gHome)         ["Indoor"]

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                Locations - End                                                                             +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dieser Aufbau hat zunächst mal nichts mit Bindings, etc. zu tun. Aber vielleicht hilft es dir die Verknüpfung der "Group-Item" - Tags (Hirachie) besser zu verstehen.
Das kann man auch ganz schön in der Beschreibung des Semantic-Models nachlesen, falls du das nicht schon hast. ;)

Things, Items, etc., habe ich dann in separaten Dateien abgelegt (z.B.: Ntp-Binding -> ntp.things, ntp.item, ntp.rules), ganz nach persönlichem Gusto.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Antworten