Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Aus Skript ein weiteres Skript starten

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Aus Skript ein weiteres Skript starten

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      HKF8770 last edited by

      Ich möchte aus einem Skript heraus ein weiteres Skript starten. Kann mir jemand den Befehl sagen ??

      Gesendet von meinem Lenovo TAB 2 A10-70L mit Tapatalk

      1 Reply Last reply Reply Quote 0
      • P
        pix last edited by

        Hallo,

        kannst du etwas genauer werden? Im Javascript-Adapter sind die Skripte an sich ja keine Programme, wie in der HM-Webui. Du kannst ja theoretisch alle Logik in ein einziges riesiges und unübersichtliches Skript packen. Es sind also nur übersichtliche Einzelteile der Logik, die sich nicht separat starten lassen. Wenn ein bestimmter Teil eines Skriptes von mehreren Stellen ausgelöst werden soll, dann macht es Sinn, ihn in eine Funktion zu packen. Wenn die Funktion dann von mehreren Skripten aus gestartet werden soll, kannst du sie entweder zB oben in jedes dieser Skripte kopieren oder gleich in ein neues, globales Skript packen.

        Ich mache das so zB mit den Sayit-Ansagen.

        ! ````
        /* global sayit
        Skript setzt Sayit Objekt
        und schaltet dafür das iPad zur Tonausgabe mit ipad_schalten(zustand, meldung) ein.
        ! 18.07.2015 erstellt von Pix
        03.08.2015 Verzögerung auf 3s
        22.09.2015 Abfrage, ob iPad ein oder aus, Verzögerung auf 4s, wenn aus
        */
        ! // Sayit
        function sayit(ansage) {
        var idStatusanzeige = "hm-rpc.0.MEQ1234567.1.STATE"/Stromlose Statusanzeige Flur:1.STATE/,
        statusanzeige = getState(idStatusanzeige).val;
        var lastSay = null;
        if (statusanzeige) {
        if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
        lastSay = (new Date()).getTime();
        setState("sayit.0.tts.text"/Text to speech/, ansage);
        }
        } else {
        ipad_schalten(1, "Wandtablet Flur wegen Sprachmeldung eingeschaltet"); // ipad_schalten ist auch eine globale Funktion
        setTimeout(function () {
        if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
        lastSay = (new Date()).getTime();
        setState("sayit.0.tts.text"/Text to speech/, ansage);
        }
        }, 4000); // 4s Verzögerung damit iPad anschalten kann
        }
        }

        In den Skripts, die eine Ansage produzieren nutze ich dann nur den Aufruf sayit('anzusagender text');
        
        Gruß
        
        Pix
        1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer last edited by

          Hi HKF8770,

          wie bei Buttons in vis vorgehen. Also ein Objekt "Auslöser" für dein 2tes script, im 2ten script "on({id: Auslöser, val: true})" usw. Im ersten script "setState("Auslöser", true).

          Gesendet von meinem Jolla mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • H
            HKF8770 last edited by

            Hey Jey Cee… Danke für den Tipp. Also direkter Start ist nicht möglich. Dafür einfach einen virtuellen Schaler setzen, welcher dann dass andere Skript startet.

            Gesendet von meinem Lenovo TAB 2 A10-70L mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            951
            Online

            31.7k
            Users

            79.7k
            Topics

            1.3m
            Posts

            3
            4
            1451
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo