Skip to content

Skripten / Logik

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

16.6k Themen 213.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    OliverIOO
    @BertDerKleine Am besten zeigst du mal dein Script, dann kann man bessere Empfehlungen abgeben. Bitte auch mal schreiben warum du aufteilen möchtest obwohl es so funktioniert.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    crunchipC
    @MartinP sagte in Wie füge ich hier drei weitere Felder ein -> roter Pfeil?: So, wie vorgeschlagen ist die Wahrscheinlichkeit gering, dass es klappt. dann solltest du nochmal die Frage lesen, niemand hat nach Empfänger gefragt, es geht lediglich darum zwei Zeilen hinzu zu fügen
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • Allgemeine Logikfrage zu blockly

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    529 Aufrufe
    Dr. BakteriusD
    Die anderen Bedingungen wurden nicht geprüft, weil die erste nicht zutreffend war (und auch nicht sein konnte). Aber schön, dass es jetzt funktioniert. Es sind oft nur so kleine Fehler. Vielleicht markierst du das Thema noch als [gelöst]…
  • Change Node & JSONata

    Verschoben
    13
    4
    0 Stimmen
    13 Beiträge
    3k Aufrufe
    G
    @rewenode: Angeblich ja (v0.20). Aber wer weis schon wie da die Prioritäten liegen. Vielleicht wird's ja doch erst zur v20.0 :lol: ` O.K. erwischt. :mrgreen: Mit der Version kann es noch dauern. @rewenode: Mit viel langer Weile geht auch so was :lol: :lol: :lol: ` Funktioniert absolut fehlerfrei.
  • Node module installieren unter iobroker

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    K
    Wie gesagt ich habe jetzt alle Erweiterungen von Node Red entfernt. Zusätzliche NPM-Module gebe ich im Instanz Fenster an. Zunächst mal alle enfternen, damit sie gelöscht sind und dann nochmal eintragen. Im Log sehe ich keine Aktion dass etwas installiert wird. Und wenn ich das NPM Paket als user unter /opt/iobroker/node_modules/iobroker.node-red installiere, kommt es nicht unter Node Red.
  • [Gelöst] Aktion wenn: Wert hat sich geändert und ist X Minuten im Zustand geblieben

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    siggi85S
    @Xyolyp: Wenn du an deinem "falls"-Block oben links auf das Zahnrad klickst und einen "sonst"-Block anfügst kannst du in dem "sonst"-Block das Timeout wieder stoppen und somit verhindern, dass eine Aktion ausgeführt wird. ` Danke, das wars! :) [image: 9874_blockly_wert-bleibt_solved.png]
  • Wärme LED Leuchte dem Tageslicht anpassen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    223 Aufrufe
    AlCalzoneA
    Ich habe ein skript welches morgens die farbtemperatur meiner tradfris langsam auf kaltweiß fadet und abends auf warmweiß. Kann ich dir aber erst nächstes Wochenende posten wegen Urlaub. Gesendet von unterwegs
  • Blockly temperatur schalten

    Verschoben
    29
    0 Stimmen
    29 Beiträge
    7k Aufrufe
    D
    :-) muss erst den T-sensor bauen …. teile sind schon da.
  • Node Red + Zigbee2Mqtt Beleuchtung Dimmen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    580 Aufrufe
    Niemand hat geantwortet
  • Exec pihole enable wird nicht ausgeführt

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    765 Aufrufe
    smartboartS
    Habe pi hole auch auf nem extra system laufen..spiele mit dem gedanken das auf nem iobroker host mitlaufen zu lassen… Wie sind da die erfahrungen oder macht das jemand? Gesendet von meinem CLT-L09 mit Tapatalk
  • Mehrer Lampen mit einem Schalter schalten abhängig vom Zustand

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    434 Aufrufe
    K
    geht ! , allerdings muss man "falls Objekt Zigbee… wurde geändert " ändern auf "falls Objekt Zigbee... ist wahr"... Und dann läuft´s .. ! DANKE
  • [gelöst] Ausfzählung von Lichtern mit Skript erfasst nicht alle Lichter

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    400 Aufrufe
    crunchipC
    Hat jemand nen Hinweis, wie ich die Namen meiner Shelly´s angezeigt bekomme? Anzahl der Lichter und Räume funktioniert, fehlt nur noch der Name der einzelnen Lampen Das gesamt script /* Status Zahl Lichter zählt die Lichter in allen Räumen und meldet die Eingeschalteten namentlich Daten kommen vom Gewerk "licht" erstellt: 17.06.2015 nach diesem Vorbild: viewtopic.php?f=21&t=869&sid=f9ba5657489ff431a1990884f90779c1#p6564 23.06.2015 globale Variablendefinition zählen_Lichter.textLichterAn fehlte und wurde hinzugefügt Log Ausgabe auskommentiert 05.08.2015 STATE aus der Ausgabe entfernt nach Idee von stephan61 http://forum.iobroker.org/viewtopic.php ... t=20#p9267 24.03.2016 keine Anzeigen von virtuellen Kanälen mehr (in Abhängigkeit der Abfrage des Namens) 06.05.2016 Datenpunkt für Ansagen zugefügt 02.07.2016 abgeschaltet, da Fehler 03.07.2016 Zähl-Funktion getrennt nach Schalter und Dimmer search statt indexOf und RegEx für Suche nach Virtuellen Kanälen 27.11.2016 Verschoben in Status Code optimiert 23.12.2016 Räume eingebaut */ var logging = true; var idAnzahlEin = 'javascript.0.Status.Lichter.Anzahl_ein', idAnzahl = 'javascript.0.Status.Lichter.Anzahl', idText = 'javascript.0.Status.Lichter.Text', idRaum = 'javascript.0.Status.Lichter.Raum', // <---- NEU idAnsage = 'javascript.0.Status.Lichter.Ansage'; // Ab hier nix mehr ändern createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter type: 'number', name: 'Anzahl aller Lichter', min: 0, def: 0, role: 'value' }); createState(idAnzahlEin, { // Anzahl der Lichter, die auf sind als Variable unter Javascript.0 anlegen type: 'number', name: 'Anzahl der eingeschalteten Lichter', min: 0, def: 0, role: 'value' }); createState(idText, { // Anzahl der brennenden Lichter und deren Namen als Variable unter Javascript.0 anlegen type: 'string', name: 'Eingeschaltete Lichter', desc: 'Namen der eingeschalteten Lichter', def: ' ', role: 'value' }); createState(idAnsage, { type: 'string', name: 'Eingeschaltete Lichter (Ansage)', desc: 'Namen der eingeschalteten Lichter (für Ansage aufbereitet)', def: ' ', role: 'value' }); createState(idRaum, { // Räume, in denen Lichter brennen // <---- NEU type: 'string', name: 'Räume mit eingeschalteten Lichter', desc: 'Namen der Räume, in denen Lichter eingeschaltet sind', def: ' ', role: 'value' }); var cacheSelectorState = $('channel[state.id=*.STATE](functions="licht")'); // Gewerk licht var cacheSelectorLevel = $('channel[state.id=*.level](functions="licht")'); var cacheSelectorPOWER = $('channel[state.id=*.POWER](functions="licht")'); // Sonoff Lampen (müssen im Gewerk Licht sein) //var cacheSelectorHue = $('channel[state.id=*.ON](functions="Licht")'); // HUE Lampen (müssen im Gewerk Licht sein) var cacheSelectorHue = $('state[id=*.on](functions=Licht)[role=switch.light]'); var cacheSelectorSwitch = $('channel[state.id=*.Switch](functions="licht")'); // Shelly function checkDevices(obj) { // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk licht auf 0 var anzahlLichterAn = 0; var anzahlLichter = 0; var textLichterAn = []; var textRaum = []; if (logging) { log('++++++ Lichter Anzahl ++++ '); log('#### SCHALTER ##### '); } cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { /* if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } */ if (status) { // wenn Zustand = true, dann wird die Anzahl der Lichter hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // ENDE VK-Abfrage }); if (logging) log('#### DIMMER ##### '); cacheSelectorLevel.each(function (id, i) { // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.LEVEL abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".LEVEL")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten /* if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status + '%'); } */ if (parseFloat(status) > 0) { // Wenn Dimmwert über 0 ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // Ende Abfrage VK }); if (logging) { log('++++++ Lichter Anzahl ++++ '); log('#### SCHALTER ##### '); } cacheSelectorPOWER.each(function (id, i) { // Schleife für jedes gefundenen Element *.POWER im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf("POWER")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { /* if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } */ if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // ENDE VK-Abfrage }); cacheSelectorHue.each(function(id, i) { // Schleife für jedes gefundenen Element *.ON im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.ON abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".on")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } if (status) { // wenn Zustand = true, dann wird die Anzahl der Lichter hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // ENDE VK-Abfrage }); if (logging) log('#### DIMMER ##### '); cacheSelectorLevel.each(function(id, i) { // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.LEVEL abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".LEVEL")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status + '%'); } if (parseFloat(status) > 0) { // Wenn Dimmwert über 0 ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // Ende Abfrage VK }); if (logging) { log('++++++ Lichter Anzahl ++++ '); log('#### SCHALTER ##### '); } cacheSelectorSwitch.each(function (id, i) { // Schleife für jedes gefundenen Element *.POWER im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".Switch")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { /* if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } */ if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // ENDE VK-Abfrage }); // Array mit Lichternamen sortieren textLichterAn.sort(); textRaum.sort(); // <---- NEU // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben if (logging) log("Text: " + textLichterAn); if (logging) log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn); // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS) setState(idText, textLichterAn.join(', ')); // Schreibt die aktuelle Namen der eingeschalteten Lichter setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht // setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU } // Trigger cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk licht if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.LEVEL im Gewerk licht if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); cacheSelectorHue.on(function(obj) { // bei Zustandänderung *.ON von HUE Lampen im Gewerk Licht if (logging) log('Auslösende HUE: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); cacheSelectorSwitch.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk licht if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); function main() { setTimeout(function(){ if (logging) log('Auslöser Skriptstart'); checkDevices(); }, 2000); } main(); // Skriptstart-Auslöser // Aufbereitung für Ansage function strip_tags(data) { var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " "); return(rueckgabe); } on(idText, function (obj) { var text = obj.state.val; text = (getState(idAnzahl).val > 0 ) ? 'Lichter eingeschaltet: ' + strip_tags(text) : 'Alle Lichter ausgeschaltet'; setState(idAnsage, text); }); folgendes habe ich hinzugefügt var cacheSelectorSwitch = $('channel[state.id=*.Switch](functions="licht")'); // Shelly if (logging) { log('++++++ Lichter Anzahl ++++ '); log('#### SCHALTER ##### '); } cacheSelectorSwitch.each(function (id, i) { // Schleife für jedes gefundenen Element *.POWER im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".Switch")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { /* if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } */ if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // ENDE VK-Abfrage cacheSelectorSwitch.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk licht if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); [image: Opera-Momentaufnahme-2019-01-25-222457-192-168-178-90.png]![](</s><URL url=)<link_text text="https://i.ibb.co/wY42dfn/Opera-Momentau ... 178-90.png">https://i.ibb.co/wY42dfn/Opera-Momentaufnahme-2019-01-25-222457-192-168-178-90.png</link_text>" />
  • [doch nicht gelöst]Heizung regeln über Blockly funktioniert nicht

    Verschoben
    9
    2
    0 Stimmen
    9 Beiträge
    725 Aufrufe
    T
    @umbm: Wenn du in der fritzbox einen Zeitplan für die Thermostate erstellt hast, haben die Vorrang und überschreiben die anderen Werte. ` Ich hatte die Zeitschaltung in der Fritzbox nicht erstellt, sie war von anfang an da, ich habe sie nur komplett auf 24std Spartemperatur eingestellt. Es hat ja bis heute Vormittag funktioniert und nachdem ich den Adapter Fritzdect neu gestartet habe funktioniert es ja auch wieder so wie ich es möchte.
  • Script zum Fenster zählen (Fibaro)

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    269 Aufrufe
    Niemand hat geantwortet
  • Konvertierung mit Blockly

    Verschoben
    17
    1
    0 Stimmen
    17 Beiträge
    2k Aufrufe
    H
    Okay, hab's jetzt auch mal so getestet. Input muss im Format "MM DD YYY" sein. Output als Text geht gar nicht. Nur DD, MM, YY und YYYY als Zahl. Müsste also den Input erst mal umformatieren und die Zahl als Output dann nochmal explizit in Text umwandeln. Puh… :( Jetzt wäre es mal interessant, zu erfahren, ob das nur in Blockly so ist.
  • GetObject nach setObject zum Hinzufügen von Members in Aufzählung (enums) schlägt fehl

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    429 Aufrufe
    paul53P
    @0.L.L.1.: Ein Javascript Funktion addObjectToEnum gibts es auch nicht, oder? ` Nein, kenne ich nicht. @0.L.L.1.: Ich bin doch nicht der Einzige, der Objekte zu Enums nicht immer manuell hinzufügen möchte ` Bisher wahrscheinlich doch.
  • Änderung vs. Aktualisierung

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    359 Aufrufe
    paul53P
    @skorpil: Mir fallen keine Änderungen ein, die das verursacht haben könnten- außer eben dem Update des Adapters. ` Das kann die Ursache sein, dass sich der Adapter jetzt anders verhält.
  • Akku Zustand und weitere Daten vom Windows Gerät

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    wendy2702W
    Hallo, habt ihr mittlerweile eine Lösung gefunden? Danke und Gruß
  • [gelöst/workaround] Blockly Astro Verzögerung aus Datenobjekt

    Verschoben
    2
    3
    0 Stimmen
    2 Beiträge
    234 Aufrufe
    K
    Da ich ja sowieso für meine VIS die genau Uhrzeit habe (z.B. Sonnenuafgang minus 30 Miunten), habe ich diese Uhrzeit in Stunde und Minute zerlegt und nehem als Trigger cron statt Sonnenaufgang. [image: 3467_trigger.png]
  • Palette iobroker output

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    630 Aufrufe
    R
    Vielleicht hilt es, den Ordner ~/.node-red zu löschen. das ist das Installationsverzeichnis der Standalone Version.
  • Onkyo-Receiver Lautstärke mit Alexa steuern

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    657 Aufrufe
    S
    Hallo Ich habe leider keinen Onkyo Receiver zum Ausprobieren, aber du könntest ja mal versuchen mit einen inject Node auf das eiscp eine Nachricht zu senden. Habe im Netz eine Excel Tabelle über alle Befehle des Onkyo gefunden, so ähnlich klappt es ja auch mit anderen Herstellern. lg
  • [Gelöst] Hilfe bei Blockly-Skript Bewegungssensor

    Verschoben
    14
    2
    0 Stimmen
    14 Beiträge
    4k Aufrufe
    Johan2009J
    Super, dann werde ich mal weiter testen! Nochmals danke für die Erläuterungen! Gruß Johan

571

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge