Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Gelöst] Probleme mit setState auf Raspberry Pi

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Gelöst] Probleme mit setState auf Raspberry Pi

Scheduled Pinned Locked Moved Skripten / Logik
5 Posts 2 Posters 542 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.
  • T Offline
    T Offline
    t2d234
    wrote on last edited by
    #1

    Hallo zusammen,

    ich mache gerade meine ersten Schritte mit Skripten in ioBroker und habe folgendes Problem:

    Für bestimmte getriggerte Ereignisse möchte ich die Zeitpunkte in globalen Variablen speichern. Zum Testen habe ich dazu folgendes Skript erstellt:

    __setState('d', new Date(), true);

    console.log ("Datum: "+getState('d').val);__ Zusätzlich in einem globalen Skript:

    createState ('d'); Ich habe ioBroker auf einem Raspberry Pi (Modell B Rev. 2) und auf einem Windows-Rechner installiert.

    Das Skript arbeitet unter Windows fehlerfrei, das aktuelle Datum wird (spätestens nach dem zweiten Durchlauf des Skriptes) auf der Konsole geloggt angezeigt. Durch die Nebenläufigkeit der Ausführungen im Zweifelsfall die Zeit vom vorherigen Aufruf des Skriptes. Das spielt aber hier auch keine Rolle, denn eigentlich will ich ja nur den Wert in der Variablen speichern und das funktioniert ja.

    Auf dem Raspberry Pi allerdings bleibt die Variable d immer leer. Sobald ich den setState-Befehl ändere zu

    setState('d', (new Date()).toString(), true)

    wird das Datum als String korrekt in die Variable geschrieben. Das ist aber eigentlich nicht Ziel der Sache, da ich das Datum zu einem späteren Zeitpunkt weiterverarbeiten möchte und mir der String da nicht direkt weiterhilft.

    Kann jemand mein Problem verstehen und mir eine Lösung verraten? Oder muss ich ganz anders an die Sache herangehen?

    Vielen Dank schon mal im Voraus für eure Unterstützung.

    Timo

    1 Reply Last reply
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      wrote on last edited by
      #2

      "new Date()" ist ein Objekt und das kann nur in States mit dem richtigen Typ gespeichert werden. Von daher ist Dein Ansatz mit new Date()).toString() korrekt.

      Beim lesen machst Du einfach

      new Date(getState('d').val) 
      

      und Du hast wieder das Date-Objekt.

      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
      • T Offline
        T Offline
        t2d234
        wrote on last edited by
        #3

        Vielen Dank für die schnelle Lösung!

        Du schreibst ja richtigerweise "new Date()" ist ein Objekt" und das dies nur in States mit dem richtigen Typ gespeichert werden kann.

        Mir stellt sich daher die Frage, wie bekomme ein State mit dem Typ Date? Versuche dies beim Anlegen mit createState und direkter Initialisierung zu schaffen, waren bei mir nicht erfolgreich. Wenn das möglich wäre, müsste man ja nicht die doppelte Typkonvertierung durchführen.

        Gibt es noch einen Tipp dazu?

        1 Reply Last reply
        0
        • apollon77A Offline
          apollon77A Offline
          apollon77
          wrote on last edited by
          #4

          Ich denke an der Stelle das es gar nicht geht da Date formal eine "Objektinstanz" ist. ioBroker kann "Daten" speichern.

          Also ein eigenes Objekt was nur Daten hält geht mit dem ioBroker-Datentyp "object". Das wird dann von ioBroker automatisch in JSON-konvertiert und so gespeichert und wieder rausgeholt und zurückkonvertiert. Damit ist der "Objektsupport" auf "Datenobjekte" begrenzt.

          "Date" als Instanz ist aber nicht serialisierbar bzw in "JSON"-Konvertierbar und kann daher nicht direkt gespeichert werden - wäre auch von einer "Key-Value-Storage-Schicht" wie wir hier haben etwas viel verlangt :-)

          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
          • T Offline
            T Offline
            t2d234
            wrote on last edited by
            #5

            Ok, das mit der JSON-Konvertierbarkeit von Date hab ich nicht gewusst. Dann ist ja alles klar.

            Nochmals besten Dank! :D

            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

            763

            Online

            32.6k

            Users

            82.2k

            Topics

            1.3m

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

            • Don't have an account? Register

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