Sitemaps in openHAB erstellen

In diesem Artikel erfährst du, wie du die zuvor manuell erstellten Items in eine Sitemap einbinden kannst. Wenn du noch keine manuellen Items erstellt hast, kannst du das mit Hilfe von diesem Artikel tun.

Um eine Sitemap zu erstellen, ist es am einfachsten, wenn du zuvor die Verwaltung der Konfigurationsdateien von openHAB im Visual Studio Code Editor eingerichtet hast. Du kannst sie aber auch in einem gewöhnlichen Texteditor erstellen und danach auf den openHAB Server laden.

Erstelle zuerst eine Sitemap Datei mit der Endung .sitemap im Verzeichnispart /ip-des-openhab-servers/openhab-conf/sitemaps/xxx.sitemap.

Schreibe jetzt in die erste Zeile:

sitemap name-der-sitemap label="titel-der-sitemap"{Code-Sprache: JavaScript (javascript)

Ich habe es z.B. so benannt:

sitemap Zuhause label="Hauptmenue" {Code-Sprache: JavaScript (javascript)

Du kannst in der Sitemap quasi verschiedene Blöcke oder Absätze einfügen und sie somit individuell gestalten. Ich werde dir jetzt ein paar verschiedene Blöcke zeigen. Schreibe den Code einfach immer in eine neue Zeile und baue dir damit quasi deine Blöcke zusammen. In der Spalte mit den Codes sind Beispiele, die du selbstverständlich noch an deine Items etc. anpassen musst.

BlockBeschreibungCode
FrameAbsatz, bzw. übergeordnetes ElementFrame label=“Gruppen“ {
-weitere Blöcke-
}
GroupGruppe für Ordnung der ItemsGroup item=gEG label=“Erdgeschoss“ icon=“groundfloor“
SwitchSchalter für z.B. LampenSwitch item=LampeEg
Texteinfache TextanzeigeText item=Date
SetpointEinstellung von z.B. Temperaturen für HeizkörperSetpoint item=HeizungWZ minValue=15 maxValue=25
step=1
ColorpickerFarbauswahl für farbige LampenColorpicker item=bunteLampe
SliderLeiste zum Dimmen von z.B. LampenSlider item=LampeWZ label=Lampe im Wohnzimmer
VideoVideo von z.B. einer ÜberwachungskameraVideo url=“https://…“
WebviewAnzeige von einer WebsiteWebview item=BloggingweltSeite url=“https://bloggingwelt.de“ height=8
Eine Auswahl von Sitemap-Elementen

Das könnte dann z.B. so aussehen:

sitemap Zuhause label="Hauptmenue" {
Frame label="Gruppen" {
    Group item=gEG label="Erdgeschoss" icon="groundfloor"
    Switch item=eg_wz_st1
    Switch item=eg_ku_Strasse
    }
}Code-Sprache: PHP (php)

Hier ist ein Block eingebaut. In ihm steht die Gruppe vom Erdgeschoss, in dem in der Items-Datei alle passenden Items untergeordnet wurden.

Die Sitemap wird jetzt in der openHAB App und in der Basic und Classic UI verwendet. Wenn du mehrere Sitemaps erstellt hast, kannst du in der App und im Browser eine Standard Sitemap auswählen, die normalerweise verwendet wird.

Wenn du noch eine Frage zu diesem Artikel hast, kannst du sie mir gerne in einem Kommentar stellen.

Hinweis: Mit Sternchen (*) markierte Links auf dieser Seite sind Werbelinks. Beim Kauf darüber erhalte ich eine kleine Provision, der Preis bleibt für dich aber gleich. Damit unterstützt du mich, sodass ich weiterhin kostenlosen Inhalt auf diesem Blog anbieten kann ;-).

Hast du Fragen, Anregungen oder einen einfachen Kommentar dazu? Dann poste es hier!

Bitte bedenke, dass alle Kommentare manuell freigeschaltet werden müssen. Das kann teilweise ein bisschen dauern, du kannst dich aber mit der unten aufgeführten Funktion benachrichtigen lassen, wenn er beantwortet wurde. Das heißt auch, dass Beleidigungen, Spam oder pure Werbung keine Chance haben, auf die Website zu kommen. Deine Email-Adresse wird selbstverständlich nicht veröffentlicht. Erforderliche Felder sind mit * oder (erforderlich) markiert.

Dieser Beitrag hat 17 Kommentare

  1. Avatar-Foto
    Günthher Metzler

    Gute Tag

    Ich finde den Blog sehr gut. Ich denke, dass sehr viel Herzblut in die Website gesteckt wurde und aktiv an neuen Artikeln gearbeitet wird. Top!
    Hoffe es kommt vielleicht mal ein Artikel über Alexa oder Google Home.
    Bin sehr begeistert.

    Liebe Grüße an das Team
    Günthher

    1. Logo Bloggingwelt
      Jan

      Hallo Günthher;
      vielen Dank für dein positives Feedback. Es freut mich, dass dir mein Blog gefällt. Ich werde sehr wahrscheinlich bald einen Artikel veröffentlichen, in dem erklärt wird, wie du Alexa oder Google Home mit openHAB verbinden kannst.
      Viele Grüße
      Jan

  2. Avatar-Foto
    thepixel

    Hallo Jan,

    danke für den interessanten Artikel! Ich bin noch blutiger Anfänger in Sachen openHAB und freue mich natürlich sehr über jede Art von Hilfestellung. Ich habe dein Tutorial befolgt, jedoch schaffe ich es nicht meinen Switch in der BasicUI zu schalten. Wärest du bitte so nett und siehst es dir mal an und gibst mir einen Tipp wo mein Fehler liegt?

    meine.items:

    /************************************************** Gruppen ********************************************/
    //–> Räume
    Group EG_Wohnzimmer

    //–> Funkionen

    /************************************************** Items ********************************************/
    //—> EG
    //–> Bad

    Switch eg_wz_licht „Licht Wohnzimmer“ (EG_Wohnzimmer) {channel=“zwave:device:ffac095e:node4:switch_binary“}

    meinHeim.sitemap:

    sitemap Zuhause label=“Hauptmenue“ {
    Frame label=“Gruppen“ {
    Group item=EG_Wohnzimmer label=“Erdgeschoss“ icon=“groundfloor“
    Switch item=eg_wz_licht
    }
    Frame {
    Text item=CalDav_Muelltonne
    Text item=CalDav_Date
    }
    }

    Vielen Dank für deine Hilfe!

    Viele Grüße, thepixel

    1. Logo Bloggingwelt
      Jan

      Hallo thepixel,

      schön, dass dir meine Anleitung gefällt. Ich versuche dir gerne zu helfen. Was wird denn angezeigt, wenn du die BasicUI aufrufst? Kommt eine Fehlermeldung oder fehlt einfach nur der Schalter?
      du kannst noch probieren, bei deinem Item [„Switchable“] zu ergänzen. Das wäre dann also Switch eg_wz_licht “Licht Wohnzimmer” (EG_Wohnzimmer) [„Switchable“] {channel=”zwave:device:ffac095e:node4:switch_binary”}. Ansonsten sehe ich keinen großen Fehler in deinen Dateien ?.

      Viele Grüße
      Jan

  3. Avatar-Foto
    thepixel

    Hallo Jan,

    vielen Dank für deine Hilfe! Das Problem lag anscheinend an den Anführungszeichen. ? Habe den Fehler zum Glück gefunden. Das items-Skript mag keine (“), diese müssen gerade sein und nicht leicht geschwungen.

    Hast du bitte noch einen Tipp für mich wo ich Anfänger-Tutorials für die Generierung von Szenen finde? Alles was ich finde übersteigt mein Verständnis – das ist derart kompliziert. Ich komme ja vom Fibaro Home Center Lite und da ging das ja sehr einfach.

    Danke nochmals & viele Grüße,
    Mario

    1. Logo Bloggingwelt
      Jan

      Hallo Mario,

      schön dass dein Problem jetzt gelöst ist.
      Meinst du mit Szenen die sogenannten „Rules“ von openHAB? Dazu habe ich schon einen Beitrag geplant, wo erklärt wird, wie du z.B. Rollläden automatisch steuern kannst. Ich werde aber noch einen Artikel zu Regeln im allgemeinen veröffentlichen.
      Welche Szenen möchtest du denn z.B. erstellen?

      Viele Grüße
      Jan

  4. Avatar-Foto
    Mario

    Hallo Jan,

    danke für deine Antwort! Ja, ich denke die heissen in openHAB Rules. Zum Beispiel möchte ich dass das Licht angeht wenn der Motion Sensor eine Bewegung erkennt und dieses sich nach 3 Minuten wieder ausschaltet – also ganz simple Dinge. Das ging mit Fibaro und dem GUI wirklich einfach, mit openHAB kapiere ich das nicht.

    Viele Grüße
    Mario

    1. Logo Bloggingwelt
      Jan

      Hallo Mario,

      wenn du ein Item für den Bewegungssensor erstellt hast, kannst du im Rules-Ordner deiner Konfigurationsdateien eine Datei, wie z.B. Licht.rules erstellen. In dieser fügst du dann z.B. so etwas ein:

      rule „Licht an bei Bewegunsmelder“
      when
      Item eg_wz_bewegungsmelder_1 changed to ON
      then
      sendCommand(eg_wz_licht, ON)
      timer = Timer.createTimer(now.plusSeconds(180) [|
      sendCommand(eg_wz_licht, OFF)
      timer = null
      ])
      end

      Bis jetzt habe ich leider auch noch kaum eine einfach zu verstehende Anleitung auf Deutsch gefunden, weswegen ich bald einen Artikel dazu veröffentlichen werde. Wenn du noch eine andere Regel brauchst, kann ich sie dir aber gerne jetzt schon zeigen ?.

      Viele Grüße
      Jan

  5. Avatar-Foto
    Mario

    Hallo Jan,

    danke dass du dir Zeit für meine „Probleme“ nimmst! ?

    Wie schon angedacht funktioniert es leider nicht, anscheinend habe ich wieder irgendwo einen Fehler drinnen. Ich habe in meine .items den Motion Sensor hinzugefügt

    Switch eg_ga_bewegung „Bewegung Garderobe“ (EG_Garderobe) [„Switchable“] {channel=“zwave:device:ffac095e:node2:alarm_motion“}

    und eine .rules erstellt mit folgendem Inhalt:

    rule “Licht an bei Bewegunsmelder”
    when
    Item eg_ga_bewegung changed to ON
    then
    sendCommand(eg_ga_licht, ON)
    timer = Timer.createTimer(now.plusSeconds(180) [|
    sendCommand(eg_ga_licht, OFF)
    timer = null
    ])
    end

    Hast du vielleicht eine Idee was ich übersehe?

    Viele Grüße,
    Mario

    1. Avatar-Foto
      Mario

      Das komische ist aber wenn ich die Szene über die BasicUI Ansicht starte, funktioniert es – siehe Log.

      2019-11-14 11:22:32.927 [ome.event.ItemCommandEvent] – Item ‚eg_ga_bewegung‘ received command ON
      2019-11-14 11:22:32.932 [nt.ItemStatePredictedEvent] – eg_ga_bewegung predicted to become ON
      2019-11-14 11:22:32.939 [vent.ItemStateChangedEvent] – eg_ga_bewegung changed from OFF to ON
      2019-11-14 11:22:33.167 [ome.event.ItemCommandEvent] – Item ‚eg_ga_licht‘ received command ON
      2019-11-14 11:22:33.179 [nt.ItemStatePredictedEvent] – eg_ga_licht predicted to become ON
      2019-11-14 11:22:33.191 [vent.ItemStateChangedEvent] – eg_ga_licht changed from OFF to ON
      2019-11-14 11:22:33.257 [vent.ItemStateChangedEvent] – zwave_device_ffac095e_node3_switch_binary1 changed from OFF to ON
      2019-11-14 11:22:36.156 [vent.ItemStateChangedEvent] – zwave_device_ffac095e_node3_meter_watts1 changed from 0 to 20.8

      1. Logo Bloggingwelt
        Jan

        Hallo Mario,

        vermutlich stimmt dann etwas bei dem Bewegungsmelder, oder dessen Konfiguration nicht, da ja der Schritt, dass der Bewegungsmelder quasi den Switch selbst betätigt, nicht funktioniert. Was für einen Bewegungsmelder benutzt du denn?

        Viele Grüße
        Jan

        1. Avatar-Foto
          Mario

          Hallo Jan,

          den Motion Sensor von Fibaro. Im openhab.log finde ich folgenden Error und kann diesen nicht zuordnen. Habe schon danach gegoogelt, aber nichts brauchbares gefunden.

          Error log:
          Rule ‚Licht an bei Bewegungsmelder‘: ‚createTimer‘ is not a member of ‚java.lang.Class‘; line 8, column 9, length 87

          Vielen Dank und viele Grüße,
          Mario

          1. Avatar-Foto
            Mario

            Hallo Jan,

            ich habs hinbekommen – hier die rule. Es fehlte am Anfang die Definition der Variable Timer. Ich bin mir nur nicht ganz sicher ob ich am Ende noch die „timer=null“ benötige. Was glaubst du?

            var Timer timer = null
            rule „Beleuchtung Garderobe an, für 2 Minuten“
            when
            Item Motion_Garderobe changed
            then
            logInfo(„FILE“, „Setting to ON and creating timer“)
            Licht_Garderobe.sendCommand(ON)
            timer = createTimer(now.plusMinutes(2), [|
            logInfo(„FILE“, „Timer expired and setting to OFF“)
            Motion_Garderobe.postUpdate(OFF)
            Licht_Garderobe.sendCommand(OFF)
            //timer = null
            ])
            end

            Viele Grüße,
            Mario

          2. Logo Bloggingwelt
            Jan

            Hallo Mario,

            schön dass es mit den Rules noch geklappt hat. Also wenn kein Fehler angezeigt wird, kann das timer=null eigentlich drin bleiben, ich bin aber nicht sicher, ob man es wirklich braucht, da ja eigentlich kein Timer mehr sein sollte, also der timer=null ist, wenn diese Zeile ausgeführt wird.

            Viele Grüße
            Jan

  6. Avatar-Foto
    Thomas

    Hallo Jan,

    danke für deine tollen Tutorials.
    Sie sind einfach aufgebaut und so geschrieben das man es als Anfänger auch gut versteht.
    Besten Dank dafür.

    eine kleine Frage hätte ich aber.
    in der .item Liste habe ich die Items schon Gruppen zugeordnet.
    Diese Gruppen tauchen dann in der .sitemap auf.
    Dann muss ich aber trotzdem das Item selbst auch nochmal in die Sitemap schreiben?

    Die Sitemap schaut nicht nach welche Items alle zu der Gruppe gehören?

    Gruß Thomas

    1. Logo Bloggingwelt
      Jan

      Hallo Thomas,
      Vielen Dank für das positive Feedback. Ich versuche dir gerne zu helfen. Normalerweise musst du nur Group item=gEG (oder mit deinem Namen für die Gruppe) in deine Sitemap schreiben, damit alle Items verschachtelt unter dieser Gruppe angezeigt werden. Du kannst aber auch einzelne Items in der Sitemap dazu erstellen, unabhängig von der Gruppe. Schicke am besten Mal die Auszüge aus deinen Dateien, dann kann ich Mal schauen, ob ich einen Fehler sehe ?.
      Viele Grüße
      Jan

    2. Logo Bloggingwelt
      Jan

      Es kann auch sein, dass es mit der neuen Version 2.5 zusammenhängt, ich habe im Moment auch ein paar Probleme damit. Welche Version von openHAB nutzt du denn?