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. Skripten / Logik
  4. Blockly
  5. Ändern einer Variable innerhalb einer config.json

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Ändern einer Variable innerhalb einer config.json

Geplant Angeheftet Gesperrt Verschoben Blockly
13 Beiträge 3 Kommentatoren 873 Aufrufe 3 Watching
  • Ä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.
  • A Offline
    A Offline
    AlyxAbyss
    schrieb am zuletzt editiert von
    #1

    Hallo ihr,

    es gehört bestimmt zu den Programmer Basics, aber ich habe es bisher nicht benötigt.

    Ich möchte dass eine Variable in einer lokalen config.json Datei durch ein iobroker Skript (gerne Blockly) verändert wird.

    Die config.json liegt auf meinem Pi im Homeverzeichnis.

    Inhaltlich ist sie noch recht leer und sieht aktuell bloß so aus:

    {
      "variable": "Stefan"
    }
    
    

    Wenn jemand nach Hause kommt, soll der entsprechende Name in die Variable gesetzt werden.
    Diese wird dann von einem Python Skript abgerufen und auf einem Matrix LED Panel angezeigt.

    Ich fang gerade erst damit an Skripte zu erstellen, die außerhalb vom iobroker ausgeführt werden sollen.
    Bisher klappt auch alles. Nur jetzt brauch ich das erste mal eine externe Variable die vom iobroker gesetzt wird.

    Bedanke mich schon einmal bei euch. :)

    mickymM 1 Antwort Letzte Antwort
    0
    • A AlyxAbyss

      Hallo ihr,

      es gehört bestimmt zu den Programmer Basics, aber ich habe es bisher nicht benötigt.

      Ich möchte dass eine Variable in einer lokalen config.json Datei durch ein iobroker Skript (gerne Blockly) verändert wird.

      Die config.json liegt auf meinem Pi im Homeverzeichnis.

      Inhaltlich ist sie noch recht leer und sieht aktuell bloß so aus:

      {
        "variable": "Stefan"
      }
      
      

      Wenn jemand nach Hause kommt, soll der entsprechende Name in die Variable gesetzt werden.
      Diese wird dann von einem Python Skript abgerufen und auf einem Matrix LED Panel angezeigt.

      Ich fang gerade erst damit an Skripte zu erstellen, die außerhalb vom iobroker ausgeführt werden sollen.
      Bisher klappt auch alles. Nur jetzt brauch ich das erste mal eine externe Variable die vom iobroker gesetzt wird.

      Bedanke mich schon einmal bei euch. :)

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #2

      @alyxabyss Mit NodeRed könnte ich dir helfen, mit Blockly und JS nicht - da ich nicht weiß wie man da Dateien bearbeitet. Du musst aber in jedem Fall dem user iobroker - Zugriff auf das Homeverzeichnis des pi geben und der Datei geben. Das geht am Besten in dem Du diesem user in die Gruppe pi aufnimmst und in der Datei die Rechte anpasst, dass Gruppenmitglieder schreiben können.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      A 1 Antwort Letzte Antwort
      1
      • mickymM mickym

        @alyxabyss Mit NodeRed könnte ich dir helfen, mit Blockly und JS nicht - da ich nicht weiß wie man da Dateien bearbeitet. Du musst aber in jedem Fall dem user iobroker - Zugriff auf das Homeverzeichnis des pi geben und der Datei geben. Das geht am Besten in dem Du diesem user in die Gruppe pi aufnimmst und in der Datei die Rechte anpasst, dass Gruppenmitglieder schreiben können.

        A Offline
        A Offline
        AlyxAbyss
        schrieb am zuletzt editiert von
        #3

        @mickym

        NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
        Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

        Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

        Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

        mickymM 2 Antworten Letzte Antwort
        0
        • A AlyxAbyss

          @mickym

          NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
          Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

          Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

          Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #4

          @alyxabyss Gut ich mach dann mal einen Flow. ;)

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          A 1 Antwort Letzte Antwort
          1
          • mickymM mickym

            @alyxabyss Gut ich mach dann mal einen Flow. ;)

            A Offline
            A Offline
            AlyxAbyss
            schrieb am zuletzt editiert von
            #5

            @mickym Super lieb :)

            mickymM 1 Antwort Letzte Antwort
            0
            • A AlyxAbyss

              @mickym Super lieb :)

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #6

              @alyxabyss

              7113f680-414e-44fa-9364-9fb99eacd7ac-image.png

              So du musst halt noch die Rechte anpassen im Moment wird in das Homeverzeichnis des iobrokers geschreiben:

              [
                 {
                     "id": "456c94dd812b77f5",
                     "type": "ioBroker in",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "topic": "0_userdata.0.Test.person",
                     "payloadType": "value",
                     "onlyack": "",
                     "func": "all",
                     "gap": "",
                     "fireOnStart": "false",
                     "outFormat": "MQTT",
                     "x": 290,
                     "y": 3240,
                     "wires": [
                         [
                             "8fac7d97c23c1503"
                         ]
                     ]
                 },
                 {
                     "id": "7989ccc21f2dad1d",
                     "type": "file",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "filename": "filename",
                     "filenameType": "msg",
                     "appendNewline": true,
                     "createDir": false,
                     "overwriteFile": "true",
                     "encoding": "none",
                     "x": 1100,
                     "y": 3240,
                     "wires": [
                         []
                     ]
                 },
                 {
                     "id": "e6a8e0016d890542",
                     "type": "json",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "property": "payload",
                     "action": "",
                     "pretty": false,
                     "x": 730,
                     "y": 3240,
                     "wires": [
                         [
                             "84e0b3d256456e8b"
                         ]
                     ]
                 },
                 {
                     "id": "84e0b3d256456e8b",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "filename",
                             "pt": "msg",
                             "to": "/home/iobroker/config.json",
                             "tot": "str"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 910,
                     "y": 3240,
                     "wires": [
                         [
                             "7989ccc21f2dad1d"
                         ]
                     ]
                 },
                 {
                     "id": "8fac7d97c23c1503",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "move",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.variable",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 540,
                     "y": 3240,
                     "wires": [
                         [
                             "e6a8e0016d890542"
                         ]
                     ]
                 }
              ]
              

              und natürlich den Pfad zu Deinem Datenpunkt anpassen.

              dba428cc-c83f-4135-b5b5-1bfb7df09ce9-image.png
              8a15f518-67a6-44a0-bf17-d22f5da1dd39-image.png

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              A 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @alyxabyss

                7113f680-414e-44fa-9364-9fb99eacd7ac-image.png

                So du musst halt noch die Rechte anpassen im Moment wird in das Homeverzeichnis des iobrokers geschreiben:

                [
                   {
                       "id": "456c94dd812b77f5",
                       "type": "ioBroker in",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "topic": "0_userdata.0.Test.person",
                       "payloadType": "value",
                       "onlyack": "",
                       "func": "all",
                       "gap": "",
                       "fireOnStart": "false",
                       "outFormat": "MQTT",
                       "x": 290,
                       "y": 3240,
                       "wires": [
                           [
                               "8fac7d97c23c1503"
                           ]
                       ]
                   },
                   {
                       "id": "7989ccc21f2dad1d",
                       "type": "file",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "filename": "filename",
                       "filenameType": "msg",
                       "appendNewline": true,
                       "createDir": false,
                       "overwriteFile": "true",
                       "encoding": "none",
                       "x": 1100,
                       "y": 3240,
                       "wires": [
                           []
                       ]
                   },
                   {
                       "id": "e6a8e0016d890542",
                       "type": "json",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "property": "payload",
                       "action": "",
                       "pretty": false,
                       "x": 730,
                       "y": 3240,
                       "wires": [
                           [
                               "84e0b3d256456e8b"
                           ]
                       ]
                   },
                   {
                       "id": "84e0b3d256456e8b",
                       "type": "change",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "filename",
                               "pt": "msg",
                               "to": "/home/iobroker/config.json",
                               "tot": "str"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 910,
                       "y": 3240,
                       "wires": [
                           [
                               "7989ccc21f2dad1d"
                           ]
                       ]
                   },
                   {
                       "id": "8fac7d97c23c1503",
                       "type": "change",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "rules": [
                           {
                               "t": "move",
                               "p": "payload",
                               "pt": "msg",
                               "to": "payload.variable",
                               "tot": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 540,
                       "y": 3240,
                       "wires": [
                           [
                               "e6a8e0016d890542"
                           ]
                       ]
                   }
                ]
                

                und natürlich den Pfad zu Deinem Datenpunkt anpassen.

                dba428cc-c83f-4135-b5b5-1bfb7df09ce9-image.png
                8a15f518-67a6-44a0-bf17-d22f5da1dd39-image.png

                A Offline
                A Offline
                AlyxAbyss
                schrieb am zuletzt editiert von
                #7

                @mickym vielen dank. ich setz mich später wenn ich ruhe hab mal dran. Gebe dann feedback :)

                mickymM 1 Antwort Letzte Antwort
                0
                • A AlyxAbyss

                  @mickym vielen dank. ich setz mich später wenn ich ruhe hab mal dran. Gebe dann feedback :)

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @alyxabyss Ok - habs gerade noch im Homevz. des pi gecheckt - du must nur msg.filename wie folgt abändern:

                  fef8ac74-91d2-4a34-bf36-3a2173c64542-image.png

                  Für die Rechte.

                  Füge den Benutzer iobroker in die Gruppe pi hinzu:

                  sudo usermod -aG pi iobroker
                  

                  Du musst dann in jedem Fall die Maschine durchstarten.

                  Wenn Du nicht willst, dass der user iobroker weitere Dateien anlegen kann. Dann leg mit dem user pi die Datei config.json an und lass die Gruppe darauf schreiben:

                  chmod g+w config.json
                  
                  pi@mwhome:~ $ chmod g+w config.json
                  pi@mwhome:~ $ cat config.json
                  {"variable":"Stefan"}
                  pi@mwhome:~ $ cat config.json
                  {"variable":"mickym"}
                  pi@mwhome:~ $ ls -la config.json
                  -rw-rw-r-- 1 pi pi 22 31. Mär 20:01 config.json
                  

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  A 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @alyxabyss Ok - habs gerade noch im Homevz. des pi gecheckt - du must nur msg.filename wie folgt abändern:

                    fef8ac74-91d2-4a34-bf36-3a2173c64542-image.png

                    Für die Rechte.

                    Füge den Benutzer iobroker in die Gruppe pi hinzu:

                    sudo usermod -aG pi iobroker
                    

                    Du musst dann in jedem Fall die Maschine durchstarten.

                    Wenn Du nicht willst, dass der user iobroker weitere Dateien anlegen kann. Dann leg mit dem user pi die Datei config.json an und lass die Gruppe darauf schreiben:

                    chmod g+w config.json
                    
                    pi@mwhome:~ $ chmod g+w config.json
                    pi@mwhome:~ $ cat config.json
                    {"variable":"Stefan"}
                    pi@mwhome:~ $ cat config.json
                    {"variable":"mickym"}
                    pi@mwhome:~ $ ls -la config.json
                    -rw-rw-r-- 1 pi pi 22 31. Mär 20:01 config.json
                    
                    A Offline
                    A Offline
                    AlyxAbyss
                    schrieb am zuletzt editiert von AlyxAbyss
                    #9

                    @mickym Danke es funktioniert. Ist zwar nicht die eleganteste Methode weil ich nur für diesen kleinen Flow nun NodeRed installieren musste. Aber es erfüllt ihren Zweck.

                    mickymM CodierknechtC 2 Antworten Letzte Antwort
                    0
                    • A AlyxAbyss

                      @mickym Danke es funktioniert. Ist zwar nicht die eleganteste Methode weil ich nur für diesen kleinen Flow nun NodeRed installieren musste. Aber es erfüllt ihren Zweck.

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #10

                      @alyxabyss Na ja vielleicht kann Dir ja noch jemand anders helfen, wenn Du dich mit diesem tollen Tool nicht weiter beschäftigen möchtest.

                      Ich glaub du kannst irgendeine Filesystem Bibliothek nutzen und dann kannst ja Blockly nutzen.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      1 Antwort Letzte Antwort
                      0
                      • A AlyxAbyss

                        @mickym

                        NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
                        Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

                        Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

                        Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @alyxabyss sagte in Ändern einer Variable innerhalb einer config.json:

                        @mickym

                        NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
                        Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

                        Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

                        Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

                        Da hattest Du ja geschrieben, dass NodeRed OK wäre, sonst hätte ich den Flow ja nicht gemacht.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        A 1 Antwort Letzte Antwort
                        1
                        • A AlyxAbyss

                          @mickym Danke es funktioniert. Ist zwar nicht die eleganteste Methode weil ich nur für diesen kleinen Flow nun NodeRed installieren musste. Aber es erfüllt ihren Zweck.

                          CodierknechtC Offline
                          CodierknechtC Offline
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @alyxabyss
                          Wenn Dir Blockly lieber ist, könntest Du im Blockly eine kleine JS-Funktion hinterlegen.
                          Per JS sollte es kein Problem sein, in eine Datei zu schreiben.

                          Schau mal hier - vielleicht hilft das weiter:
                          https://forum.iobroker.net/topic/1586/gelöst-daten-eine-temperatursensors-in-eione-txt-datei-schreiben/3

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          1 Antwort Letzte Antwort
                          1
                          • mickymM mickym

                            @alyxabyss sagte in Ändern einer Variable innerhalb einer config.json:

                            @mickym

                            NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
                            Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

                            Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

                            Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

                            Da hattest Du ja geschrieben, dass NodeRed OK wäre, sonst hätte ich den Flow ja nicht gemacht.

                            A Offline
                            A Offline
                            AlyxAbyss
                            schrieb am zuletzt editiert von
                            #13

                            @mickym ist ja auch okay. Macht ja was es soll. Damit komme ich erstmal klar. Und vielleicht nehm ich das ja auch zum Anlass mich mit NodeRed mal mehr zu beschäftigen. Es sieht ja interessant aus.

                            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

                            661

                            Online

                            32.6k

                            Benutzer

                            82.1k

                            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