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. CreateState Frage was automatisch angelegt wird?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

CreateState Frage was automatisch angelegt wird?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
13 Beiträge 3 Kommentatoren 3.5k 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.
  • apollon77A Online
    apollon77A Online
    apollon77
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich überlege gerade an einem Adapter für die Einbindung von "nut" - also USV Daten.

    Von nut kommen Daten in keys ala "battery.voltage.nominal" und dem entsprechenden Wert zurück. Diese wollte ich am liebsten auch in dieser Struktur ins iobroker bekommen. Frage: kynn ich ein "createState" mit dem Key machen und die Channels werden automatisch angelegt oder muss ich was basteln um diese "." notation wieder auseinanderzunehmen um die Cheánnels alle einzeln manuell anlegen zu lassen?

    Hat ein anderer Adapter sowas schon gemacht?

    Danke für Tips

    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
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Auf die Schnelle:

      Im Skript geht es.

      createState('oben.mitte.unten', 0);
      ```` ![261_bildschirmfoto_2016-07-02_um_13.13.13.jpg](/assets/uploads/files/261_bildschirmfoto_2016-07-02_um_13.13.13.jpg) 
      
      Gruß
      
      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • apollon77A Online
        apollon77A Online
        apollon77
        schrieb am zuletzt editiert von
        #3

        Cool, Danke, Das wollte ich wissen :-)

        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
        • apollon77A Online
          apollon77A Online
          apollon77
          schrieb am zuletzt editiert von
          #4

          setzt "createState" den Wert auch wenn der Key das schon angelegt war?

          also:

          createState("key.name",0);

          createState("key.name",1);

          Ist der Wert danach 1?

          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
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            Für das Ändern des Wertes ist

            setState("key.name", 1);
            

            zuständig. Es funktioniert allerdings nicht unmittelbar nach createstate(), da createstate() etwas Zeit braucht.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • apollon77A Online
              apollon77A Online
              apollon77
              schrieb am zuletzt editiert von
              #6

              hm … wie findet man raus ob ein State schon existiert oder nicht?

              Das Problem ist: Jeder NUT-Treiber liefert pot. andere Werte zurück. Bedeutet: die anzulegenden States kommen quasi aus dem Response.

              Also müsste ich checken ob ein State da ist oder ob er angelegt werden muss wenn ich die Daten durchgehe ...

              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
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                Du solltest schon wissen, welche Werte / Ereignisse in Datenpunkten angezeigt werden sollen. Alle anderen Werte werden ignoriert.

                Eine ähnliche Aufgabenstellung wird http://forum.iobroker.net/viewtopic.php?f=23&t=3048&start=20#p29650 behandelt.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • apollon77A Online
                  apollon77A Online
                  apollon77
                  schrieb am zuletzt editiert von
                  #8

                  Das ist in meinen Augen nicht so einfach:Ich habe zwei verschienene APC-USVs und die liefern unterschiedliche Werte. "NUT" als Protokoll unterstützt noch einen Haufen weiterer USVs von allen möglichen Herstellern.

                  Wenn ich jetzt eine Auswahl mache limitiere ich mögliche andere Adapter-Nutzer die ggf ganz andere Werte interessant finden.

                  Also hätte ich aktuell den Ansatz gewählt die Daten die NUT zurückliefert auch in ioBroker bereitzustellen - und damit ist es nun mal dynamisch je nach USV.

                  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
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    Bei einem Adapter sieht es natürlich anders aus - das Beispiel von Pix war für den Javascript-Adapter. Für die Adapter-Entwicklung gibt es abweichende https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#functions (z.B. createDevice, createChannel, createState), die dann anzuwenden wären.

                    Ich vermute mal, dass es eine Möglichkeit zur Abfrage gibt, welche "keys" vorhanden sind ?

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • apollon77A Online
                      apollon77A Online
                      apollon77
                      schrieb am zuletzt editiert von
                      #10

                      Jupp, diese Funktionsliste hatte ich auch gefunden … aber dann waren genau diese Fragen offen :-)

                      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
                      • P Offline
                        P Offline
                        pix
                        schrieb am zuletzt editiert von
                        #11

                        @apollon77:

                        Hat ein anderer Adapter sowas schon gemacht? `
                        Hab es (wie andere auch) mal beim homepilot Adapter verwendet.

                        https://github.com/Pix---/ioBroker.home ... er/main.js

                        Das gibt es den Befehl adapter.setObjectNotExists

                        // create Channel DeviceID
                            adapter.setObjectNotExists(path, {
                                type: 'channel',
                                role: '',
                                common: {
                                    name: devicename + ' (Device ID ' + deviceid + ')'
                                },
                                native: {}
                            });
                            // create States
                            adapter.setObjectNotExists(path + '.name', {
                                type: 'state',
                                common: {
                                    name: 'name ' + devicename,
                                    desc: 'name stored in homepilot for device ' + deviceid,
                                    type: 'string',
                                    read: true,
                                    write: false
                                },
                                native: {}
                            });
                        
                        

                        Erst wird geprüft, ob das Objekt schon existiert und dann erst angelegt (auch mit Rückmeldung).

                        adapter.setObjectNotExists(path + '.level', {
                                type: 'state',
                                common: {
                                    name: 'level ' + devicename,
                                    desc: 'level of device ' + deviceid,
                                    type: 'number',
                                    min: 0,
                                    max: 100,
                                    unit: '%',
                                    read: true,
                                    write: false
                                },
                                native: {}
                            }, function(err, obj) {
                                if (!err && obj) adapter.log.info('Objects for ' + product + '(' + deviceid + ') created');
                            });
                        

                        Danach kannst du mit adapter.setState die Objekte füllen.

                        Gruß

                        Pix

                        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                        1 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #12

                          @apollon77:

                          Frage: kynn ich ein "createState" mit dem Key machen und die Channels werden automatisch angelegt oder muss ich was basteln um diese "." notation wieder auseinanderzunehmen um die Cheánnels alle einzeln manuell anlegen zu lassen? `
                          Das "createState" des JS-Adapters erzeugt kein "device" und auch keinen "channel", sondern erzeugt bei einem Punkt im Namen nur eine optische Trennung (Ordnerstruktur). Es wird also nichts weiter übrig bleiben, als diese "." notation wieder auseinanderzunehmen.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0
                          • apollon77A Online
                            apollon77A Online
                            apollon77
                            schrieb am zuletzt editiert von
                            #13

                            @pix:

                            @apollon77:

                            Hat ein anderer Adapter sowas schon gemacht? `
                            Hab es (wie andere auch) mal beim homepilot Adapter verwendet.

                            https://github.com/Pix---/ioBroker.home ... er/main.js

                            Das gibt es den Befehl adapter.setObjectNotExists `

                            Heisst ich muss ein "battery.blubb.bla" über Schleifen/Rekurion auseinandernehmen um jeweils die Pfadteile nacheinander anzulegen und dann zu füllen … :-(

                            Ok, dann muss ich doch etwas tiefer rein und vllt doch was kleines Rekursives basteln :-)

                            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

                            460

                            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