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. ioBroker Allgemein
  4. Wo nimmt der SQL-Adapter die Datentypen her?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Wo nimmt der SQL-Adapter die Datentypen her?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
17 Beiträge 3 Kommentatoren 1.4k 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.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #8

    Wenn common.type = "number" deklariert es, bedeutet es nicht, dass state.val auch einen Wert vom Typ "number" enthält. Man kann auch einen String in den Datenpunkt schreiben, denn es erfolgt keine Typprüfung - nur der JS-Adapter liefert neuerdings eine Warnung.

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

      Achso - jetzt verstehe ich. Aus irgend einem Grund ist ioBroker wohl mit meinem Wert den ich (über MQTT-Adapter) für den Datenpunkt liefere nicht so recht zufrieden und schreibt dann einfach einen String in den als Number definierten DP - richtig?

      Wenn das wirklich so ist - brrrr einfach grauslich diese ganzen impliziten Typkonvertierungen die sich Javascript da selbständig ausdenkt. Ich hatte ja anfangs gehofft, dass Javascript und ich doch noch Freunde werden, aber leider erhält diese Freundschaft immer wieder schmerzhafte Fußtritte ;)

      Dann vermute ich als Erstes, dass ich Komma und Punkt in den Dezimalwerten austauschen muss…

      Trotzdem Vielen Dank für Eure Hilfe.

      22 HM-Geräte; PivCCU2 auf RasPi

      ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

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

        @Thisoft:

        Aus irgend einem Grund ist ioBroker wohl mit meinem Wert den ich (über MQTT-Adapter) für den Datenpunkt liefere nicht so recht zufrieden und schreibt dann einfach einen String in den als Number definierten DP - richtig? `
        Da es sich um Datenpunkte des MQTT-Adapters handelt, ist wohl der Adapter oder die eigentliche Quelle Ursache für den Typ "string".

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

          Ja, wie gesagt. Ich gehe davon aus dass da über MQTT das "falsche" Dezimaltrennzeichen ankommt weil es nur bei den DP's passiert wo Dezimalwerte übertragen werden. Muss ich mir anschauen wenn ich wieder zuhause bin.

          Aber um auf den Einwand von Bluefox dass "die Leute es nicht pflegen" zurückzukommen. Die Aussage ist sicherlich berechtigt, da ein "Nichtprogrammierer" vermutlich gar nicht wirklich weiß was er da pflegen soll. Und für Leute wie mich die eben andere Programmiersprachen gewohnt sind ist es auch nicht so einfach etwas zu pflegen wenn man keine Information bekommt dass was falsch läuft und stattdessen Javascript selbständig was zusammenmurkst was nicht zusammengehört. Woher soll ich eigentlich wissen, welches Dezimaltrennzeichen hier z.B. erwartet wird damit alles korrekt erkannt wird - das aus den Systemeinstellungen auf dem ioBroker-Host? oder ganz allgemein das englisch/amerikanische? oder ist das eine JS-Grundeinstellung? Noch schlimmer wird's dann mit Datums-/Zeitformaten…

          Nix für ungut - vielleicht wäre es ja überlegenswert für zukünftige Verbesserungen in ioBroker die lobenswerter Weise in den JS-Adapter eingebaute Typprüfung systemweit auszubauen. Der Bedarf bzw. Sinn wurde ja offensichtlich bereits erkannt ;)

          Viele Grüße

          Thilo

          22 HM-Geräte; PivCCU2 auf RasPi

          ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

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

            @Thisoft:

            vielleicht wäre es ja überlegenswert für zukünftige Verbesserungen in ioBroker die lobenswerter Weise in den JS-Adapter eingebaute Typprüfung systemweit auszubauen. `
            Das hatte ich bereits per http://iobroker.net:8000/projects/CONTROLLER/issues/CONTROLLER-7?filter=allopenissues vorgeschlagen, scheint aber Probleme bei der Umsetzung zu machen.

            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
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #13

              > Nichtprogrammierer" vermutlich gar nicht wirklich weiß was er da pflegen soll
              Die Verantwortung liegt an der Adapter-Entwickler und das kann schlecht "Nichtprogrammierer" sein :)

              Übrigens wer ist da für MQTT verantwortlich?…

              Schande, wieder ich. :o

              Keine Panik. Ich kriege das hin:

               `var _val = val.replace(',', '.').replace(/^\+/, '');
              
              if (_val.indexOf('.') !== -1) {
              	var i = _val.length - 1;
              	while (_val[i] === '0') i--;
              	if (_val[i] === '0') _val = _val.substring(0, i + 1);
              }
              
              if (parseFloat(_val) == _val)...`[/i][/i]
              
              1 Antwort Letzte Antwort
              0
              • ThisoftT Offline
                ThisoftT Offline
                Thisoft
                schrieb am zuletzt editiert von
                #14

                Hallo Bluefox,

                da habe ich nun versucht, lang und breit diplomatisch darum herumzureden wer für das Problem verantwortlich ist. Und jetzt kommst Du und sagst einfach Du wärst der Schuldige :lol:

                Es sieht wohl so aus, dass das wirklich im MQTT-Adapter gefixt werden muss. Soweit mir bekannt ist werden ja die MQTT-Topics generell als String verschickt, so dass dann der MQTT-Adapter erst wieder die Zahlenwerte "herausfischen" muss. Was ja offensichtlich bei Ganzzahlen auch funktioniert, nur die Floats erkennt er eben noch nicht als Zahlenwert.

                Aber ich bin auch zuversichtlich dass Du das hinbekommst ;)

                22 HM-Geräte; PivCCU2 auf RasPi

                ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

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

                  Da offenbar niemand als Adapter-Entwickler perfekt ist, halte ich es für sinnvoll, den js-controller soweit rund zu machen (Typprüfung / Min-, Max-Korrektur bei Typ "numbers"), dass man bei der Adapter-Entwicklung auf mögliche Fehler per Warnung hingewiesen wird und sich so entsprechende Fehler leichter vermeiden lassen.

                  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
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    schrieb am zuletzt editiert von
                    #16

                    @Thisoft:

                    Hallo Bluefox,

                    da habe ich nun versucht, lang und breit diplomatisch darum herumzureden wer für das Problem verantwortlich ist. Und jetzt kommst Du und sagst einfach Du wärst der Schuldige :lol:

                    Es sieht wohl so aus, dass das wirklich im MQTT-Adapter gefixt werden muss. Soweit mir bekannt ist werden ja die MQTT-Topics generell als String verschickt, so dass dann der MQTT-Adapter erst wieder die Zahlenwerte "herausfischen" muss. Was ja offensichtlich bei Ganzzahlen auch funktioniert, nur die Floats erkennt er eben noch nicht als Zahlenwert.

                    Aber ich bin auch zuversichtlich dass Du das hinbekommst ;) `
                    Kannst du vom git die Version ausprobieren?

                    1 Antwort Letzte Antwort
                    0
                    • ThisoftT Offline
                      ThisoftT Offline
                      Thisoft
                      schrieb am zuletzt editiert von
                      #17

                      Habe ausprobiert. Sieht gut aus:

                      mqtt.0 2016-07-19 23:03:51.209 debug mqtt.0 Send to client [GrillDuino01] "GrillDuino01/Licht": 72 
                      mqtt.0 2016-07-19 23:03:51.209 debug mqtt.0 onStateChange mqtt.0.GrillDuino01.Licht: {"val":72,"ack":true,"ts":1468962231193,"q":0,"from":"system.adapter.mqtt.0","lc":1468962180849} 
                      mqtt.0 2016-07-19 23:03:51.209 debug mqtt.0 stateChange mqtt.0.GrillDuino01.Licht: {"val":72,"ack":true,"ts":1468962231193,"q":0,"from":"system.adapter.mqtt.0","lc":1468962180849} 
                      mqtt.0 2016-07-19 23:03:51.209 debug inMem message *Grill* mqtt.0.GrillDuino01.Licht 
                      mqtt.0 2016-07-19 23:03:51.177 debug mqtt.0 Send to client [GrillDuino01] "GrillDuino01/TemperaturBack2": 7 
                      mqtt.0 2016-07-19 23:03:51.177 debug mqtt.0 onStateChange mqtt.0.GrillDuino01.TemperaturBack2: {"val":7,"ack":true,"ts":1468962231162,"q":0,"from":"system.adapter.mqtt.0","lc":1468962231162} 
                      mqtt.0 2016-07-19 23:03:51.177 debug mqtt.0 stateChange mqtt.0.GrillDuino01.TemperaturBack2: {"val":7,"ack":true,"ts":1468962231162,"q":0,"from":"system.adapter.mqtt.0","lc":1468962231162} 
                      mqtt.0 2016-07-19 23:03:51.177 debug inMem message *Grill* mqtt.0.GrillDuino01.TemperaturBack2 
                      mqtt.0 2016-07-19 23:03:51.177 debug mqtt.0 Server received "GrillDuino01/Licht" (number): 72 
                      mqtt.0 2016-07-19 23:03:51.177 debug mqtt.0 Send to client [GrillDuino01] "GrillDuino01/TemperaturBack1": 9 
                      mqtt.0 2016-07-19 23:03:51.146 debug mqtt.0 onStateChange mqtt.0.GrillDuino01.TemperaturBack1: {"val":9,"ack":true,"ts":1468962231115,"q":0,"from":"system.adapter.mqtt.0","lc":1468962210959} 
                      mqtt.0 2016-07-19 23:03:51.146 debug mqtt.0 stateChange mqtt.0.GrillDuino01.TemperaturBack1: {"val":9,"ack":true,"ts":1468962231115,"q":0,"from":"system.adapter.mqtt.0","lc":1468962210959} 
                      mqtt.0 2016-07-19 23:03:51.146 debug mqtt.0 Server received "GrillDuino01/TemperaturBack2" (number): 7 
                      mqtt.0 2016-07-19 23:03:51.146 debug inMem message *Grill* mqtt.0.GrillDuino01.TemperaturBack1 
                      mqtt.0 2016-07-19 23:03:51.131 debug mqtt.0 stateChange mqtt.0.GrillDuino01.TemperaturLuft: {"val":15.8,"ack":true,"ts":1468962231099,"q":0,"from":"system.adapter.mqtt.0","lc":1468962200865} 
                      mqtt.0 2016-07-19 23:03:51.131 debug inMem message *Grill* mqtt.0.GrillDuino01.TemperaturLuft 
                      mqtt.0 2016-07-19 23:03:51.131 debug mqtt.0 Send to client [GrillDuino01] "GrillDuino01/Luftfeuchte": 94.3 
                      mqtt.0 2016-07-19 23:03:51.131 debug mqtt.0 onStateChange mqtt.0.GrillDuino01.Luftfeuchte: {"val":94.3,"ack":true,"ts":1468962231099,"q":0,"from":"system.adapter.mqtt.0","lc":1468962221006} 
                      mqtt.0 2016-07-19 23:03:51.131 debug mqtt.0 stateChange mqtt.0.GrillDuino01.Luftfeuchte: {"val":94.3,"ack":true,"ts":1468962231099,"q":0,"from":"system.adapter.mqtt.0","lc":1468962221006} 
                      mqtt.0 2016-07-19 23:03:51.131 debug inMem message *Grill* mqtt.0.GrillDuino01.Luftfeuchte 
                      mqtt.0 2016-07-19 23:03:51.131 debug mqtt.0 Server received "GrillDuino01/TemperaturBack1" (number): 9 
                      mqtt.0 2016-07-19 23:03:51.131 debug mqtt.0 Server received "GrillDuino01/TemperaturLuft" (number): 15.8 
                      mqtt.0 2016-07-19 23:03:51.115 debug mqtt.0 Server received "GrillDuino01/Luftfeuchte" (number): 94.3 
                      
                      

                      Vielen Dank.

                      22 HM-Geräte; PivCCU2 auf RasPi

                      ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                      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
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      293

                      Online

                      32.7k

                      Benutzer

                      82.4k

                      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