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. JavaScript
  5. Please move the states to 0_userdata.0.*

NEWS

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

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

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

Please move the states to 0_userdata.0.*

Geplant Angeheftet Gesperrt Verschoben JavaScript
56 Beiträge 14 Kommentatoren 6.3k Aufrufe 16 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.
  • D dougstar

    @homoran

    {
      "_id": "javascript.0.scriptEnabled.PV_hourly",
      "common": {
        "name": "scriptEnabled.PV_hourly",
        "desc": "controls script activity",
        "type": "boolean",
        "write": true,
        "read": true,
        "role": "switch.active"
      },
      "native": {
        "script": "script.js.PV_hourly"
      },
      "type": "state",
      "from": "system.adapter.javascript.0",
      "user": "system.user.admin",
      "ts": 1681754209752,
      "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
      }
    }
    
    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #30

    @dougstar nee, nicht die Objektdaten.
    die Liste der Objekte.

    scriptEnabled gehört in javascript.0

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    HomoranH 1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      @dougstar nee, nicht die Objektdaten.
      die Liste der Objekte.

      scriptEnabled gehört in javascript.0

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #31

      @homoran sagte in Please move the states to 0_userdata.0.*:

      @dougstar nee, nicht die Objektdaten.
      die Liste der Objekte.

      scriptEnabled gehört in javascript.0

      aber javascript.0.scriptEnabled.PV_hourly ist nicht das Skript mit ...telegram... aus deinem Screenshot

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      D 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @homoran sagte in Please move the states to 0_userdata.0.*:

        @dougstar nee, nicht die Objektdaten.
        die Liste der Objekte.

        scriptEnabled gehört in javascript.0

        aber javascript.0.scriptEnabled.PV_hourly ist nicht das Skript mit ...telegram... aus deinem Screenshot

        D Offline
        D Offline
        dougstar
        schrieb am zuletzt editiert von
        #32

        Danke, ich habe den Fehler gefunden.
        Es hat geholfen sich nochmal mit dem Thema zu befassen ;-)

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          peschu
          schrieb am zuletzt editiert von
          #33

          Hallo,

          ich bekomme auch die Meldung:
          script.js.Scripte.Akku_LG: Own states (javascript.0.scriptEnabled.Scripte.Akku-Ladesteuerung) should not be used in javascript.X.scriptEnabled.! Please move the states to 0_userdata.0.

          So sieht mein Objektbaum aus:

          60999b8b-b473-46df-a519-e7684cf84cdc-image.png

          Jetzt die Anfängerfragen:
          Wie bekomme ich den Status zu Userdata usw. Mir geht es nur darum das Script ein- bzw. auszuschalten.

          Schon mal Danke

          Peschu21

          apollon77A 1 Antwort Letzte Antwort
          0
          • P peschu

            Hallo,

            ich bekomme auch die Meldung:
            script.js.Scripte.Akku_LG: Own states (javascript.0.scriptEnabled.Scripte.Akku-Ladesteuerung) should not be used in javascript.X.scriptEnabled.! Please move the states to 0_userdata.0.

            So sieht mein Objektbaum aus:

            60999b8b-b473-46df-a519-e7684cf84cdc-image.png

            Jetzt die Anfängerfragen:
            Wie bekomme ich den Status zu Userdata usw. Mir geht es nur darum das Script ein- bzw. auszuschalten.

            Schon mal Danke

            Peschu21

            apollon77A Offline
            apollon77A Offline
            apollon77
            schrieb am zuletzt editiert von
            #34

            @peschu Dann ist aber hier was komisch. Dein Skript Scripte.Akku_LG scheint einen State dort anlegen zu wollen ... das darf es nicht. Zeig doch mal das Skript

            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
            P 1 Antwort Letzte Antwort
            0
            • apollon77A apollon77

              @peschu Dann ist aber hier was komisch. Dein Skript Scripte.Akku_LG scheint einen State dort anlegen zu wollen ... das darf es nicht. Zeig doch mal das Skript

              P Offline
              P Offline
              peschu
              schrieb am zuletzt editiert von
              #35

              @apollon77

              Da ist der Ausschnitt:

              9408bfd9-9feb-4a3f-bede-6ebac3292c84-image.png

              oder muss ich da aktualisiere nehmen?

              apollon77A HomoranH 2 Antworten Letzte Antwort
              0
              • P peschu

                @apollon77

                Da ist der Ausschnitt:

                9408bfd9-9feb-4a3f-bede-6ebac3292c84-image.png

                oder muss ich da aktualisiere nehmen?

                apollon77A Offline
                apollon77A Offline
                apollon77
                schrieb am zuletzt editiert von
                #36

                @peschu Das kanns aber jicht sein weil die meldung nur kommt wenn du states anlegst! (createState) ... keine ahnung was blockyly da tut

                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
                HomoranH 1 Antwort Letzte Antwort
                0
                • P peschu

                  @apollon77

                  Da ist der Ausschnitt:

                  9408bfd9-9feb-4a3f-bede-6ebac3292c84-image.png

                  oder muss ich da aktualisiere nehmen?

                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #37

                  @peschu sagte in Please move the states to 0_userdata.0.*:

                  Da ist der Ausschnitt:

                  Ausschnitte helfen selten!

                  wie kommt der Datenpunkt in das Verzeichnis?

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • apollon77A apollon77

                    @peschu Das kanns aber jicht sein weil die meldung nur kommt wenn du states anlegst! (createState) ... keine ahnung was blockyly da tut

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #38

                    @apollon77 sagte in Please move the states to 0_userdata.0.*:

                    weil die meldung nur kommt wenn du states anlegst! (

                    sicher?
                    nicht auch wenn ein DP in dem Verzeichnis angesprochen wird?

                    @peschu hat sich erledigt. Dein Skript heisst so?

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    P 1 Antwort Letzte Antwort
                    0
                    • HomoranH Homoran

                      @apollon77 sagte in Please move the states to 0_userdata.0.*:

                      weil die meldung nur kommt wenn du states anlegst! (

                      sicher?
                      nicht auch wenn ein DP in dem Verzeichnis angesprochen wird?

                      @peschu hat sich erledigt. Dein Skript heisst so?

                      P Offline
                      P Offline
                      peschu
                      schrieb am zuletzt editiert von
                      #39

                      @homoran
                      Jetzt stehe ich auf dem Schlauch. der Datenpunkt dürfte vom Script kommen, weil das so heißt und sich auch in dem entsprechenden Ordner befindet.

                      Das ist das gesamte Script:

                      100eeabe-4fbb-4a0a-8348-a03aff4d5196-image.png

                      R 1 Antwort Letzte Antwort
                      0
                      • P peschu

                        @homoran
                        Jetzt stehe ich auf dem Schlauch. der Datenpunkt dürfte vom Script kommen, weil das so heißt und sich auch in dem entsprechenden Ordner befindet.

                        Das ist das gesamte Script:

                        100eeabe-4fbb-4a0a-8348-a03aff4d5196-image.png

                        R Offline
                        R Offline
                        RaBu60
                        schrieb am zuletzt editiert von RaBu60
                        #40

                        Ich habe auch dieses Problem :slightly_frowning_face:

                        Hier die Struktur unter Javascript:
                        Screenshot 2023-06-24 141914.png

                        Wenn ich nun folgendes JS starte (ist wirklich nur ein Einzeiler)

                        setState("javascript.0.scriptEnabled.Hydrawise.Hydrawise", false, true);
                        

                        erhalte ich
                        Screenshot 2023-06-24 142210 a.png

                        Den Datenpunkt unter javascript.0... habe ich nicht selbst angelegt.

                        Wie kann ich diesen Log-Eintrag unterdrücken?
                        Die Version des JS-Adapters ist 7.0.3

                        Thomas BraunT apollon77A 2 Antworten Letzte Antwort
                        0
                        • R RaBu60

                          Ich habe auch dieses Problem :slightly_frowning_face:

                          Hier die Struktur unter Javascript:
                          Screenshot 2023-06-24 141914.png

                          Wenn ich nun folgendes JS starte (ist wirklich nur ein Einzeiler)

                          setState("javascript.0.scriptEnabled.Hydrawise.Hydrawise", false, true);
                          

                          erhalte ich
                          Screenshot 2023-06-24 142210 a.png

                          Den Datenpunkt unter javascript.0... habe ich nicht selbst angelegt.

                          Wie kann ich diesen Log-Eintrag unterdrücken?
                          Die Version des JS-Adapters ist 7.0.3

                          Thomas BraunT Online
                          Thomas BraunT Online
                          Thomas Braun
                          Most Active
                          schrieb am zuletzt editiert von
                          #41

                          @rabu60 sagte in Please move the states to 0_userdata.0.*:

                          Wie kann ich diesen Log-Eintrag unterdrücken?

                          Du willst das nicht unterdrücken sondern die Ursache beseitigen. Kann sonst ggfs . in künftigen Versionen zu einem Fehler führen.

                          Linux-Werkzeugkasten:
                          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                          NodeJS Fixer Skript:
                          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                          R 1 Antwort Letzte Antwort
                          0
                          • Thomas BraunT Thomas Braun

                            @rabu60 sagte in Please move the states to 0_userdata.0.*:

                            Wie kann ich diesen Log-Eintrag unterdrücken?

                            Du willst das nicht unterdrücken sondern die Ursache beseitigen. Kann sonst ggfs . in künftigen Versionen zu einem Fehler führen.

                            R Offline
                            R Offline
                            RaBu60
                            schrieb am zuletzt editiert von
                            #42

                            @thomas-braun sagte in Please move the states to 0_userdata.0.*:

                            Du willst das nicht unterdrücken sondern die Ursache beseitigen. Kann sonst ggfs . in künftigen Versionen zu einem Fehler führen.

                            Klar, unterdrücken wäre wirklich suboptimal :wink:

                            Aber es sollte doch möglich sein, diesen Datenpunkt per Script zu ändern ohne diesen Log-Eintrag zu erhalten
                            Mache ich irgendetwas falsch?

                            Thomas BraunT 1 Antwort Letzte Antwort
                            0
                            • R RaBu60

                              @thomas-braun sagte in Please move the states to 0_userdata.0.*:

                              Du willst das nicht unterdrücken sondern die Ursache beseitigen. Kann sonst ggfs . in künftigen Versionen zu einem Fehler führen.

                              Klar, unterdrücken wäre wirklich suboptimal :wink:

                              Aber es sollte doch möglich sein, diesen Datenpunkt per Script zu ändern ohne diesen Log-Eintrag zu erhalten
                              Mache ich irgendetwas falsch?

                              Thomas BraunT Online
                              Thomas BraunT Online
                              Thomas Braun
                              Most Active
                              schrieb am zuletzt editiert von
                              #43

                              @rabu60 sagte in Please move the states to 0_userdata.0.*:

                              Aber es sollte doch möglich sein, diesen Datenpunkt per Script zu ändern

                              Wenn es im dafür vorgesehenen Verzeichnis passiert erscheint auch keine Meldung.

                              Linux-Werkzeugkasten:
                              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                              NodeJS Fixer Skript:
                              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                              R 1 Antwort Letzte Antwort
                              0
                              • Thomas BraunT Thomas Braun

                                @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                Aber es sollte doch möglich sein, diesen Datenpunkt per Script zu ändern

                                Wenn es im dafür vorgesehenen Verzeichnis passiert erscheint auch keine Meldung.

                                R Offline
                                R Offline
                                RaBu60
                                schrieb am zuletzt editiert von
                                #44

                                @thomas-braun sagte in Please move the states to 0_userdata.0.*:

                                @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                Aber es sollte doch möglich sein, diesen Datenpunkt per Script zu ändern

                                Wenn es im dafür vorgesehenen Verzeichnis passiert erscheint auch keine Meldung.

                                Nun, ich möchte per Script ein anderes Script (in diesem Falle "Hydrawise") stoppen
                                und ggfs. wieder starten.

                                Welcher DP bzw. Verzeichnis wäre das Richtige?

                                DJMarc75D T 2 Antworten Letzte Antwort
                                0
                                • R RaBu60

                                  @thomas-braun sagte in Please move the states to 0_userdata.0.*:

                                  @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                  Aber es sollte doch möglich sein, diesen Datenpunkt per Script zu ändern

                                  Wenn es im dafür vorgesehenen Verzeichnis passiert erscheint auch keine Meldung.

                                  Nun, ich möchte per Script ein anderes Script (in diesem Falle "Hydrawise") stoppen
                                  und ggfs. wieder starten.

                                  Welcher DP bzw. Verzeichnis wäre das Richtige?

                                  DJMarc75D Offline
                                  DJMarc75D Offline
                                  DJMarc75
                                  schrieb am zuletzt editiert von
                                  #45

                                  @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                  Nun, ich möchte per Script ein anderes Script (in diesem Falle "Hydrawise") stoppen
                                  und ggfs. wieder starten.

                                  Warum will man sowas machen ?

                                  Hat wenig Sinn.

                                  Lehrling seit 1975 !!!
                                  Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                                  https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                                  R 1 Antwort Letzte Antwort
                                  0
                                  • DJMarc75D DJMarc75

                                    @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                    Nun, ich möchte per Script ein anderes Script (in diesem Falle "Hydrawise") stoppen
                                    und ggfs. wieder starten.

                                    Warum will man sowas machen ?

                                    Hat wenig Sinn.

                                    R Offline
                                    R Offline
                                    RaBu60
                                    schrieb am zuletzt editiert von RaBu60
                                    #46

                                    @djmarc75
                                    Nun, ich habe das Script 1, welches über schedule regelmäßig Abfragen über den Status meiner Beregnungsanlage abfrägt.
                                    Ich habe Datenpunkte unter 0_userdata.* angelegt, die die Settings (z.B. Request-URL,
                                    Abfrageintervall etc.) beinhalten.
                                    Wenn ich nun Settings ändere, und da ist z.B. das Abfrageintervall welches die schedule-Zeiten betreffen, möchte ich das Script nicht manuell stoppen und wieder starten müssen.
                                    Das soll z.B. Script 2 , welches weitere DPs "überwacht" für mich erledigen.

                                    Ich hoffe ich konnte das etwas verständlich rüberbringen :blush:

                                    DJMarc75D 1 Antwort Letzte Antwort
                                    0
                                    • R RaBu60

                                      @djmarc75
                                      Nun, ich habe das Script 1, welches über schedule regelmäßig Abfragen über den Status meiner Beregnungsanlage abfrägt.
                                      Ich habe Datenpunkte unter 0_userdata.* angelegt, die die Settings (z.B. Request-URL,
                                      Abfrageintervall etc.) beinhalten.
                                      Wenn ich nun Settings ändere, und da ist z.B. das Abfrageintervall welches die schedule-Zeiten betreffen, möchte ich das Script nicht manuell stoppen und wieder starten müssen.
                                      Das soll z.B. Script 2 , welches weitere DPs "überwacht" für mich erledigen.

                                      Ich hoffe ich konnte das etwas verständlich rüberbringen :blush:

                                      DJMarc75D Offline
                                      DJMarc75D Offline
                                      DJMarc75
                                      schrieb am zuletzt editiert von
                                      #47

                                      @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                      Ich hoffe ich konnte das etwas verständlich rüberbringen

                                      für mich nicht... und ist das Skript geheim ? Wir sind hier keine Hellseher.

                                      Lehrling seit 1975 !!!
                                      Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                                      https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                                      R 1 Antwort Letzte Antwort
                                      0
                                      • DJMarc75D DJMarc75

                                        @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                        Ich hoffe ich konnte das etwas verständlich rüberbringen

                                        für mich nicht... und ist das Skript geheim ? Wir sind hier keine Hellseher.

                                        R Offline
                                        R Offline
                                        RaBu60
                                        schrieb am zuletzt editiert von
                                        #48

                                        @djmarc75 sagte in Please move the states to 0_userdata.0.*:

                                        @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                        Ich hoffe ich konnte das etwas verständlich rüberbringen

                                        für mich nicht... und ist das Skript geheim ? Wir sind hier keine Hellseher.

                                        Natürlich ist das Script nicht geheim...

                                        Hier der Code, der die regelmäßige Abfrage macht (Scripname Hydrawise):

                                        var source_dp = '0_userdata.0.Hydrawise';
                                        var dpSettings = source_dp+".Settings";
                                        var dpAPI_Key = dpSettings+".API_Key";
                                        var dpInterval = dpSettings+".interval";
                                        
                                        var debugNoLog = 'nolog';
                                        var debugInfo = 'info';
                                        var debugWarn = 'warn';
                                        var debugError = 'error';
                                        var debugMode = debugNoLog;
                                        
                                        var iIntervall = function(){
                                        	let iTime;
                                        	
                                        	iTime=getState(dpInterval).val;
                                        	if ((iTime == 0)||(iTime == 1)){
                                        		return '* * * * *';
                                        	} else {
                                        		return '*/'+iTime.toString()+' * * * *';
                                        	}
                                        };
                                        
                                        // @ts-ignore
                                        let oSchedule = schedule(iIntervall(), function(){
                                            let vAPI_key = getState(dpAPI_Key).val;
                                        	
                                            if (debugMode != debugNoLog){
                                                console.log('Anfrage an Hydrawise gestartet');
                                            };
                                        
                                        	//Customer und Controller Infos holen
                                        	var url='https://app.hydrawise.com/api/v1/customerdetails.php?api_key='+vAPI_key
                                        	request({url : url}, function (error, response, body) {
                                                let data;
                                        
                                                if (body.toLowerCase() === 'api key not valid') {
                                                    console.error(body);
                                                } else {
                                                    try {
                                                        data=JSON.parse(body);
                                                        GetCustomerAndController(data);
                                                    } catch(e) {
                                                        switch(debugMode) {
                                                        case debugWarn:
                                                            console.warn('Hydrawise Customer und Controller:'+body);
                                                            break;
                                                        case debugError:
                                                            console.error('Hydrawise Customer und Controller:'+body);
                                                            break;
                                                        case debugInfo:
                                                            console.log('Hydrawise Customer und Controller:'+body); //debugMessage);
                                                        default:
                                                        }
                                                    }
                                                }
                                        	});
                                         
                                        	//Zonen und Sensoren Infos holen
                                        	var url='https://app.hydrawise.com/api/v1/statusschedule.php?api_key='+vAPI_key
                                        	request({url : url}, function (error, response, body) {
                                                let data;
                                                if (body.toLowerCase() === 'api key not valid') {
                                                    console.error(body);
                                                } else {
                                                    try {
                                                        data=JSON.parse(body);
                                                        GetRelaysAndSensors(data);
                                                    } catch(e) {
                                                        switch(debugMode) {
                                                        case debugWarn:
                                                            console.warn('Hydrawise Zonen und Sensoren: '+body);
                                                            break;
                                                        case debugError:
                                                            console.error('Hydrawise Zonen und Sensoren: '+body);
                                                            break;
                                                        case debugInfo:
                                                            console.log('Hydrawise Zonen und Sensoren:'+body);
                                                        default:
                                                        }
                                                    }
                                                }
                                        	});
                                        
                                            if (debugMode != debugNoLog){
                                                console.log('Hydrawise Abfrage beendet');
                                            };
                                        })
                                        
                                        /**
                                        * @param {string} DataPoint
                                        * @param {string} DP_Desc
                                        */
                                        
                                        function SetDatapoint (DataPoint, DP_Desc, DP_value){
                                            if (existsState(DataPoint)==false){
                                         		createState(DataPoint, {
                                        					name: DP_Desc,
                                        					desc: DP_Desc,
                                        					type: typeof DP_value,
                                        					role: 'state'
                                        				   });
                                                };
                                        	setState(DataPoint, DP_value, true );
                                        }
                                        
                                        function GetCustomerAndController(data){
                                        	var UserInfos  = source_dp + '.UserInfo';
                                        	var Controller = source_dp + '.Controller';
                                        
                                        	SetDatapoint (UserInfos  + '.customer_id', 'Customer ID', data.customer_id);
                                        	SetDatapoint (Controller  + '.name', 'Name of controller', data.controllers[0].name);
                                        	SetDatapoint (Controller  + '.last_contact', 'Last time we contacted controller (Timestamp)', data.controllers[0].last_contact);
                                            SetDatapoint (Controller  + '.lastContact', 'Last time we contacted controller', getTimeFormat(data.controllers[0].last_contact*1000));
                                        	SetDatapoint (Controller  + '.serial_number', 'Serial number of controller', data.controllers[0].serial_number);
                                        	SetDatapoint (Controller  + '.controller_id', 'Unique ID of controller', data.controllers[0].controller_id);
                                        };
                                         
                                        function GetRelaysAndSensors(data){
                                        	if ('undefined' !== typeof  data.relays){    	
                                        		var Zones  = source_dp + '.Zones.Zone_';
                                        		var Sensor = source_dp + '.Sensors.Sensor_';
                                                
                                                let tsnow=(Date.now());
                                        
                                        		//Alle Zoneninfos aus JSON lesen
                                        		for (var i = 0; i < data.relays.length; i++) { 
                                        			SetDatapoint (Zones + data.relays[i].relay + '.relay_id', 'ID of the zone',data.relays[i].relay_id);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.time', 'Number of seconds until the next programmed run',data.relays[i].time);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.next_runtime', 'Next time this zone will run',getTimeFormat(tsnow+data.relays[i].time*1000));
                                                    SetDatapoint (Zones + data.relays[i].relay + '.run', 'Length of next run time',data.relays[i].run);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.run_min', 'Length of next run time in minutes',Math.round(data.relays[i].run/60));
                                        			if (getState(Zones + data.relays[i].relay + '.name').val.slice(0, data.relays[i].name.length) != data.relays[i].name) {
                                        				SetDatapoint (Zones + data.relays[i].relay + '.name', 'Zone name',data.relays[i].name);
                                                    };
                                        			SetDatapoint (Zones + data.relays[i].relay + '.relay', 'Zone number',data.relays[i].relay);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.type', 'Zone type',data.relays[i].type);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.period', 'Period',data.relays[i].period);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.timestr', 'Next time this zone will water in a friendly string format',data.relays[i].timestr);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.stop', 'Stop',data.relays[i].stop);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.sensor_0', 'Depending on sensor port 1',false);
                                        			SetDatapoint (Zones + data.relays[i].relay + '.sensor_1', 'Depending on sensor port 2',false);
                                        	
                                        			//Sensoren für diese Zone?
                                        			if ('undefined' !== typeof  data.sensors){    
                                        				for (var s = 0; s < data.sensors.length; s++) {
                                        					setState(Zones + data.relays[i].relay + '.sensor_' + s, false, true );
                                        					
                                        					if ('undefined' !== typeof  data.sensors[s].relays){ 
                                        						for (var j = 0; j < data.sensors[s].relays.length; j++) 
                                        						{
                                        							if (data.sensors[s].relays[j].id == data.relays[i].relay_id){
                                        								setState(Zones + data.relays[i].relay + '.sensor_' + s, true, true );								
                                        							}							
                                        						}
                                        					}
                                        				}
                                        			}
                                        		}
                                        		//Alle Sensoreninfos aus JSON lesen
                                        		if ('undefined' !== typeof  data.sensors){    
                                        			for (var i = 0; i < data.sensors.length; i++) {
                                        				SetDatapoint (Sensor + data.sensors[i].input + '.input', 'Input port',data.sensors[i].input);
                                        				SetDatapoint (Sensor + data.sensors[i].input + '.type', 'Sensor type',data.sensors[i].type);
                                                        switch (data.sensors[i].type) {
                                                            case 1:
                                                                SetDatapoint (Sensor + data.sensors[i].input + '.typ', 'Type of sensor','Rain sensor');
                                                                break;
                                                            case 2:
                                                                SetDatapoint (Sensor + data.sensors[i].input + '.typ', 'Type of sensor','Flow meter');
                                                                break;
                                                            default:
                                                                SetDatapoint (Sensor + data.sensors[i].input + '.typ', 'Type of sensor','Custom');
                                                        }
                                        				SetDatapoint (Sensor + data.sensors[i].input + '.mode', 'Sensor mode',data.sensors[i].mode);
                                        				SetDatapoint (Sensor + data.sensors[i].input + '.timer', 'Timer',data.sensors[i].timer);
                                        				SetDatapoint (Sensor + data.sensors[i].input + '.offtimer', 'offtimer',data.sensors[i].offtimer);
                                        			}
                                        		}
                                        	}
                                        	else
                                        	{
                                        		console.warn('No response from Hydrawise')
                                        	};
                                        };
                                        
                                        function getTimeFormat(data) {
                                            let date=new Date(data);
                                        
                                            return (("0"+date.getDate()).slice(-2)+
                                                  "-"+("0"+(date.getMonth()+1)).slice(-2)+
                                                  "-"+date.getFullYear()+
                                                  " "+("0"+date.getHours()).slice(-2)+
                                                  ":"+("0"+date.getMinutes()).slice(-2)+
                                                  ":"+("0"+date.getSeconds()).slice(-2));
                                            };
                                        
                                        // bei Scriptstop
                                        onStop (function scriptStop () {
                                            clearSchedule(oSchedule);
                                        }, 1000);
                                        
                                        

                                        ... und hier das Script welches "Hydrawise" stoppen und wieder starten soll:

                                        var source_dp = '0_userdata.0.Hydrawise';
                                        var sdpSettings=source_dp+'.Settings';
                                        var dpScripts = 'javascript.0.scriptEnabled.Hydrawise';
                                        
                                        on({id: [].concat(Array.prototype.slice.apply($("state[state.id="+sdpSettings+".*]"))), change: "ne"}, async function (obj) {
                                            setState(dpScripts + ".Hydrawise", false, true);
                                            setStateDelayed(dpScripts + ".Hydrawise", true, false, 5000, false);
                                        });
                                        
                                        
                                        1 Antwort Letzte Antwort
                                        0
                                        • R RaBu60

                                          @thomas-braun sagte in Please move the states to 0_userdata.0.*:

                                          @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                          Aber es sollte doch möglich sein, diesen Datenpunkt per Script zu ändern

                                          Wenn es im dafür vorgesehenen Verzeichnis passiert erscheint auch keine Meldung.

                                          Nun, ich möchte per Script ein anderes Script (in diesem Falle "Hydrawise") stoppen
                                          und ggfs. wieder starten.

                                          Welcher DP bzw. Verzeichnis wäre das Richtige?

                                          T Nicht stören
                                          T Nicht stören
                                          ticaki
                                          schrieb am zuletzt editiert von ticaki
                                          #49

                                          @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                          @thomas-braun sagte in Please move the states to 0_userdata.0.*:

                                          @rabu60 sagte in Please move the states to 0_userdata.0.*:

                                          Aber es sollte doch möglich sein, diesen Datenpunkt per Script zu ändern

                                          Wenn es im dafür vorgesehenen Verzeichnis passiert erscheint auch keine Meldung.

                                          Nun, ich möchte per Script ein anderes Script (in diesem Falle "Hydrawise") stoppen
                                          und ggfs. wieder starten.

                                          startScript('scriptName', ignoreIfStarted, callback);
                                          
                                          Beispiel: Skript im Ordner Test, Name: Skript 1
                                          startScript('Test.Skript_1')
                                          
                                          stopScript('scriptName', callback);
                                          

                                          Dafür gibt es Befehle.

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

                                          R O 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          736

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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