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. Tester
  4. Test Adapter Devices 0.3.x

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Test Adapter Devices 0.3.x

Geplant Angeheftet Gesperrt Verschoben Tester
devices
136 Beiträge 27 Kommentatoren 14.3k Aufrufe 24 Watching
  • Ä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.
  • paul53P paul53

    @muuulle sagte:

    Ich könnte die paar Alias auch flott händisch anlegen...

    Dann mache es.

    const id = 'alias.0';
    const obj = {
        type: 'meta',
        common: {
            name: 'Alias'
        },
        native: {}
    };
    if(!existsObject(id)) setObject(id, obj);
    
    M Offline
    M Offline
    muuulle
    schrieb am zuletzt editiert von
    #53

    @paul53
    Moin Paul,

    meine Programmierkenntnisse sind äußerst limitiert. Wo muss ich den Code einfügen? :male-construction-worker:

    paul53P 1 Antwort Letzte Antwort
    0
    • M muuulle

      @paul53
      Moin Paul,

      meine Programmierkenntnisse sind äußerst limitiert. Wo muss ich den Code einfügen? :male-construction-worker:

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #54

      @muuulle sagte:

      Wo muss ich den Code einfügen?

      als neues Javascript, starten und wieder beenden.

      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

      M 1 Antwort Letzte Antwort
      0
      • M muuulle

        Hallo zusammen,
        mein Alias.0 Ordner ist verschwunden. Mögliches versehentliches löschen nicht auszuschließen :astonished:

        Was kann ich tun?

        GarfonsoG Offline
        GarfonsoG Offline
        Garfonso
        Developer
        schrieb am zuletzt editiert von
        #55

        @muuulle said in Test Adapter Devices 0.3.x:

        Hallo zusammen,
        mein Alias.0 Ordner ist verschwunden. Mögliches versehentliches löschen nicht auszuschließen :astonished:

        Was kann ich tun?

        Bist du sicher, dass er gelöscht wurde? Wenn keine Elemente darin sind, wird er nicht als "Ordner" angezeigt und landet im Admin in der Objekt-Ansicht ganz unten bei den States.

        Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

        Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

        1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @muuulle sagte:

          Wo muss ich den Code einfügen?

          als neues Javascript, starten und wieder beenden.

          M Offline
          M Offline
          muuulle
          schrieb am zuletzt editiert von
          #56

          @paul53
          Alles geklappt. Danke!

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @muuulle sagte:

            Ich könnte die paar Alias auch flott händisch anlegen...

            Dann mache es.

            const id = 'alias.0';
            const obj = {
                type: 'meta',
                common: {
                    name: 'Alias'
                },
                native: {}
            };
            if(!existsObject(id)) setObject(id, obj);
            
            apollon77A Offline
            apollon77A Offline
            apollon77
            schrieb am zuletzt editiert von
            #57

            @paul53 Ein "iobroker setup first" sollte auch reichen

            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
            paul53P 1 Antwort Letzte Antwort
            0
            • apollon77A apollon77

              @paul53 Ein "iobroker setup first" sollte auch reichen

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #58

              @apollon77 sagte:

              Ein "iobroker setup first" sollte auch reichen

              Danke. Das hatte ich zwar vermutet, war mir aber nicht sicher.

              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
              • GarfonsoG Garfonso

                @martinschm
                Man kann dem alias sagen er soll die Daten noch manipulieren, bevor er sie in den Alias State schreibt (read logik) oder aus dem alias state in den original state (write logik). Soweit ich weiß geht das bisher nur über die RAW Ansicht des Objekts. Dort dann sowas eintragen:

                  "common": {
                    "name": "Buero batteryWarning",
                    "role": "indicator.lowbat",
                    "type": "boolean",
                    "read": true,
                    "write": false,
                    "smartName": false,
                    "alias": {
                      "id": "zigbee.0.00158d0003f3cea3.battery",
                      "read": "val < 20"
                    },
                

                Also wichtig die Zeile "read". Hier wird aus einer Batterie % Anzeige eine Batteriewarnung, wenn die Batterie unter 20% fällt. Damit kann man relativ lustige Sachen machen. "val" ist dabei in read der Wert des target state (also hier zigbee.0.00158d0003f3cea3.battery) und bei write der Wert des alias state.

                M Offline
                M Offline
                muuulle
                schrieb am zuletzt editiert von
                #59

                @Garfonso said in Test Adapter Devices 0.3.x:

                @martinschm
                Man kann dem alias sagen er soll die Daten noch manipulieren, bevor er sie in den Alias State schreibt (read logik) oder aus dem alias state in den original state (write logik). Soweit ich weiß geht das bisher nur über die RAW Ansicht des Objekts. Dort dann sowas eintragen:

                  "common": {
                    "name": "Buero batteryWarning",
                    "role": "indicator.lowbat",
                    "type": "boolean",
                    "read": true,
                    "write": false,
                    "smartName": false,
                    "alias": {
                      "id": "zigbee.0.00158d0003f3cea3.battery",
                      "read": "val < 20"
                    },
                

                Also wichtig die Zeile "read". Hier wird aus einer Batterie % Anzeige eine Batteriewarnung, wenn die Batterie unter 20% fällt. Damit kann man relativ lustige Sachen machen. "val" ist dabei in read der Wert des target state (also hier zigbee.0.00158d0003f3cea3.battery) und bei write der Wert des alias state.

                Moin @Garfonso
                LOWBAT hat mit deiner Anleitung super funktioniert.
                Meine aqara Sensoren kennen nur reachable. Kann man den Wert invertieren, dass ich UNREACH richtig füttern kann?

                paul53P 1 Antwort Letzte Antwort
                0
                • M muuulle

                  @Garfonso said in Test Adapter Devices 0.3.x:

                  @martinschm
                  Man kann dem alias sagen er soll die Daten noch manipulieren, bevor er sie in den Alias State schreibt (read logik) oder aus dem alias state in den original state (write logik). Soweit ich weiß geht das bisher nur über die RAW Ansicht des Objekts. Dort dann sowas eintragen:

                    "common": {
                      "name": "Buero batteryWarning",
                      "role": "indicator.lowbat",
                      "type": "boolean",
                      "read": true,
                      "write": false,
                      "smartName": false,
                      "alias": {
                        "id": "zigbee.0.00158d0003f3cea3.battery",
                        "read": "val < 20"
                      },
                  

                  Also wichtig die Zeile "read". Hier wird aus einer Batterie % Anzeige eine Batteriewarnung, wenn die Batterie unter 20% fällt. Damit kann man relativ lustige Sachen machen. "val" ist dabei in read der Wert des target state (also hier zigbee.0.00158d0003f3cea3.battery) und bei write der Wert des alias state.

                  Moin @Garfonso
                  LOWBAT hat mit deiner Anleitung super funktioniert.
                  Meine aqara Sensoren kennen nur reachable. Kann man den Wert invertieren, dass ich UNREACH richtig füttern kann?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #60

                  @muuulle sagte:

                  Kann man den Wert invertieren, dass ich UNREACH richtig füttern kann?

                        "read": "!val" // Alias read invertieren
                  

                  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

                  M 1 Antwort Letzte Antwort
                  2
                  • paul53P paul53

                    @muuulle sagte:

                    Kann man den Wert invertieren, dass ich UNREACH richtig füttern kann?

                          "read": "!val" // Alias read invertieren
                    
                    M Offline
                    M Offline
                    muuulle
                    schrieb am zuletzt editiert von
                    #61

                    @paul53
                    Super.
                    Ich habe jetzt alle meine unterschiedlichen Geräte vom Output vereinheitlicht.

                    Könnte ich jetzt auch alle LOWBAT/UNREACH mit nur einer Abfrage (Blockly?) anfragen?

                    Vielen Dank

                    K paul53P GarfonsoG 3 Antworten Letzte Antwort
                    0
                    • M muuulle

                      @paul53
                      Super.
                      Ich habe jetzt alle meine unterschiedlichen Geräte vom Output vereinheitlicht.

                      Könnte ich jetzt auch alle LOWBAT/UNREACH mit nur einer Abfrage (Blockly?) anfragen?

                      Vielen Dank

                      K Offline
                      K Offline
                      Kueppert
                      schrieb am zuletzt editiert von
                      #62

                      @muuulle schau mal hier rein:
                      https://forum.iobroker.net/topic/23370/fenster-und-andere-geräte-zählen-opt-alexa-ansagen/627
                      Für Hoematic wurde da schon was umgesetzt. Ich bin auch auf Xiaomi-Sensoren unterwegs und @dslraser baut dafür ggf. auch etwas. Wenn das nicht klappt, geh ich ggf auch über Alias.

                      UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                      1 Antwort Letzte Antwort
                      0
                      • M muuulle

                        @paul53
                        Super.
                        Ich habe jetzt alle meine unterschiedlichen Geräte vom Output vereinheitlicht.

                        Könnte ich jetzt auch alle LOWBAT/UNREACH mit nur einer Abfrage (Blockly?) anfragen?

                        Vielen Dank

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #63

                        @muuulle sagte:

                        Könnte ich jetzt auch alle LOWBAT/UNREACH mit nur einer Abfrage (Blockly?) anfragen?

                        Ja, jeweils für LOWBAT bzw. UNREACH mittels $Selector().

                        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
                        • M muuulle

                          @paul53
                          Super.
                          Ich habe jetzt alle meine unterschiedlichen Geräte vom Output vereinheitlicht.

                          Könnte ich jetzt auch alle LOWBAT/UNREACH mit nur einer Abfrage (Blockly?) anfragen?

                          Vielen Dank

                          GarfonsoG Offline
                          GarfonsoG Offline
                          Garfonso
                          Developer
                          schrieb am zuletzt editiert von
                          #64

                          @muuulle
                          Wenn sie alle gleich heißen, dann mit Javascript z.B. so:

                          //wenn struktur alias.0.Gerät.Unreach. Wenn noch mehr "Ordner" noch öfter .* einfügen.
                          $('[id=alias.0.*.UNREACH]').each(id => {
                              //was mit id machen, z.B. getState();
                          });
                          

                          Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

                          Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

                          M 1 Antwort Letzte Antwort
                          1
                          • GarfonsoG Garfonso

                            @muuulle
                            Wenn sie alle gleich heißen, dann mit Javascript z.B. so:

                            //wenn struktur alias.0.Gerät.Unreach. Wenn noch mehr "Ordner" noch öfter .* einfügen.
                            $('[id=alias.0.*.UNREACH]').each(id => {
                                //was mit id machen, z.B. getState();
                            });
                            
                            M Offline
                            M Offline
                            muuulle
                            schrieb am zuletzt editiert von
                            #65

                            @Garfonso
                            Danke. Wird am Wochenende gleich ausprobiert :relaxed:

                            1 Antwort Letzte Antwort
                            0
                            • Martin XM Offline
                              Martin XM Offline
                              Martin X
                              schrieb am zuletzt editiert von
                              #66

                              Vielleicht kann mir hier jemand helfen. Ich habe mehrer fragen zu iobroker.devices 0.3.6:

                              1. Wieso wirft der "Geräte Manager" ohne Fehlermeldung "states" wieder heraus?
                              2. Soweit ich herausgefunden habe, muss "role" und "type" des Datenpunktes mit der Vorgabe übereinstimmen. Aber z.B. wird unter Thermostate unter BOOST folgendes erwartet: "number, write, role=switch.power". Da kann ich createState() nutzen wie ich möchte diesen Datenpunkt wirft er mir immer wieder heraus. Dabei steht in der Dokumentation von IOBroker das ein "role=switch" ein boolean sein sollte (was aber auch nicht funktioniert). iobroker.Dokumentation
                              3. Wieso werden Datenpunkt mit vorgegeben smartname (erzeugt durch andere Adapter) nicht durchs hiden (Disable smart) gelöscht?
                              4. Was darf man alles in den alias Read/Write Funktionen von javascript benutzen? z.B. "Round()" etc. ist klar aber auch ein richtig ausgeschriebene "if else" oder nur das kurze "? :", welche variablen außer "val" sind erlaubt usw.?
                              paul53P GarfonsoG 2 Antworten Letzte Antwort
                              0
                              • Martin XM Martin X

                                Vielleicht kann mir hier jemand helfen. Ich habe mehrer fragen zu iobroker.devices 0.3.6:

                                1. Wieso wirft der "Geräte Manager" ohne Fehlermeldung "states" wieder heraus?
                                2. Soweit ich herausgefunden habe, muss "role" und "type" des Datenpunktes mit der Vorgabe übereinstimmen. Aber z.B. wird unter Thermostate unter BOOST folgendes erwartet: "number, write, role=switch.power". Da kann ich createState() nutzen wie ich möchte diesen Datenpunkt wirft er mir immer wieder heraus. Dabei steht in der Dokumentation von IOBroker das ein "role=switch" ein boolean sein sollte (was aber auch nicht funktioniert). iobroker.Dokumentation
                                3. Wieso werden Datenpunkt mit vorgegeben smartname (erzeugt durch andere Adapter) nicht durchs hiden (Disable smart) gelöscht?
                                4. Was darf man alles in den alias Read/Write Funktionen von javascript benutzen? z.B. "Round()" etc. ist klar aber auch ein richtig ausgeschriebene "if else" oder nur das kurze "? :", welche variablen außer "val" sind erlaubt usw.?
                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #67

                                @Martin-X sagte:

                                Was darf man alles in den alias Read/Write Funktionen von javascript benutzen?

                                Jeden nativen Javascript-Code, den man in eine Zeile packen kann.

                                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

                                Martin XM 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @Martin-X sagte:

                                  Was darf man alles in den alias Read/Write Funktionen von javascript benutzen?

                                  Jeden nativen Javascript-Code, den man in eine Zeile packen kann.

                                  Martin XM Offline
                                  Martin XM Offline
                                  Martin X
                                  schrieb am zuletzt editiert von Martin X
                                  #68

                                  @paul53
                                  Hmm eine Zeile ist relative: "if () {command1;command2;}" oder "getState()"...
                                  Soweit ich es bis jetzt herausgefunden habe, alles was mit nur einem ";" abgeschlossen werden kann bzw. alles ohne ";" und primitive data type operations. Aber danke für die schnell Antwort!

                                  Zumindest kann man "12.34" in "12,34" umwandeln. val.toString().split() usw. geht

                                  1 Antwort Letzte Antwort
                                  0
                                  • Martin XM Martin X

                                    Vielleicht kann mir hier jemand helfen. Ich habe mehrer fragen zu iobroker.devices 0.3.6:

                                    1. Wieso wirft der "Geräte Manager" ohne Fehlermeldung "states" wieder heraus?
                                    2. Soweit ich herausgefunden habe, muss "role" und "type" des Datenpunktes mit der Vorgabe übereinstimmen. Aber z.B. wird unter Thermostate unter BOOST folgendes erwartet: "number, write, role=switch.power". Da kann ich createState() nutzen wie ich möchte diesen Datenpunkt wirft er mir immer wieder heraus. Dabei steht in der Dokumentation von IOBroker das ein "role=switch" ein boolean sein sollte (was aber auch nicht funktioniert). iobroker.Dokumentation
                                    3. Wieso werden Datenpunkt mit vorgegeben smartname (erzeugt durch andere Adapter) nicht durchs hiden (Disable smart) gelöscht?
                                    4. Was darf man alles in den alias Read/Write Funktionen von javascript benutzen? z.B. "Round()" etc. ist klar aber auch ein richtig ausgeschriebene "if else" oder nur das kurze "? :", welche variablen außer "val" sind erlaubt usw.?
                                    GarfonsoG Offline
                                    GarfonsoG Offline
                                    Garfonso
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #69

                                    @Martin-X said in Test Adapter Devices 0.3.x:

                                    1. Wieso wirft der "Geräte Manager" ohne Fehlermeldung "states" wieder heraus?

                                    Verstehe die Frage nicht ganz. Aber ich vermute, dass es daran liegt, dass es keine "festen" Geräte gibt. Sondern die Geräte werden immer dynamisch mit dem iobroker.type-detector angelegt.
                                    Wenn dabei states auf der Strecke bleiben, dann sind sich wohl devices-adapter und type-detector nicht ganz einig, wie das nun sein sollte -> sollte nicht passieren -> am besten möglichst genau eingrenzen und issue aufmachen (falls es noch keins gibt).

                                    1. Soweit ich herausgefunden habe, muss "role" und "type" des Datenpunktes mit der Vorgabe übereinstimmen. Aber z.B. wird unter Thermostate unter BOOST folgendes erwartet: "number, write, role=switch.power". Da kann ich createState() nutzen wie ich möchte diesen Datenpunkt wirft er mir immer wieder heraus. Dabei steht in der Dokumentation von IOBroker das ein "role=switch" ein boolean sein sollte (was aber auch nicht funktioniert). iobroker.Dokumentation

                                    Das halte ich für einen Bug im type-detector. Daher habe ich hier einen PR erzeugt, der das fixt. Leider hat bisher keiner drauf geguckt. @Bluefox scheint im Moment eher wenig Zeit zu haben... :-( Weiß nicht, wer sonst noch beim type-detector mergen würde, ggf. @apollon77 ?

                                    1. Wieso werden Datenpunkt mit vorgegeben smartname (erzeugt durch andere Adapter) nicht durchs hiden (Disable smart) gelöscht?

                                    Vermutlich weil der smartname im ursprünglichen Objekt angelegt ist (wenn du sagst durch "andere Adapter") und es daher keine Rolle spielt ob das Alias-Objekt den smartname disabled oder nicht.
                                    (Auch hier funktioniert es so, dass der iot Adapter alle Objekte anguckt und prüft ob die im common einen Eintrag smartname: { ... } haben. Die aliase und Ursprungsobjekte werden an der Stelle getrennt behandelt, haben beide einen smartnamen, werden auch beide bei iot auftauchen).

                                    Frage dazu noch: Gibt es wirklich adapter, die die Smartnamen direkt im Objekt anlegen? Oder werden die nur automatisch von iot aufgenommen, weil (ggf. vom Adapter) Raum & Funktion belegt werden? Dann könntest du für den Raum & Funktion in den Instanzeinstellungen von iot die automatische Geräteerzeugung deaktivieren -> müsste dann weg sein.

                                    1. Was darf man alles in den alias Read/Write Funktionen von javascript benutzen? z.B. "Round()" etc. ist klar aber auch ein richtig ausgeschriebene "if else" oder nur das kurze "? :", welche variablen außer "val" sind erlaubt usw.?

                                    Du darfst ganz sicher nichts asynchrones machen, also das "getState" (geht im Adapter / Controller eh anders) geht sicherlich nicht (leider).

                                    Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

                                    Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

                                    paul53P Martin XM 2 Antworten Letzte Antwort
                                    0
                                    • GarfonsoG Garfonso

                                      @Martin-X said in Test Adapter Devices 0.3.x:

                                      1. Wieso wirft der "Geräte Manager" ohne Fehlermeldung "states" wieder heraus?

                                      Verstehe die Frage nicht ganz. Aber ich vermute, dass es daran liegt, dass es keine "festen" Geräte gibt. Sondern die Geräte werden immer dynamisch mit dem iobroker.type-detector angelegt.
                                      Wenn dabei states auf der Strecke bleiben, dann sind sich wohl devices-adapter und type-detector nicht ganz einig, wie das nun sein sollte -> sollte nicht passieren -> am besten möglichst genau eingrenzen und issue aufmachen (falls es noch keins gibt).

                                      1. Soweit ich herausgefunden habe, muss "role" und "type" des Datenpunktes mit der Vorgabe übereinstimmen. Aber z.B. wird unter Thermostate unter BOOST folgendes erwartet: "number, write, role=switch.power". Da kann ich createState() nutzen wie ich möchte diesen Datenpunkt wirft er mir immer wieder heraus. Dabei steht in der Dokumentation von IOBroker das ein "role=switch" ein boolean sein sollte (was aber auch nicht funktioniert). iobroker.Dokumentation

                                      Das halte ich für einen Bug im type-detector. Daher habe ich hier einen PR erzeugt, der das fixt. Leider hat bisher keiner drauf geguckt. @Bluefox scheint im Moment eher wenig Zeit zu haben... :-( Weiß nicht, wer sonst noch beim type-detector mergen würde, ggf. @apollon77 ?

                                      1. Wieso werden Datenpunkt mit vorgegeben smartname (erzeugt durch andere Adapter) nicht durchs hiden (Disable smart) gelöscht?

                                      Vermutlich weil der smartname im ursprünglichen Objekt angelegt ist (wenn du sagst durch "andere Adapter") und es daher keine Rolle spielt ob das Alias-Objekt den smartname disabled oder nicht.
                                      (Auch hier funktioniert es so, dass der iot Adapter alle Objekte anguckt und prüft ob die im common einen Eintrag smartname: { ... } haben. Die aliase und Ursprungsobjekte werden an der Stelle getrennt behandelt, haben beide einen smartnamen, werden auch beide bei iot auftauchen).

                                      Frage dazu noch: Gibt es wirklich adapter, die die Smartnamen direkt im Objekt anlegen? Oder werden die nur automatisch von iot aufgenommen, weil (ggf. vom Adapter) Raum & Funktion belegt werden? Dann könntest du für den Raum & Funktion in den Instanzeinstellungen von iot die automatische Geräteerzeugung deaktivieren -> müsste dann weg sein.

                                      1. Was darf man alles in den alias Read/Write Funktionen von javascript benutzen? z.B. "Round()" etc. ist klar aber auch ein richtig ausgeschriebene "if else" oder nur das kurze "? :", welche variablen außer "val" sind erlaubt usw.?

                                      Du darfst ganz sicher nichts asynchrones machen, also das "getState" (geht im Adapter / Controller eh anders) geht sicherlich nicht (leider).

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #70

                                      @Garfonso sagte:

                                      Du darfst ganz sicher nichts asynchrones machen

                                      Ja, setTimeout() und setInterval() werden sicherlich nicht funktionieren, obwohl natives Javascript.

                                      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
                                      • GarfonsoG Garfonso

                                        @Martin-X said in Test Adapter Devices 0.3.x:

                                        1. Wieso wirft der "Geräte Manager" ohne Fehlermeldung "states" wieder heraus?

                                        Verstehe die Frage nicht ganz. Aber ich vermute, dass es daran liegt, dass es keine "festen" Geräte gibt. Sondern die Geräte werden immer dynamisch mit dem iobroker.type-detector angelegt.
                                        Wenn dabei states auf der Strecke bleiben, dann sind sich wohl devices-adapter und type-detector nicht ganz einig, wie das nun sein sollte -> sollte nicht passieren -> am besten möglichst genau eingrenzen und issue aufmachen (falls es noch keins gibt).

                                        1. Soweit ich herausgefunden habe, muss "role" und "type" des Datenpunktes mit der Vorgabe übereinstimmen. Aber z.B. wird unter Thermostate unter BOOST folgendes erwartet: "number, write, role=switch.power". Da kann ich createState() nutzen wie ich möchte diesen Datenpunkt wirft er mir immer wieder heraus. Dabei steht in der Dokumentation von IOBroker das ein "role=switch" ein boolean sein sollte (was aber auch nicht funktioniert). iobroker.Dokumentation

                                        Das halte ich für einen Bug im type-detector. Daher habe ich hier einen PR erzeugt, der das fixt. Leider hat bisher keiner drauf geguckt. @Bluefox scheint im Moment eher wenig Zeit zu haben... :-( Weiß nicht, wer sonst noch beim type-detector mergen würde, ggf. @apollon77 ?

                                        1. Wieso werden Datenpunkt mit vorgegeben smartname (erzeugt durch andere Adapter) nicht durchs hiden (Disable smart) gelöscht?

                                        Vermutlich weil der smartname im ursprünglichen Objekt angelegt ist (wenn du sagst durch "andere Adapter") und es daher keine Rolle spielt ob das Alias-Objekt den smartname disabled oder nicht.
                                        (Auch hier funktioniert es so, dass der iot Adapter alle Objekte anguckt und prüft ob die im common einen Eintrag smartname: { ... } haben. Die aliase und Ursprungsobjekte werden an der Stelle getrennt behandelt, haben beide einen smartnamen, werden auch beide bei iot auftauchen).

                                        Frage dazu noch: Gibt es wirklich adapter, die die Smartnamen direkt im Objekt anlegen? Oder werden die nur automatisch von iot aufgenommen, weil (ggf. vom Adapter) Raum & Funktion belegt werden? Dann könntest du für den Raum & Funktion in den Instanzeinstellungen von iot die automatische Geräteerzeugung deaktivieren -> müsste dann weg sein.

                                        1. Was darf man alles in den alias Read/Write Funktionen von javascript benutzen? z.B. "Round()" etc. ist klar aber auch ein richtig ausgeschriebene "if else" oder nur das kurze "? :", welche variablen außer "val" sind erlaubt usw.?

                                        Du darfst ganz sicher nichts asynchrones machen, also das "getState" (geht im Adapter / Controller eh anders) geht sicherlich nicht (leider).

                                        Martin XM Offline
                                        Martin XM Offline
                                        Martin X
                                        schrieb am zuletzt editiert von Martin X
                                        #71

                                        @Garfonso Vielen Dank!
                                        Zu 1. Die 1. frage war wohl schlecht formuliert aber du hast sie trotzdem richtig verstanden. Was mich stört, ist nicht das der device-adapter sich nicht mit dem typer-detector versteht etc. Sondern das der device-adapter ja ein fertiges Template für ein Geräte anzeigt (eine Eingabemaske die ich gut finde), nur beim bestätigen wird kein Fehler geworfen, wenn einige Datenpunkt nicht dem Template entsprechen. Das wird einfach nur dem type-detector überlassen was der device-adapter dann z.B. idealerweise für ein Geräte hält oder halt für zwei/drei etc. Geräte.
                                        Zu 2. Naja wie du schon im PR schreibst, vielleicht ist das auch kein Fehler, sondern liegt halt an der spärlichen, teils widersprüchlichen Dokumentation etc. Denn ein "Switch" könnte man auch als ein "switch case"/"selector" verstehen. :astonished: Das ist halt in der deutschen Sprache eindeutig und unverwechselbar.
                                        Zu 3. Jaein zu "es daher keine Rolle spielt", denn der Smartname muss eindeutig sein, damit er mit Alexa etc. keine Probleme macht. Nun kann man aber per Adapter ein Smartname z.B. im Yeelight Adapter vergeben, was dann aber ein großes Problem ist wenn auch der Alias-Name wie der vergebenen Smartname (per Adapter) sich gleicht. Das hat mich einige Stunden gekostet um hinter diesen Fehler zu kommen, denn dazu muss man sich mal die RAW Datenpunkt anschauen und verstehen. (Bitte um Doku!)
                                        Zu 4. Leider sieht man dem Funktionsaufruf nicht an ob er asynchron oder synchron funktioniert, was aber leider auch an javascript liegt und ich wahrlich kein javascript "crack" bin. Viel zu viele Möglichkeiten die sich nur durch die Struktur unterscheiden und nicht durch ein Schlüsselwort.

                                        1 Antwort Letzte Antwort
                                        0
                                        • A Offline
                                          A Offline
                                          andi2055
                                          schrieb am zuletzt editiert von
                                          #72

                                          Ich habe den gerade über Github installiert.
                                          Ich sehe im Admin-Menü aber nichts.

                                          Admin etc. alles aktuell.
                                          Steh ich auf dem Schlauch oder was muss ich tun?

                                          a9695211-072b-4b06-b7ae-83962e376194-grafik.png

                                          apollon77A 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

                                          442

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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