Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Zigbee: Doubletten führen zu SQL-Fehler beim Insert

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [gelöst] Zigbee: Doubletten führen zu SQL-Fehler beim Insert

    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      observer @arteck last edited by

      @arteck

      Es sind insgesamt 27 Klimasensoren WSDCGQ11LM und 1 Kontaktsensor WSDCGQ11LM (für das Auslesen des Gaszählers) von Aqara im Einsatz, die das Problem zeigen.

      Ansonsten nutze ich von Aqara noch 7 Bewegungsmelder RTCGQ11LM, die bisher aber unauffällig blieben.

      arteck 1 Reply Last reply Reply Quote 0
      • O
        observer @Codierknecht last edited by

        @codierknecht said in Zigbee: Doubletten führen zu Fehlern beim SQL-Insert:

        @observer sagte in Zigbee: Doubletten führen zu Fehlern beim SQL-Insert:

        Hat jemand das gleiche Problem?

        Hatte ich mal.
        Konnte ich beseitigen, indem ich die Entprell- und Blockzeit hochgesetzt habe.

        Wenn ich das richtig interpretiere, dann müsste hier konkret die Blockzeit greifen, auch wenn hier nur ein Wert von 1 ms konfiguriert wird, oder?
        "Alle neuen Werte für X ms nach dem letzten protokollierten Wert ignorieren"

        1 Reply Last reply Reply Quote 0
        • arteck
          arteck Developer Most Active @observer last edited by

          @observer probier mit der entprellzeit.. vor allem der für das Auslesen des Gaszählers wird viele Daten senden

          O 1 Reply Last reply Reply Quote 0
          • O
            observer last edited by

            Ich habe mir jetzt mal die Logs des gesamten aktuellen Jahres angesehen:

            Von den 27 Klimasensoren WSDCGQ11LM gab es 403 dieser Fehlermeldungen, die sich aber ausschliesslich auf den Wert von link_quality beziehen, also bspw.:

            iobroker.2024-01-12.log:2024-01-12 22:20:30.495  - error: sql.0 (4193646) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (328, 1705094430432, 54, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.00158d0007e09f9a.link_quality)
            

            Zu den restlichen persistierten Werten (temperature, pressure, ...) gibt es keine Fehlermeldungen.

            Damit sieht es für mich so aus, als wäre die Ursache tatsächlich dass des Sensor selbt in bestimmten Situationen unmittelbar nacheinander einen Wert schicken.
            Ob diese Doubletten auch den gleichen Wert enthalten, habe ich nicht geprüft, da dies dem Log nicht zu entnehmen ist und ich in der Datenbank wühlen müsste.
            NB: Die protokollierten Werte von link_quality decken eine großen Bereich ab; es sind also nicht nur schlechte oder gute Werte.

            Der Kontaktsensor WSDCGQ11LM zeigt ebenfalls entsprechende Fehler.
            Diese treten jedoch wesentlich seltener auf und immer in einem Cluster zu dem auch ein battery_low gehört, bspw. in diesen zweieinhalb Sekunden:

            iobroker.2024-04-17.log:2024-04-17 06:35:47.612  - error: sql.0 (1286) Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES (274, 1713328547156, false, true, 1, 0),(274, 1713328547157, false, true, 1, 0),(274, 1713328547156, false, true, 1, 0),(274, 1713328547239, false, true, 1, 0),(274, 1713328547240, false, true, 1, 0),(274, 1713328547241, false, true, 1, 0),(274, 1713328547294, false, true, 1, 0),(274, 1713328547362, false, true, 1, 0),(274, 1713328547363, false, true, 1, 0),(274, 1713328547550, false, true, 1, 0),(274, 1713328547554, false, true, 1, 0);: error: duplicate key value violates unique constraint "ts_bool_pkey" (id: zigbee.0.54ef441000295e34.battery_low)
            iobroker.2024-04-17.log:2024-04-17 06:35:48.780  - error: sql.0 (1286) Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES (274, 1713328548009, false, true, 1, 0),(274, 1713328548010, false, true, 1, 0),(274, 1713328548249, false, true, 1, 0),(274, 1713328548250, false, true, 1, 0),(274, 1713328548480, false, true, 1, 0),(274, 1713328548481, false, true, 1, 0),(274, 1713328548482, false, true, 1, 0),(274, 1713328548563, false, true, 1, 0),(274, 1713328548564, false, true, 1, 0),(274, 1713328548565, false, true, 1, 0),(274, 1713328548564, false, true, 1, 0);: error: duplicate key value violates unique constraint "ts_bool_pkey" (id: zigbee.0.54ef441000295e34.battery_low)
            iobroker.2024-04-17.log:2024-04-17 06:35:48.794  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328548564, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.211  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549140, 69, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.304  - error: sql.0 (1286) Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES (276, 1713328548250, false, true, 1, 0),(276, 1713328548480, false, true, 1, 0),(276, 1713328548481, true, true, 1, 0),(276, 1713328548560, false, true, 1, 0),(276, 1713328548563, true, true, 1, 0),(276, 1713328548798, false, true, 1, 0),(276, 1713328549140, true, true, 1, 0),(276, 1713328549141, false, true, 1, 0),(276, 1713328549140, true, true, 1, 0),(276, 1713328549141, false, true, 1, 0),(276, 1713328549240, true, true, 1, 0);: error: duplicate key value violates unique constraint "ts_bool_pkey" (id: zigbee.0.54ef441000295e34.contact)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.348  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549241, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.352  - error: sql.0 (1286) Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES (274, 1713328548576, false, true, 1, 0),(274, 1713328548797, false, true, 1, 0),(274, 1713328548798, false, true, 1, 0),(274, 1713328549140, false, true, 1, 0),(274, 1713328549141, false, true, 1, 0),(274, 1713328549140, false, true, 1, 0),(274, 1713328549141, false, true, 1, 0),(274, 1713328549240, false, true, 1, 0),(274, 1713328549241, false, true, 1, 0),(274, 1713328549242, false, true, 1, 0),(274, 1713328549241, false, true, 1, 0);: error: duplicate key value violates unique constraint "ts_bool_pkey" (id: zigbee.0.54ef441000295e34.battery_low)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.374  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549242, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.413  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549244, 80, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.440  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549245, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.567  - error: sql.0 (1286) Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES (274, 1713328549242, false, true, 1, 0),(274, 1713328549243, false, true, 1, 0),(274, 1713328549244, false, true, 1, 0),(274, 1713328549245, false, true, 1, 0),(274, 1713328549244, false, true, 1, 0),(274, 1713328549245, false, true, 1, 0),(274, 1713328549252, false, true, 1, 0),(274, 1713328549253, false, true, 1, 0),(274, 1713328549254, false, true, 1, 0),(274, 1713328549255, false, true, 1, 0),(274, 1713328549503, false, true, 1, 0);: error: duplicate key value violates unique constraint "ts_bool_pkey" (id: zigbee.0.54ef441000295e34.battery_low)
            iobroker.2024-04-17.log:2024-04-17 06:35:49.992  - error: sql.0 (1286) Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES (276, 1713328549241, false, true, 1, 0),(276, 1713328549242, true, true, 1, 0),(276, 1713328549243, true, true, 1, 0),(276, 1713328549242, true, true, 1, 0),(276, 1713328549243, true, true, 1, 0),(276, 1713328549244, false, true, 1, 0),(276, 1713328549245, true, true, 1, 0),(276, 1713328549503, false, true, 1, 0),(276, 1713328549504, true, true, 1, 0),(276, 1713328549653, false, true, 1, 0),(276, 1713328549654, true, true, 1, 0);: error: duplicate key value violates unique constraint "ts_bool_pkey" (id: zigbee.0.54ef441000295e34.contact)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.043  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549665, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.046  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549666, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.084  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549668, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.092  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549669, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.131  - error: sql.0 (1286) Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES (276, 1713328549662, false, true, 1, 0),(276, 1713328549663, true, true, 1, 0),(276, 1713328549664, true, true, 1, 0),(276, 1713328549666, false, true, 1, 0),(276, 1713328549667, true, true, 1, 0),(276, 1713328549668, false, true, 1, 0),(276, 1713328549667, true, true, 1, 0),(276, 1713328549668, false, true, 1, 0),(276, 1713328549669, true, true, 1, 0),(276, 1713328549670, false, true, 1, 0),(276, 1713328549669, true, true, 1, 0);: error: duplicate key value violates unique constraint "ts_bool_pkey" (id: zigbee.0.54ef441000295e34.contact)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.148  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549669, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.169  - error: sql.0 (1286) Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES (274, 1713328549665, false, true, 1, 0),(274, 1713328549666, false, true, 1, 0),(274, 1713328549667, false, true, 1, 0),(274, 1713328549666, false, true, 1, 0),(274, 1713328549667, false, true, 1, 0),(274, 1713328549668, false, true, 1, 0),(274, 1713328549669, false, true, 1, 0),(274, 1713328549668, false, true, 1, 0),(274, 1713328549669, false, true, 1, 0),(274, 1713328549670, false, true, 1, 0),(274, 1713328549669, false, true, 1, 0);: error: duplicate key value violates unique constraint "ts_bool_pkey" (id: zigbee.0.54ef441000295e34.battery_low)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.177  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549669, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            iobroker.2024-04-17.log:2024-04-17 06:35:50.182  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (275, 1713328549670, 76, true, 1, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: zigbee.0.54ef441000295e34.link_quality)
            

            Es könnte also sein, dass eine battery_low-Condition des Sensors einen solchen Burst von Meldungen bewirkt.

            Soviel zu den Zigbee-Sensoren von Aqara.

            Ansonsten tauchen bei mir noch sporadisch Meldungen meiner Wechselrichter von Hoymiles auf, die mittels AhoyDTU ausgelesen werden und über MQTT eingehen, bsp.:

            iobroker.2024-06-25.log:2024-06-25 14:15:43.999  - error: sql.0 (1492) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (648, 1719317729464, 31, true, 10, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: mqtt.0.inverter.HM-800-01.ch2.U_DC)
            

            Ebenfalls über MQTT (allerdings einen separaten Broker) gehen Werte von den Shelly Plus 1PM ein, die aber nur sehr selten zum Fehler führen, bspw.:

            iobroker.2024-03-04.log:2024-03-04 01:00:00.840  - error: sql.0 (1286) Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES (397, 1709510400542, 5.4, true, 11, 0);: error: duplicate key value violates unique constraint "ts_number_pkey" (id: shelly.1.shellyplus1pm#3c610579a654#1.Relay0.Power)
            

            Summa summarum scheint mir das Fehlerbild auf die 'Eigenheiten' der jeweiligen Datenquellen zurückzuführen sein und nicht auf einen Bug in einem der verwendeten Adapter.
            Insofern setze ich den Status auf "gelöst".

            Danke für Eurer Feedback!

            Codierknecht 1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @observer last edited by

              @observer sagte in Zigbee: Doubletten führen zu Fehlern beim SQL-Insert:

              Insofern setze ich den Status auf "gelöst".

              Dann bearbeite bitte Deinen Eingangspost und setze ein "[gelöst] - " vor den Titel.

              1 Reply Last reply Reply Quote 0
              • O
                observer @arteck last edited by

                @arteck said in Zigbee: Doubletten führen zu Fehlern beim SQL-Insert:

                @observer probier mit der entprellzeit.. vor allem der für das Auslesen des Gaszählers wird viele Daten senden

                Hmm, die Nutzung der Entprellzeit für dieses Problem verstehe ich nicht:

                "Protokolliert den Wert nur, wenn er für X ms unverändert bleibt."

                Wenn tatsächlich eine Doublette mit dem gleichen Wert in der gleichen Millisekunde eingeht, dann greift die Entprellzeit doch nicht, oder?

                Ansonsten schickt der Gaszählerauslesekontaktsensor ja eher gemächlich Daten, einen Kontakt pro Zählerumdrehung alle paar Sekunden.
                Das läuft seit rund zwei Jahren recht zuverlässig.

                Codierknecht 1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @observer last edited by

                  @observer sagte in Zigbee: Doubletten führen zu Fehlern beim SQL-Insert:

                  einen Kontakt pro Zählerumdrehung alle paar Sekunden

                  Es sei denn, der Zähler bleibt ausgerechnet dort stehen wo sich der Geber (Magnet) befindet.
                  Dann prellt der Sensor fleißig hin und her.

                  O 1 Reply Last reply Reply Quote 1
                  • O
                    observer @Codierknecht last edited by

                    @codierknecht said in Zigbee: Doubletten führen zu Fehlern beim SQL-Insert:

                    @observer sagte in Zigbee: Doubletten führen zu Fehlern beim SQL-Insert:

                    einen Kontakt pro Zählerumdrehung alle paar Sekunden

                    Es sei denn, der Zähler bleibt ausgerechnet dort stehen wo sich der Geber (Magnet) befindet.
                    Dann prellt der Sensor fleißig hin und her.

                    Ah, guter Punkt, zumal der Aqara-Sensor kein internes Debouncing zu haben scheint und ein Reed-Kontakt grundsätzlich prellen kann!
                    Im dazugehörenden Blockly-Skript habe ich das auch nicht explizit berücksichtigt.

                    Also Glück gehabt, dass dies in zwei Jahren bisher nicht dennoch nicht aufgetreten ist!?

                    Codierknecht Marc Berg 2 Replies Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @observer last edited by

                      @observer sagte in [gelöst] Zigbee: Doubletten führen zu SQL-Fehler beim Insert:

                      Also Glück gehabt, dass dies in zwei Jahren bisher nicht dennoch nicht aufgetreten ist!?

                      In der DB siehst Du das ja nicht. Das verhindert an der Ecke ja der PK.

                      Und ins Log muss man schon reinschauen um das zu sehen.
                      Tritt ja auch nicht dauernd auf, sondern nur wenn die Bedingungen gerade mal passen.
                      Da kann wochenlang Ruhe herrschen und dann steht der Geber mal wieder an einer ungünstigen Stelle.

                      1 Reply Last reply Reply Quote 0
                      • Marc Berg
                        Marc Berg Most Active @observer last edited by Marc Berg

                        @observer sagte in [gelöst] Zigbee: Doubletten führen zu SQL-Fehler beim Insert:

                        Also Glück gehabt, dass dies in zwei Jahren bisher nicht dennoch nicht aufgetreten ist!?

                        Benutze den Aqara auch zum Auslesen des Gaszählers. Ein Prellen hat in den letzten (auch) zwei Jahren einfach nicht stattgefunden. Wenn mal Fehler entstehen, dann fehlen ein paar Impulse (z.B. durch Neustart des ioBrokers oder der MQTT2Zigbee-Instanz).

                        Allerdings habe ich einen externen Reed-Kontakt angelötet. Der ist entweder sehr gut, oder der Aqara macht doch ein internes Entprellen.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        1.1k
                        Online

                        31.6k
                        Users

                        79.5k
                        Topics

                        1.3m
                        Posts

                        4
                        13
                        379
                        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