Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter Devices 0.3.x

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Test Adapter Devices 0.3.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      muuulle @paul53 last edited by

      @paul53
      Alles geklappt. Danke!

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 @paul53 last edited by

        @paul53 Ein "iobroker setup first" sollte auch reichen

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @apollon77 last edited by

          @apollon77 sagte:

          Ein "iobroker setup first" sollte auch reichen

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

          1 Reply Last reply Reply Quote 0
          • M
            muuulle @Garfonso last edited by

            @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?

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @muuulle last edited by paul53

              @muuulle sagte:

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

                    "read": "!val" // Alias read invertieren
              
              M 1 Reply Last reply Reply Quote 2
              • M
                muuulle @paul53 last edited by

                @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 paul53 Garfonso 3 Replies Last reply Reply Quote 0
                • K
                  Kueppert @muuulle last edited by

                  @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.

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @muuulle last edited by

                    @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().

                    1 Reply Last reply Reply Quote 0
                    • Garfonso
                      Garfonso Developer @muuulle last edited by

                      @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 1 Reply Last reply Reply Quote 1
                      • M
                        muuulle @Garfonso last edited by

                        @Garfonso
                        Danke. Wird am Wochenende gleich ausprobiert ☺

                        1 Reply Last reply Reply Quote 0
                        • Martin X
                          Martin X last edited by

                          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.?
                          paul53 Garfonso 2 Replies Last reply Reply Quote 0
                          • paul53
                            paul53 @Martin X last edited by

                            @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 X 1 Reply Last reply Reply Quote 0
                            • Martin X
                              Martin X @paul53 last edited by Martin X

                              @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 Reply Last reply Reply Quote 0
                              • Garfonso
                                Garfonso Developer @Martin X last edited by

                                @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).

                                paul53 Martin X 2 Replies Last reply Reply Quote 0
                                • paul53
                                  paul53 @Garfonso last edited by

                                  @Garfonso sagte:

                                  Du darfst ganz sicher nichts asynchrones machen

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

                                  1 Reply Last reply Reply Quote 0
                                  • Martin X
                                    Martin X @Garfonso last edited by Martin X

                                    @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. 😲 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 Reply Last reply Reply Quote 0
                                    • A
                                      andi2055 last edited by

                                      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

                                      apollon77 1 Reply Last reply Reply Quote 0
                                      • apollon77
                                        apollon77 @andi2055 last edited by

                                        @andi2055 Hast Du - wenn Du über Github installiert hast ... (warum auch immer weil ist inzwischen im Repo) - auch eine Instanz angelegt? Weil das passiert nicht automatisch bei einem GitHub Install

                                        A 1 Reply Last reply Reply Quote 0
                                        • A
                                          andi2055 @apollon77 last edited by

                                          @apollon77
                                          Ok, Danke. Wenn man nach "Geräte verwalten" sucht, dann findet man ihn. Ich hatte "Devices" gesucht und daher nicht gefunden. Ich hätte mir den Screenshot oben genauer ansehen sollen. Ich war vom Titel "Test Adapter Devices" zu sehr geprägt.

                                          Daher hatte ich Github verwendet. Das mit Instanz manuell anlegen war mir neu...
                                          Jetzt hat's funktioniert.
                                          Danke!

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            Frank579 last edited by

                                            Hallo zusammen
                                            nachdem ich nun zum erstem mal ein Gerät tauchen muss und überall Ändern ..... 🤷‍♂️ habe ich mir gedacht jetzt diesen Adapter zu nutzen ... soweit klappt es auch schon, habe nur ein Problem mit der Gosund Steckdose. Wenn ich sie anlege muss ich Ja die DP wählen, müsste aber auch für mein Trocknerscript die Verbräuche haben wo lege ich die an?? bin ich blind oder geht das (noch) nicht. hoffe jemand weiß rat 🙂
                                            Danke

                                            Garfonso 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            839
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            devices
                                            27
                                            136
                                            10231
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo