Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Neuer Adapter: wie sinnvoll konfigurieren?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Neuer Adapter: wie sinnvoll konfigurieren?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
4 Beiträge 3 Kommentatoren 1.3k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Rene_HMR Offline
    Rene_HMR Offline
    Rene_HM
    Developer
    schrieb am zuletzt editiert von
    #1

    Ich baue gerade an einem Adapter, der Daten von verschiedenen Arduino-Nano-based Sensoren empfängt. Das funktioniert schon soweit. Die Daten (hauptsächlich Temperatur, Luftdruck, Luftfeuchtigkeit, Helligkeit,…) können mit vis visualisiert werden. Der gleiche Adapter kann Daten aber auch versenden. Dies Möglichkeit nutze ich für eine kleine 1.8 '' - Anzeige auch Arduino-Nano-based.

    Mein Problem ist, wie konfiguriere ich den Adpater am sinnvollsten. im Moment lese ich die Datenpunkte, welche ich zur Anzeige sende, hardcoded mittels

    adapter.getForeignState('weatherunderground.0.forecast_day.0d.icon', function (err, obj)
    

    oder

    adapter.getForeignState('hm-rpc.0.KEQ0766678.1.HUMIDITY', function (err, obj)
    

    aus.

    Sinnvollerweise sollte dies aber außerhalb des Quellcodes konfigurierbar werden.

    Was ist da best practice?

    Nutze ich die Konfigurationsseite des Adapters? Dann müsste ich alle Datenpunkte dort zur Auswahl (evtl. drop down) anbieten. Oder nutze ich besser den Objekte-Tab im admin? Da sind die Datenpunkte ja schon alle vorhanden…

    Für Vorschläge wäre ich dankbar...

    1 Antwort Letzte Antwort
    0
    • Jey CeeJ Online
      Jey CeeJ Online
      Jey Cee
      Developer
      schrieb am zuletzt editiert von
      #2

      Wenn ich richtig verstanden hab was du willst dann gar nicht.

      Das was du beschreibst löst man in iobroker mit JS oder Blockly in form eines Skripts.

      Ein Adapter soll nur die Daten und Funktionen bereit stellen die in Verbindung mit dem Gerät stehen.

      Wann und wie die Daten mit anderen Adaptern ausgetauscht werden entscheidet jeder Nutzer selber. Wenn du jetzt aber hier was in der Konfiguration vorgibst und das auch noch auf eine Art und weise die von dem Standard in ioBroker komplett abweicht ist das ganze System gefährdet. Da es dann nicht mehr Konsistent ist.

      Korrekter weg:

      Du musst auf Änderungen deiner Objekte reagieren und dann die Daten an das Gerät senden, je nach Struktur deiner Objekte kannst du die nötigen Informationen (port, IP, etc) in den Natives deiner Objekte ablegen oder in der Konfiguration eine Geräte Liste anlegen. So eine Liste gibt es zum Beispiel beim Sonos Adapter. Ziel ist es das man deine Objekte beschreiben kann mit den Informationen die man z.B. an ein Display senden möchte. Und den Rest muss dann dein Adapter machen.

      Gesendet von meinem m8 mit Tapatalk

      Persönlicher Support
      Spenden -> paypal.me/J3YC33

      1 Antwort Letzte Antwort
      0
      • Rene_HMR Offline
        Rene_HMR Offline
        Rene_HM
        Developer
        schrieb am zuletzt editiert von
        #3

        Ich habe das ganze nun wie folgt gelöst:

        • Das Display meldet sich ja von sich aus. Mit dieser Meldung lege ich ein neues device an.

        • Darunter lege ich die notwendigen Datenpunkte an (write=true)

        1391_adapter.png

        • jedes Mal, wenn das Display "I'm there" sendet, erhält es den aktuellen Wert dieser Datenpunkte gesendet.

        • in einem zusätzlichem script warte ich nun auf Änderung von z.Bsp. dem Wettersymbol. Bei Änderung schreibt dieses script auf die oben genannten Datenpunkte des entsprechenden Displays.

        on('weatherunderground.0.forecast_day.0d.icon', function (obj) {
            var icon = obj.newState.val;
            setState('myhomecontrol.0.98EF82180000.WeatherIcon2Display', icon);
        });
        
        
        1 Antwort Letzte Antwort
        0
        • apollon77A Offline
          apollon77A Offline
          apollon77
          schrieb am zuletzt editiert von
          #4

          Hi Rene,

          genau so wäre auch meine Empfehlung gewesen :-)

          Das ist der Weg der die größte Flexibilität für die Nutzer bietet.

          Im Adapter aufpassen das Du für die "Schreibaktionen" nur die mit "ack=false" beachtest und dann nach dem senden mit "ack=true" quasi bestätigst.

          Das ist Teil des Grundkonzepts: Finale Werte werden mit "ack=true" geschrieben.

          Eine "Aktion" die ein Adapter ausführen soll wird immer mit "ack=false" an den Adapter gesendet und wenn dieser Sie verarbeitet hat beschreibt er den Datenpunkt dann mit dem aktuellen Wert (im Zweifel bei Dir wohl eher der gleiche Wert) und "ack=true" um es zu bestätigen.

          Eine Frage noch: Das sieht mir ein bissl nach "eigenen" Arduino-basierten Geräten aus … stellst Du die Anleitungen wie man die baut mit zur Verfügung? Weil sonst ist das ein Adapter für etwas was nur Du hast ... :-) Oder was genau sind das für Geräte und was braucht man?

          Für alle Deine Adapter habe ich noch eine Bitte: Baue bitte noch mindestens das Basis-Adapter-Testing mit Travis-CI und Appveyor ein. Infos unter http://forum.iobroker.net/viewtopic.php ... ead#unread . Bei Fragen gern an mich. Als Referenz kannst DU viele Adapter ansehen. Mein "nut"-Adapter iobroker.nur z.B. (wobei Du da den Adapter-Spezifischen test-code rausnehmen musst). Auch in den Adapter-Templates ist das drin.

          Dann kurz mit dem Github-Account bei Travis-CI und Appveyor anmelden, Projekte da aktivieren und fertig :-)

          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          561

          Online

          32.7k

          Benutzer

          82.3k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe