Ankündigung

Einklappen
Keine Ankündigung bisher.

Items dynamisch erzeugen

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

    Items dynamisch erzeugen

    Hallo zusammen,

    ich würde gern Items in OH dynamisch zur Laufzeit erzeugen.

    Mein Szenario sieht folgendermaßen aus:
    Ich habe also eine Regel die eine Action aufruft. In der Action soll dann das Item erstellt werden und mit Hilfe eines ItemProviders in der ItemRegistry abgelegt werden.

    Dazu habe ich schon einen ItemProvider registriert. Dieser funktioniert auch erstmal soweit, dass die getItems() Methode beim Start von OH aufgerufen wird und eine initiale Liste von Items zurückgibt und diese dann auch im OH registriert.

    Nun stellt sich mir aber die Frage, wie ich zur Laufzeit meinen ItemProvider updaten und neue Items hinzufügen kann. Es gibt ja einen ItemsChangeListener, nur weiß ich nicht so recht was ich damit anfangen soll

    Ich hoffe mir kann jemand helfen! Danke schon mal im voraus!

    #2
    Hi Marcel,

    diese Möglichkeit ist zwar in openHAB1 grundsätzlich vorgesehen, aber es da so ein paar Detail-Fallstricke, die man beachten müsste.

    Was genau ist denn Dein Anwendungsfall?

    Gruß,

    Thomas E.-E.
    Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

    Kommentar


      #3
      Hallo Thomas,

      danke für deine Antwort.

      Also ich möchte einen Lichtwecker (MiLight) bauen, der sich über eine Android App steuern lässt. In der App soll quasi ein Wecker mit seinen speziellen Eigenschaften (Weckzeit, Farbverlauf, etc.) erstellt werden können. Das wird alles in ein JSON String gepackt und per RestAPI an ein StringItem im OH gesendet. Ändert sich dieses StringItem so wird eine Action aufgerufen, die wiederum den JSON String auswerten und daraus Items erzeugt.

      Bis dahin funktioniert alles prima, nur weiß ich nicht wie ich die erstellen Items in die ItemRegistry bekommen soll. Die ItemRegistryImpl implementiert ja auch einen ItemChangeListener und somit auch eine Methode itemAdded(ItemProvider provider, Item item) die ein Item in einen ItemProvider packt, nur weiß ich nicht wie ich darauf zugreifen soll.

      Kommentar

      Lädt...
      X