Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Probleme mit sql logging (früher:Button Zustand bei Neustart einlesen)

NEWS

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

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

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

[gelöst] Probleme mit sql logging (früher:Button Zustand bei Neustart einlesen)

[gelöst] Probleme mit sql logging (früher:Button Zustand bei Neustart einlesen)

Scheduled Pinned Locked Moved Skripten / Logik
14 Posts 3 Posters 1.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    GerdSo
    wrote on last edited by
    #1

    Hallo,

    hab mal wieder ein Problem, dass ich nicht gelöst bekomme.

    Ich habe einen Button in der vis-Oberfläche und der schaltet eine selbsterzeugte Variable. Das funktioniert auch alles und diese ist unter Objekte->"javascript.0.Badezimmer.E-Heizung-Zeitsteuerung" sichtbar und ändert sich auch und die vis Oberfläche reagiert ebenfalls entsprechend.

    Jetzt möchte ich gerne bei einem ioBroker Neustart wissen, wie denn der letzte Zustand war, daher habe ich die Variable als Historie konfiguriert und er speichert diese auch in meinem sql-Adapter aber irgendwie scheint nicht jeder 0 und 1 Zustand protokolliert zu werden. Aktuell sieht es so aus, als wenn er immer den 1 Zustand speichert und nicht den 0, hatte aber auch schon den umgekehrten Fall. Wenn ich mir die letzten 100-Daten aus dem History-Adapter ausgeben lasse, dann kommen da nur die 1er-Werte drin vor, aber nicht die 0'er. Meine Idee war, beim Start den aktuellsten Wert aus demHistory-Adapter zu holen und den dann weiterzuverwenden, dass ist durch diesen "Fehler" aber nicht möglich, da ich immer nur 1 zurückbekomme.

    Wo ist da mein Gedankenfehler, dass das so nicht funktioniert. Müsste der Historieadapter nicht alles protokollieren? Die Variable wird bei subscribe ordentlich ausgelöst, daran kann es nicht liegen.

    raw-Werte der History-Konfig:

    {
      "from": "system.adapter.javascript.0",
      "ts": 1513028661310,
      "common": {
        "name": "Badezimmer.E-Heizung-Zeitsteuerung",
        "role": "javascript",
        "type": "mixed",
        "custom": {
          "sql.0": {
            "enabled": true,
            "changesOnly": true,
            "debounce": "",
            "retention": 0,
            "changesRelogInterval": 0,
            "changesMinDelta": 0,
            "storageType": ""
          }
        }
      },
      "native": {},
      "acl": {
        "object": 1638,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator",
        "state": 1638
      },
      "_id": "javascript.0.Badezimmer.E-Heizung-Zeitsteuerung",
      "type": "state"
    }
    
    1 Reply Last reply
    0
    • DutchmanD Online
      DutchmanD Online
      Dutchman
      Developer Most Active Administrators
      wrote on last edited by
      #2

      Das mit der history ist merkwürdig klinkt nach einen Bug.

      Ich verstehe aber nicht warum du das machen willst?

      iObroker behält bei einen Neustart seine object states also warum aus history lesen und setzen?

      –-----------------------

      Send from mobile device

      Das schöne ios hat Auto Korrektur zum k****

      Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

      1 Reply Last reply
      0
      • G Offline
        G Offline
        GerdSo
        wrote on last edited by
        #3

        Hallo Dutchman,

        hab es gerade ausprobiert und Du hast Recht funktioniert einwandfrei. Habe ich sicherlich vor längerer Zeit auch mal so probiert und da funktioniert es nicht, keine Ahnung weshalb.

        Bzgl. sql-Adapter: Soll/Kann ich da noch weiter evaluieren?

        Ich hab mal einen aktuellen Screenshot angehängt und darin sieht man, dass die Variable auf 0 steht aber der History-Adapter dies nicht mitbekommen hat

        Viele Grüße Gerd.
        1154_snip_20180110161803.png

        1 Reply Last reply
        0
        • DutchmanD Online
          DutchmanD Online
          Dutchman
          Developer Most Active Administrators
          wrote on last edited by
          #4

          Hmm ändere Mal bitten deinen topic Title in Probleme mit sql logging (ersten thread Editieren) da muss Wert anders ran 🙂

          Im Log kommt nichts ungewöhnliches wenn du die Variable änderst?

          Wie sehen deine SQL Einstellungen aus für diesen Datenpunkt ?

          –-----------------------

          Send from mobile device

          Das schöne ios hat Auto Korrektur zum k****

          Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

          1 Reply Last reply
          0
          • G Offline
            G Offline
            GerdSo
            wrote on last edited by
            #5

            Hallo Dutchman,

            die Konfig für den Datenpunkt siehst Du im ersten Beitrag, da habe ich die JSON davon. Im Log passiert nichts. Identisches Verhalten, habe ich auch bei 2 anderen Knöpfen, da sieht das genauso aus. Wenn ich die Knöpfe subscribe, dann wird sowohl bei 0 als auch bei 1 ausgelöst. Wenn ich dann jedesmal in eine weitere (neue) Variable schreibe und diese ebenfalls mitprotokolliere im History-Adapter, dann tritt da auch dieser Effekt auf, daher dürfte es nicht mit den Buttons zu tun haben.

            Viele Grüße Gerd.

            1 Reply Last reply
            0
            • apollon77A Online
              apollon77A Online
              apollon77
              wrote on last edited by
              #6

              naja, der "Debouce"- Wert ist leer, also wird das Default aus dem Adapter genommen. Was ist denn da eingestellt?

              Wie lange ist das auf dem anderen Zustand? Lang genug?

              Am Ende wäre eine Idee mal den sql-Adapter in "Debug" zu schalten und zu schauen was dann so über die Zeit im Log steht nachdem du mal hin- und her geschaltet hast

              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 Reply Last reply
              0
              • G Offline
                G Offline
                GerdSo
                wrote on last edited by
                #7

                @apollon77:

                naja, der "Debouce"- Wert ist leer, also wird das Default aus dem Adapter genommen. Was ist denn da eingestellt?

                Wie lange ist das auf dem anderen Zustand? Lang genug?

                Am Ende wäre eine Idee mal den sql-Adapter in "Debug" zu schalten und zu schauen was dann so über die Zeit im Log steht nachdem du mal hin- und her geschaltet hast `

                Danke für den Hinweis den SQL in Debug zu schalten, hätte ich auch mal drauf kommen können:

                2018-01-10 17:44:54.470  - [31merror[39m: Caught by controller[20]: 2018-01-10 17:44:35.656  - debug: sql.0 Min-Delta reached javascript.0.Badezimmer.E-Heizung-Zeitsteuerung, last-value=1, new-value=0, ts=1515602675657
                2018-01-10 17:44:54.470  - [31merror[39m: Caught by controller[25]: 2018-01-10 17:44:37.593  - debug: sql.0 Min-Delta reached javascript.0.Badezimmer.E-Heizung-Zeitsteuerung, last-value=0, new-value=1, ts=1515602677595
                
                

                Demnach hat er es erkannt und er sollte es speichern, lt. Tabelle des History-Adapters hat er es aber nicht gemacht.

                sql ist wie folgt eingestellt
                1154_snip_20180110175137.png

                1 Reply Last reply
                0
                • apollon77A Online
                  apollon77A Online
                  apollon77
                  wrote on last edited by
                  #8

                  Also denounce time von 10000 sind 10s innerhalb dessen der Wert sich nicht ändern darf. Ansonsten wird nur der „stabile“ =letzte wert geloggt. Also die 1

                  Du schaltest also für die eingestellte debounce Zeit zu schnell. Setz mal den Wert runter.

                  Ansonsten steht da noch mehr im log? Das „caught by js-controller“ weist auf nen Fehler hin bei irgendwas …

                  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 Reply Last reply
                  0
                  • G Offline
                    G Offline
                    GerdSo
                    wrote on last edited by
                    #9

                    Hallo apollon77,

                    die Entprellzeit war es nicht, habe den Fehler jetzt aber gefunden. Die korrekte Lösung leider noch nicht!

                    Ich habe beim Anlegen mit createState einen Defaultwert true mitgegeben. Der Schalter vom Typ tplFancyToggleswitch schickt aber 0 oder 1, also einen Zahlenwert.

                    Es sieht also so aus, als ob der sql-Adapter jetzt nur Booleans loggen möchte und die 0 oder 1 Werte einfach ignoriert.

                    Wenn ich auf die Variable subscribe und einfach nochmal bei 1 den Wert auf true setze und bei 0 auf false, wird alles korrekt protokolliert. In ioBroker ist der Variablen Typ auf misc gesetzt. Kann man in der mySQL nachträglich den Typ ändern oder ist diese Variable für "immer" mit dem falschen Typ verbunden? Ein Neuanlegen hat nichts gebracht.

                    Viele Grüße Gerd.

                    1 Reply Last reply
                    0
                    • apollon77A Online
                      apollon77A Online
                      apollon77
                      wrote on last edited by
                      #10

                      Wenn Du nicht in der DB den typ ändern willst dann kannst Du versuchen bei dem Datenopunkt in den SQL-EInstellungen den "Speichern als" Typ (im Standard leer) auf Boolean zu setzen. Dann sollte 0/1 in false/true umgewandelt werden beim Speichern.

                      Versuch mal

                      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 Reply Last reply
                      0
                      • G Offline
                        G Offline
                        GerdSo
                        wrote on last edited by
                        #11

                        @apollon77:

                        Wenn Du nicht in der DB den typ ändern willst dann kannst Du versuchen bei dem Datenopunkt in den SQL-EInstellungen den "Speichern als" Typ (im Standard leer) auf Boolean zu setzen. Dann sollte 0/1 in false/true umgewandelt werden beim Speichern.

                        Versuch mal `
                        Hallo,

                        funktioniert leider nicht. Hab es auf "Logikwert" umgestellt und es wird nicht protokolliert. Zur Sicherheit habe ich noch javascript und sql neu gestartet, trotzdem kein Erfolg. Danach habe ich dann wieder meinen Workaround eingeschaltet und es hat geklappt.

                        Gibt es irgendwelche Möglichkeiten dieses "nicht protokollieren" per Script zu erkennen? Würde das dann bei mir einbauen, da ich immer mal wieder Variablen mit anderen Dingen/Typen fülle aufgrund von Änderungen im Script und da würde ich schon gerne sichergehen, dass der sql-Adapter dass auch ordentlich protokolliert. Die Überwachung müsste ja nur für eigene Variablen gemacht werden.

                        Viele Grüße Gerd.

                        1 Reply Last reply
                        0
                        • apollon77A Online
                          apollon77A Online
                          apollon77
                          wrote on last edited by
                          #12

                          naja ich denke nicht as er "Nicht "richtig arbeitet … er stellt ggf keine Änderung des wertes fest und loggt deswegen nichts .. also ist komplett korrekt.

                          Geht es wenn du "nur änderungen loggen" raus nimmst?

                          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 Reply Last reply
                          0
                          • G Offline
                            G Offline
                            GerdSo
                            wrote on last edited by
                            #13

                            @apollon77:

                            naja ich denke nicht as er "Nicht "richtig arbeitet … er stellt ggf keine Änderung des wertes fest und loggt deswegen nichts .. also ist komplett korrekt.

                            Geht es wenn du "nur änderungen loggen" raus nimmst? `
                            Leider nein, hatte ich auch schon probiert, dann funktioniert es auch nicht.

                            1 Reply Last reply
                            0
                            • apollon77A Online
                              apollon77A Online
                              apollon77
                              wrote on last edited by
                              #14

                              Ok, dann bleibt dir nur das fixen des Datentyps der ID direkt in der DB und potz. löschen falscher Daten und am besten immer an Datentypen halten :-))

                              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 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              464

                              Online

                              32.4k

                              Users

                              81.3k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe