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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Trigger zündet nicht

NEWS

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

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

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

Trigger zündet nicht

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 5 Kommentatoren 1.0k 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.
  • J Offline
    J Offline
    JanGa
    schrieb am zuletzt editiert von
    #1

    Ich habe ein Problem mit einem sehr einfachen Script. Immer wenn die Alarmanlage eingeschaltet wird, will ich eine Aktion durchführen. Dafür habe ich das folgende Script erstellt:

    on({id: 'alarmanlage', change: "ne"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (getState("alarmanlage").val == true) {
        sendTo("telegram.0", "send", {
            text: 'AN'
        });
        console.log("telegram: " + 'AN');
      } else if (getState("alarmanlage").val == false) {
        sendTo("telegram.0", "send", {
            text: 'AUS'
        });
        console.log("telegram: " + 'AUS');
      }
    });
    
    

    Das ist jetzt die simpelste Varianete, die nichts macht außer Telegram Nachrichten zu verschicken. Ich weiß, dass Telegramm funktioniert, weil ich es genau so in andren Scripten einsetze. Bei diesem Script passiert jedoch gar nichts. Ich kann die Alarmanlage einschalten und ausschalten wie ich will. Der Trigger scheint nicht zu greifen. Was mache ich falsch?

    Hier die Definition vom Datenpunkt alarmanlage:

    {
      "common": {
        "name": "alarmanlage",
        "role": "",
        "type": "boolean",
        "desc": "Manuell erzeugt",
        "read": true,
        "write": true,
        "def": false,
        "smartName": {
          "de": "Alarmanlage"
        }
      },
      "native": {},
      "acl": {
        "object": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator",
        "state": 1636
      },
      "_id": "alarmanlage",
      "type": "state"
    }
    

    Es ist mir echt peinlich das zu posten, aber ich seitze da jetzt schon zum dritten Mal dran und komme nicht weiter. Das Problem ist wahrscheinlich trivial. :D

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo JanGa,

      da muss dir nix peinlich sein. Ich schreibe das Skript mal etwas um.

      1. Vereinfachung

      Wenn du auf eine ID triggerst ("alarmanlage"), kannst du diese in der on-Funktion auch immer mit (hier) obj.state.val abrufen. Nochmaliges getState("alarmanlage").val wäre falsch.

      1. vermutlich Fehler

      Die ID sollte alarmanlage ohne Anführungszeichen sein. Sonst ist der Name des Datenpunkts gemeint (in ANführungszeichen).

      Ich bezeichne IDs auch immer mit idName, einfach um sie zu erkennen. Sie sind ja nix anderes als Zeichenkettenvariablen zB mit dem Inhalt "hm-rega.0.1234". Ich lasse diese Bezeichnung im folgenden Code aber mal weg.

      const alarmanlage = "hm-rega.0.1234"; // zB HOmematic Variable
      on({id: alarmanlage, change: "ne"}, function (obj) {
        var status = (obj.state.val) ? "EIN" : "AUS"; // true = EIN, false = AUS;
        sendTo("telegram.0", "send", {
          text: status
        });
        log("telegram: " + status);
      });
      
      

      geht noch etwas kürzer im oberen Bereich, denn change: "ne" ist default.

      ! on("hm-rega.0.1234", function (obj) { var status = (obj.state.val) ? "EIN" : "AUS"; // true = EIN, false = AUS; sendTo("telegram.0", "send", { text: status }); log("telegram: " + status); }); !

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        ich vermute die ID soll "javascript.0.alarmanlage" sein.

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          JanGa
          schrieb am zuletzt editiert von
          #4

          Ich habe das Script mal angepasst. Die Kurzform bringt mir nichts, weil ich mehrere Befehle ausführen will, sobald es funktioniert.

          on("alarmanlage"/*alarmanlage*/, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
             sendTo("telegram.0", "send", {
                text: 'TEST'
            });
            console.log("telegram: " + 'TEST');
            if (value === true) {
              sendTo("telegram.0", "send", {
                  text: 'Alarmanlage an'
              });
              console.log("telegram: " + 'Alarmanlage an');
            } else if (value === false) {
              sendTo("telegram.0", "send", {
                  text: 'Alarmanlage aus'
              });
              console.log("telegram: " + 'Alarmanlage aus');
            }
          });
          

          Ich bin eigentlich der Meinung, dass "alarmanlage" richtig ist. Sowohl für die ID als auch für den Namen. Der Datenpunkt liegt direkt im Hauptordner.

          Leider geht das Script immer noch nicht. Hat noch jemand eine Idee? Muss ich den Datenpunkt anders erstellen? Das eigentliche Alarmanlagenscript funktioniert einwandfrei. Den Status abzufragen ist kein Problem. Nur den Trigger kriege ich nicht zum laufen.

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

            @JanGa:

            Der Datenpunkt liegt direkt im Hauptordner. `
            Das wird das Problem sein. Der Datenpunkt sollte eine ID "irgendwas.N.alarmanlage" (N = Ziffer) haben, am Besten "javascript.0.alarmanlage", um zu createState(name) kompatibel zu sein. Datenpunkte mit einer ID ohne die Ziffer zwischen erstem und zweiten Punkt machen regelmäßig Probleme.

            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
            • J Offline
              J Offline
              JanGa
              schrieb am zuletzt editiert von
              #6

              Danke das hat funktioniert. Jetzt noch eine Kleinigkeit: Wie kriege ich die falsch angelegten Datenpunkte wieder gelöscht? Zum Teil sehe ich die im Objektbaum nicht. Z.B. in VIS kann ich sie dann aber auswählen.

              1 Antwort Letzte Antwort
              0
              • DutchmanD Offline
                DutchmanD Offline
                Dutchman
                Developer Most Active Administrators
                schrieb am zuletzt editiert von
                #7

                Aktiviere Mal den Experten Modus oben links beim Reiter objecte

                –-----------------------

                Send from mobile device

                1 Antwort Letzte Antwort
                0
                • J Offline
                  J Offline
                  JanGa
                  schrieb am zuletzt editiert von
                  #8

                  Der ist schon aktiviert. Ich sehe trotzdem nicht alles. Objekte direkt im Hauptordner abzulegen scheint eine kleine Totsünde zu sein. Leider geht das aus den ganzen Tutorials nicht wirklich hervor und es kursieren Scripte im Forum, die demnach nicht korrekt sind. :?

                  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

                  424

                  Online

                  32.4k

                  Benutzer

                  81.4k

                  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