Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    1.1k

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.6k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    6.2k

Anfängerfrage

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 5 Kommentatoren 1.9k 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: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

      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

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      267

                      Online

                      33.0k

                      Benutzer

                      83.6k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2026
                      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