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. Anfängerfrage

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Anfängerfrage

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 5 Kommentatoren 1.6k Aufrufe
  • Ä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.
  • R Offline
    R Offline
    RaBu
    schrieb am zuletzt editiert von
    #1

    Liebe Experten,

    entschuldigt die Frage, aber irgendwie komme ich nicht weiter.

    Zwei Probleme habe ich

    1.) Warum zeigt dieses Script die Id nicht korrekt an ?

    var MotionDetectId;
    var MotionDetectStatus; //=true;
    
    createState("Kamera.MotionDetectStatus", false, {
        name: "Kamera Informationen",
        type: "boolean"
    });
    
    MotionDetectId = getIdByName('javascript.1.Kamera.MotionDetectStatus');
    //MotionDetectStatus = GetState("javascript.1.Kamera.MotionDetectStatus");
    //MotionDetectStatus = GetState("javascript.1.Kamera.MotionDetectStatus").val;
    
    console.log("ID = " + MotionDetectId);
    console.log("Status = " +  MotionDetectStatus);
    console.log('Ausgabe OK');
    
    

    Ausgabe:

    20:05:36.753	[info]	javascript.1 Stop script script.js.Test_States
    20:05:39.555	[info]	javascript.1 Start javascript script.js.Test_States
    20:05:39.557	[info]	javascript.1 script.js.Test_States: ID = undefined
    20:05:39.557	[info]	javascript.1 script.js.Test_States: Status = undefined
    20:05:39.557	[info]	javascript.1 script.js.Test_States: Ausgabe OK
    20:05:39.558	[info]	javascript.1 script.js.Test_States: registered 0 subscriptions and 0 schedules
    
    

    2. Warum wird hier ein Fehler beim Starten gezeigt (und zwar unabhängig ob ich ".val" am Ende von GetState habe oder nicht)

    var MotionDetectId;
    var MotionDetectStatus; //=true;
    
    createState("Kamera.MotionDetectStatus", false, {
        name: "Kamera Informationen",
        type: "boolean"
    });
    
    //MotionDetectId = getIdByName('javascript.1.Kamera.MotionDetectStatus');
    //MotionDetectStatus = GetState("javascript.1.Kamera.MotionDetectStatus");
    
    MotionDetectStatus = GetState("javascript.1.Kamera.MotionDetectStatus").val;
    
    console.log("ID = " + MotionDetectId);
    console.log("Status = " +  MotionDetectStatus);
    console.log('Ausgabe OK');
    
    

    Ergebnis

    20:07:48.648	[info]	javascript.1 Start javascript script.js.Test_States
    20:07:48.649	[error]	javascript.1 script.js.Test_States: ReferenceError: GetState is not defined at script.js.Test_States:14:22
    
    

    Vielen Dank

    /RaBu

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Die ID muss zugewiesen werden. getState(id) beginnt mit kleinem "g".

      var MotionDetectId = 'javascript.1.Kamera.MotionDetectStatus';
      var MotionDetectStatus; //=true;
      
      createState("Kamera.MotionDetectStatus", false, {
          name: "Kamera Informationen",
          type: "boolean"
      });
      
      MotionDetectStatus = getState(MotionDetectId).val;
      
      log("ID = " + MotionDetectId);
      log("Status = " +  MotionDetectStatus);
      log('Ausgabe OK');
      
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • Y Offline
        Y Offline
        ykuendig
        schrieb am zuletzt editiert von
        #3

        Teil 2 der Frage: Weil da ein KLEINES g hingehört -> getState()

        Gruss Yves

        1 Antwort Letzte Antwort
        0
        • R Offline
          R Offline
          RaBu
          schrieb am zuletzt editiert von
          #4

          Vielen Dank Euch beiden!

          ..manchmal sieht man den Wald vor lauter Bäumen nicht .. das mit dem kleinen "g" - danach hätte ich noch Stunden gesucht.

          Jetzt verstehe ich auch was "getIdByName" macht.

          Vielen Dank

          /RaBu

          1 Antwort Letzte Antwort
          0
          • E Offline
            E Offline
            e-p-s
            schrieb am zuletzt editiert von
            #5

            Ich häng mich mal hier dran.

            Hab 2 Skripte mit Blockly gebaut. Es wird aber nicht ausgelöst.

            on({id: 'fritzbox.0.calls.ring', val: true}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              setState("telegram.0.communicate.response"/*Send text through telegram*/, (String('Anruf von:') + String(String(getState("fritzbox.0.calls.ringLastNumber").val) + String(String(getState("tr-064.0.callmonitor.inbound.callerName").val) + String(String(getState("tr-064.0.callmonitor.inbound.timestamp").val) + String(''))))), true);
            });
            
            

            2094_anruf.png

            1 Antwort Letzte Antwort
            0
            • E Offline
              E Offline
              e-p-s
              schrieb am zuletzt editiert von
              #6

              Schade. Komm hier einfach nicht weiter.

              1 Antwort Letzte Antwort
              0
              • OstfrieseUnterwegsO Offline
                OstfrieseUnterwegsO Offline
                OstfrieseUnterwegs
                schrieb am zuletzt editiert von
                #7

                @e-p-s:

                Ich häng mich mal hier dran.

                Hab 2 Skripte mit Blockly gebaut. Es wird aber nicht ausgelöst. `

                Wird es nicht ausgelöst oder kommt nichts bei Telegram an? das sind zwei verschiedene Sachen.

                Bau mal eine Ausgabe ins log ein und schau nach

                on({id: 'fritzbox.0.calls.ring', val: true}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  log("Das Telefon klingelt");
                  setState(..........);
                });
                

                EDIT: Hast Du das Skript aktiviert? d.h. steht im log sowas wie:

                	javascript.0 Start javascript script.js.Testing.Skript1
                
                1 Antwort Letzte Antwort
                0
                • E Offline
                  E Offline
                  e-p-s
                  schrieb am zuletzt editiert von
                  #8

                  Danke für deine Hilfe.

                  Ok so hab ich rausgefunden das es nicht gestartet war, denn oben war noch ein Fehler drin.

                  Richtig:

                  on({id: 'fritzbox.0.calls.ring', val: true}, function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    setState("telegram.0.communicate.response"/*Send text through telegram*/, (String('Anruf von:') + String(String(getState("fritzbox.0.calls.ringLastNumber").val) + String(String(getState("tr-064.0.callmonitor.inbound.callerName").val) + String(getState("tr-064.0.callmonitor.inbound.timestamp").val)))), true);
                  });
                  
                  

                  Was mich jetzt wundert, ich hatte das gestern Abend schonmal probiert, hatte aber keine Lust Screenshots zu machen.

                  Da stand im Log ebenfalls das das Teil gestartet worden wäre.

                  In dem jetzt unten eingebauten LOG stand es nichtmehr.

                  Kann man die LOG-Größe verändern?

                  Muss ich das Script ggf wie den Cloud Adapter alle X-Minuten neustarten?

                  Hatte heute Anruf bekommen, hat aber wieder nicht geklappt.

                  Wenn ich deinen Code einbauen will, zerstört es mit den Blockly-Modus.
                  2094_anruf2.png
                  2094_anruf3.png
                  2094_anruf4.png

                  1 Antwort Letzte Antwort
                  0
                  • OstfrieseUnterwegsO Offline
                    OstfrieseUnterwegsO Offline
                    OstfrieseUnterwegs
                    schrieb am zuletzt editiert von
                    #9

                    @e-p-s:

                    Danke für deine Hilfe.

                    Ok so hab ich rausgefunden das es nicht gestartet war, denn oben war noch ein Fehler drin.

                    Richtig:

                    on({id: 'fritzbox.0.calls.ring', val: true}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      setState("telegram.0.communicate.response"/*Send text through telegram*/, (String('Anruf von:') + String(String(getState("fritzbox.0.calls.ringLastNumber").val) + String(String(getState("tr-064.0.callmonitor.inbound.callerName").val) + String(getState("tr-064.0.callmonitor.inbound.timestamp").val)))), true);
                    });
                    
                    

                    Was mich jetzt wundert, ich hatte das gestern Abend schonmal probiert, hatte aber keine Lust Screenshots zu machen.

                    Da stand im Log ebenfalls das das Teil gestartet worden wäre.

                    In dem jetzt unten eingebauten LOG stand es nichtmehr.

                    Kann man die LOG-Größe verändern?

                    Muss ich das Script ggf wie den Cloud Adapter alle X-Minuten neustarten?

                    Hatte heute Anruf bekommen, hat aber wieder nicht geklappt.

                    Wenn ich deinen Code einbauen will, zerstört es mit den Blockly-Modus. `
                    Log ist der debug Block in Blockly… Ich hab das nur schnell per Hand rein geschrieben.

                    1 Antwort Letzte Antwort
                    0
                    • E Offline
                      E Offline
                      e-p-s
                      schrieb am zuletzt editiert von
                      #10

                      Mal gucken was passiert:

                      on({id: 'fritzbox.0.calls.ring', val: true}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        console.log((String('Anruf von:') + String(String(getState("fritzbox.0.calls.ringLastNumber").val) + String(String(getState("tr-064.0.callmonitor.inbound.callerName").val) + String(getState("tr-064.0.callmonitor.inbound.timestamp").val)))));
                        setState("telegram.0.communicate.response"/*Send text through telegram*/, (String('Anruf von:') + String(String(getState("fritzbox.0.calls.ringLastNumber").val) + String(String(getState("tr-064.0.callmonitor.inbound.callerName").val) + String(getState("tr-064.0.callmonitor.inbound.timestamp").val)))), true);
                      });
                      

                      2094_image_6.png

                      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

                      692

                      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