Ankündigung

Einklappen
Keine Ankündigung bisher.

Verständnisfragen zu Items, Things und Channels

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Verständnisfragen zu Items, Things und Channels

    Hallo,

    ich habe heute meinen seit ca. vier Jahre laufenden openHAB-Server (Raspi 2) auf openHAB2 migriert. Ich nutze openHABian. Setup, Dokumentation und UIs sind super. Soweit läuft das auch wieder.

    Allerdings bin ich noch nicht sicher, ob das mit den Things und Channels richtig verstanden habe. Ich nutze hauptsächlich folgende Bindings:
    • KNX
    • Astro
    • oneWire
    Sitemaps und Rules konnte ich problemlos übernehmen. Für KNX musste ich im Prinzip nichts ändern (außer, dass die cfg-Dateien ja jetzt sinnvollerweise separiert sind). Allerdings zeigen meine Sitemaps die Werte des Astro-Bindings noch nicht wieder an.

    Jetzt stolpere ich darüber, wie das überhaupt funktionieren kann:
    • für KNX habe ich die KNX-Adressen immer noch in {}-Klammern stehen und das funktioniert
    • für das Astro-Binding ebenfalls in {}-Klammern - das funktioniert aber nicht
    Unter "Items" finde ich auch alle Einträge der Sitemap. Unter Things ist derzeit noch gar nichts. Wie genau ist das gedacht:
    • muss ich die Things vom Astro-Binding aus der Inobox übernehmen?
    • gibt es auch Things für das KNX-Binding?
    • wie konfiguriere ich denn jetzt in der items-Datei?
    Ihr merkt, so richtig bin ich in der 2er-Welt noch nicht angekommen. Mit eurer Hilfe wird das aber bestimmt schnell klappen ;-)

    Viele Grüße
    Daniel





    #2
    Aaaalso:

    wenn Du das Astro2-Binding verwendest, musst Du entweder ein Thing über das ./things/ Verzeichnis anlegen (mit einer .things Datei) oder Du musst über Paper UI oder eine der anderen Admin Oberfächen ein Thing erzeugen. Beim Astro Binding musst Du zumindest mal Länge und Breite (und optional Höhe über Null) angeben. Anschließend kannst Du auf die Channel des Things verweisen (dabei kannst Du den Channelnamen in Paper UI bequem in die Zwischenablage übernehmen, damit Du den Namen in der .items Datei einfach einfügen kannst.

    Wenn Du Things über Discovery anlegst, existieren sie allerdings ausschließlich im internen Speicher im json Format. Diese Datei ist zwar editierbar, aber nicht dazu gedacht. Entsprechend muss openHAB vor dem Bearbeiten beendet werden, damit Änderungen dann beim Neustart eingelesen werden können.
    Der sichere Weg führt also nach wie vor über die textuelle Konfiguration, die Du ohnehin gewohnt bist.

    Konkretes Beispiel: Zeit auf den knx Bus bringen, Steuerung der Läden nach Sonnenstand.
    My.things:
    Code:
    // Time and Date
    Thing ntp:ntp:home "Lokale Zeit" [hostname="router.zuhause.lokal",refresh=60000, refreshNtp=30, locale="de_DE", timeZone="Europe/Berlin"]
    
    // Astro
    Thing astro:sun:home "Sonne" @ "zuhause" [geolocation="49.9xxxxxx,8.6xxxxxx,130", interval=300] {
            Channels:
                    Type start : rise#start [
                            offset=-25,
                            earliest="06:00",
                            latest="08:00"
                    ]
                    Type start : set#start [
                            offset=25,
                            earliest="16:00",
                            latest="22:00"
                    ]
                    Type rangeEvent : rise#event [
                            offset=-25,
                            earliest="06:00",
                            latest="08:00"
                    ]
                    Type rangeEvent : set#event [
                            offset=25,
                            earliest="16:00",
                            latest="22:00"
                    ]
    }
    .items:
    Code:
    DateTime Datum "Datum: [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" <calendar> {channel="ntp:ntp:home:dateTime", knx="10.001:15/7/10, 11.001:15/7/11" }
    Number  Azimuth "Sonnenrichtung [%.1f°]"                                        <sun>   (MyAstro)               { channel="astro:sun:home:position#azimuth" }
    Number  Elevation       "Sonnenhöhe [%.1f°]"                                    <sun>   (MyAstro)               { channel="astro:sun:home:position#elevation" }
    DateTime        Sunrise_Time    "Sonnenaufgang [%1$tH:%1$tMh]"  <sunrise>       (MyAstro)               { channel="astro:sun:home:rise#start" }
    DateTime        Noon_Time       "Sonnenzenith [%1$tH:%1$tMh]"           <sun>   (MyAstro)               { channel="astro:sun:home:noon#start" }
    DateTime        Sunset_Time     "Sonnenuntergang [%1$tH:%1$tMh]"        <sunset>        (MyAstro)               { channel="astro:sun:home:set#start" }
    Das erste Item hab ich als Beispiel dazu gepackt, dass ein Durchreichen der Updates immer noch funktioniert.
    Wenn Du in einer Rule auf Sonnenaufgang oder Sonnenuntergang triggern willst, verwendest Du (ab OH2.2 ~ August2017)
    Code:
    rule "Sonnenaufgang"
    when
        Channel "astro:sun:home:rise#start" triggered start
    then
        ...
    end

    Kommentar


      #3
      Danke für die ausführliche Antwort!

      D.h. die von mir benötigten Bindings sind aus verschiedenen "Welten":
      • KNX - openhab 1
      • Astro - openhab2
      Ich hatte dann als nächstes tatsächlich mit der Paper UI getestet und hatte eine entsprechende .things-Datei im Verzeichnis ./things/ erwartet aber nicht gefunden. Mit deinen Infos konnte ich nun die entsprechenden json-Dateien in /var/lib/openhab2/jsondb finden.

      Ich werde das dann wieder "auflösen" und als Konfiguration in .things und .items-Dateien - so wie von dir beschrieben - deklarieren

      Bei den Rules bin ich noch unsicher. In der Dokumentation finde ich noch nicht die von dir genannte "Channel-Variante". Die alte Syntax scheint dann auch noch unterstütz zu werden?! ... sowohl für Item- als auch für Thing-Rules so wie ich das verstehe.
      Also sowas wie
      Code:
      Item <itemName> changed
      sollte dann auch noch funktionieren.

      Kommentar


        #4
        Die Schreibweise ist nicht alt als Trigger sind die Channels dazu gekommen. Die Dokumentation ist an dieser Stelle noch nicht aktualisiert, wie schon erwähnt geht das noch nicht so lange.
        Merken

        Kommentar

        Lädt...
        X