Skip to content

Skripten / Logik

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

16.5k Themen 213.3k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    azzkikrboyA
    @ArnoD sagte in E3DC Hauskraftwerk steuern: @azzkikrboy Hattest du zum Monatswechsel eine Störung? Die Daten werden in der Nacht am 01. des jeweiligen Monats gelöscht, wenn das Skript läuft und nicht gerade gestoppt wurde. Ja, das kann sein :-( Kann man da jetzt noch was machen?
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    D
    Oha. Das war einfach. Danke sehr :-)
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • [gelöst] Kamera Script Problem

    blockly security
    5
    1
    0 Stimmen
    5 Beiträge
    420 Aufrufe
    A
    Hoffe ich darf hier den link zum Video posten das hab ich nachgebaut und dann nach meinen Bedürfnissen angepasst. https://www.youtube.com/watch?v=Tda3BIM1SUk&t=3s wenn du noch fragen hast kannst dich gerne melden.
  • Blockly- Mit Uhrzeiten Rechnen

    blockly monitoring javascript
    3
    1
    0 Stimmen
    3 Beiträge
    3k Aufrufe
    AtomicIXA
    Vielen Dank, aber ich glaube, das ist mir für das Ergebnis/Nutzen zu kompliziert.
  • [ gelöst ]Osram Plug in Script „Lichter zählen“ einfügen

    Verschoben
    12
    1
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    M
    Hallo zusammen, ich versuche gerade die Anpassung für die Osram Steckdosen zu übernehmen. Irgendwie mag es bei mir aber nicht funktionieren. Kann jemand mal über die Anpassung schauen? var logging = true; var idAnzahlEin = 'javascript.0.Buero.Steckdose.Anzahl_ein', idAnzahl = 'javascript.0.Buero.Steckdose.Anzahl', idText = 'javascript.0.Buero.Steckdose.Text', idRaum = 'javascript.0.Buero.Steckdose.Raum', // <---- NEU idAnsage = 'javascript.0.Buero.Steckdose.Ansage'; 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' }); /* ------------------------- Selektor Start ------------------------------------------------------*/ var cacheSelectorSwitch = $('state[id=*.Switch](functions="onbuerosocket")'); // Shelly var cacheSelectorOsram = $('state[id=*.available](functions="onbuerosocket")'); // Osram /* ------------------------- Selektor Ende ------------------------------------------------------*/ 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 ##### '); } /* -----------------------Schleife Start -----------------------------------------------------*/ if (logging) { log('++++++ Lichter Anzahl ++++ '); log('#### SCHALTER ##### '); } //osram// cacheSelectorOsram.each(function(id, i) { // Osram Plug var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; var devicename = name; var raumname = getObject(id, "rooms"); if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } if (status) { ++anzahlLichterAn; textLichterAn.push(devicename); textRaum.push(raumname.enumNames); } ++anzahlLichter; }); //shelly// cacheSelectorSwitch.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 *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(" Switch ON/OFF")); //.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 }); /* -----------------------Schleife Ende -----------------------------------------------------*/ // 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(',<br>')); // Räume, in denen Licht brennt // <---- NEU setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU } /* ----------------- Trigger Start ------------------------------------------------------------*/ 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(); }); /* ----------------- Trigger Ende ------------------------------------------------------------*/ 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(/(&nbsp;|<([^>]+)>)/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); }); [image: 1559586338927-enums-iobroker-2019-06-03-20-24-27-resized.png] [image: 1559586353617-objects-iobroker-2019-06-03-20-24-54-resized.png] Ich versuche das Script so anzupassen das nur die "Steckdosen" gezählt werden. Da ich mir für jeden Raum einzelnt eine Übersicht basteln möchte welche Steckdosen eingeschaltet sind. Darum gibt es mehrere Gewerke bei mir. Die Shellys werden erkannt und gezählt, die Osram leider nicht :(
  • Javascriptadapter neustart bei Fehler trotz Catch-Block

    heating javascript
    3
    0 Stimmen
    3 Beiträge
    386 Aufrufe
    Christof.KacC
    Hi, ich bin mir sicher, das Beispiel von dieser Homepage genommen zu haben - da ist ja auch das Paket her. Egal, Danke für den Tip. Jetzt lass ich das mal laufen und bin schon gespannt, ob es robust läuft. Bis dann Christof
  • Szenen "dimmen" für automatische Beleuchtungssteuerung

    javascript scenes
    6
    0 Stimmen
    6 Beiträge
    669 Aufrufe
    A
    Danke für Eure Beispiele! Rein Hue-basiert läuft das sicher perfekt so. Was aber, wenn noch eine Lampe (z.B. von einem Tasmota-Knoten) per MQTT gesteuert werden soll? Für die kann ich natürlich noch ein extra Blockly-Kommando einfügen, aber irgendwie fände ich es toll, wenn alle Lampen einfach in einer Gruppe wären und nur die Gruppe parametriert wird - egal ob Hue oder Homematic-Lampen oder ein sonstiges System. Denn ich plane eigene Lampen via ESP8266 einzubinden, die wären mit einer reinen HUE-Lösung aussen vor :-(
  • Script um SQL auszulesen

    Verschoben
    32
    0 Stimmen
    32 Beiträge
    10k Aufrufe
    H
    Hallo, habe leider mit js nocht nicht viel am hut, aber wie müsste es aussehen wenn ich einen datenbank abruf von einem gewissen datum haben will. Würde gerne einen wert aus der datenbank von einem bestimmten zeitstempel in eine variable hinterlegen. Hintergrund: würde gerne einen zähler, der den wert ja immer nur erhöht. gerne über eine eingabe auf der vis, einen bestimmten verbrauch ausgeben. Also sagen wir mal von datum dd.mm.jjjj bis datum dd.mm.jjjj so ausgeben das ich auch nur den verbrauchten wert von dem zeitraum ausgebe. Oder gibt es dafür eine elegantere lösung? Lg Hans.
  • Globale Variable

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    8k Aufrufe
    A
    Hi, ich habe ein entgegengesetztes Problem: Um die Funktionsweise der globalen Variablen zu testen habe ich ein Skript angelegt, welches eine Variable true setzt, und diese als error im Log ausgibt. Obwohl dieses globale Skript nicht mehr läuft, und sogar wenn ich es lösche, wird bei jedem Ausführen eines anderen Skriptes die Logausgabe gemacht. :confused: Was hab ich da gebaut? :dizzy_face: EDIT: Hat sich erledigt, habe gerade den Host geupdatet. Jetzt läuft alles wieder normal.
  • 10 Sek Wartezeit bei Skript

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    833 Aufrufe
    eumatsE
    @Matten Schau Dir mal setStateDelay an...
  • Error "Night" und "Night End" im Log

    javascript
    7
    0 Stimmen
    7 Beiträge
    780 Aufrufe
    T
    @paul53 Super werd ich testen. Dank dir
  • [gelöst] Änderung von Objekt inenrhalb eines Scripts (Blockly)

    blockly
    3
    0 Stimmen
    3 Beiträge
    198 Aufrufe
    jmeister79J
    @paul53 danke, das hab ich befürchtet. Ich habe mir jetzt so geholfen, dass ich ohne die boolsche arbeite und direkt beim allgemeinen zurücksetzen auf die untere grenze der hysterese schaue. Ich werde Zeitnah das script mit lokalen variablen in js schreiben bis dahin hilft das. LG Nils
  • 0 Stimmen
    1 Beiträge
    293 Aufrufe
    Niemand hat geantwortet
  • Hilfe: Letzte zahl in Blockly vergleichen [6,-48,-41]

    javascript blockly
    24
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    C
    Vielen Dank ich musste das Zeichen nur umdrehen da ich ein - vor der Zahl habe. Nun bekomme ich auch wenn ich test auf true setze die Nachricht Dachfenster sind zu. Aber komischerweise bekomme ich das direkt 2 mal .. Alle anderen werte iben sind false. [image: 1559037971956-hmm.png]
  • JS Adapter Probleme - läuft zusätzlich als "Schattenprozess"?

    javascript
    5
    0 Stimmen
    5 Beiträge
    323 Aufrufe
    H
    Danke für die Info. Ich habe jetzt mal nachgesehen. Ich lasse das Backup tatsächlich im sog. "snapshot mode" laufen. Habe jetzt mal umgestellt auf "stop mode". In der Hilfe steht dazu: "It works by executing an orderly shutdown of the VM, and then runs a background Qemu process to backup the VM data. After the backup is started, the VM goes to full operation mode if it was previously running." Mal sehen, was es bringt.
  • IOBroker - HTTP Post/GET ESP8266 und HTML_WEbFronted

    javascript
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    S
    @Schmeckm sagte in IOBroker - HTTP Post/GET ESP8266 und HTML_WEbFronted: Heisst es dann ich muss in der Url folgenden Code angeben Christian: http://192.168.178.20/con? Da fehlt noch der Parameter: rfc.toString(), true den musst Du noch rausfinden und anhängen. Gruß Christian
  • Waschmaschine plus Verbrauchskosten

    blockly monitoring
    3
    1
    0 Stimmen
    3 Beiträge
    564 Aufrufe
    RöstkartoffelR
    Am besten ist es auch, die Strom- und Leistungsaufnahme mittels History mitzuloggen, das erleichtert das Auswerten
  • (Gelöst) Ausgabewert für VIS umschreiben

    blockly javascript monitoring
    4
    0 Stimmen
    4 Beiträge
    433 Aufrufe
    M
    Hallo noch einmal, habe das 'Problemchen' jetzt selbst lösen können. War vielleicht zu trivial. Ich habe eine Variable definiert und per Skript gesteuert, die den Wert einfach umschreibt. Jetzt lese ich den variablen Wert und nicht den Systemwert aus. War doch kein Hexenwerk, bei einfacheren Logiken. Aber die nächste Frage wird bald kommen. LG, Martin
  • Variable aus Blockly in command fur Hue nutzen?

    Verschoben
    23
    1
    0 Stimmen
    23 Beiträge
    5k Aufrufe
    dslraserD
    @aleks-83 sagte in Variable aus Blockly in command fur Hue nutzen?: {"on":true,"b":0,"bri":0,"ct":2200,"g":0,"hue":0,"level":80,"r":0,"sat":194,"xy":[0.5072,0.4076],"colormode":"xy","transitiontime":50} Das wird bei mir ein "langsames" kräftiges blau {"b":0,"bri":0,"ct":2200,"g":0,"hue":0,"level":80,"r":0,"sat":194,"xy":[0.5072,0.4076],"colormode":"xy","transitiontime":50} und so wird es langsam ausgeschaltet {"b":0,"bri":0,"ct":2200,"g":0,"hue":0,"level":0,"r":0,"sat":194,"xy":[0.5072,0.4076],"colormode":"xy","transitiontime":50} Das "on":true oder false beim ausschalten habe ich aber mal entfernt, weil das ja eigentlich level regelt
  • Tr-064 Gäste da - ja/nein?

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    663 Aufrufe
    M
    @ChristianF Nein, leider nicht. Ich benutze weiterhin den tr-064, doch ohne das Gäste-WLAN.
  • Benachrichtigung Adapter/Instanzen-Ampel

    Verschoben
    11
    1 Stimmen
    11 Beiträge
    2k Aufrufe
    eumatsE
    @deifel sagte in Benachrichtigung Adapter/Instanzen-Ampel: Das Problem mit dem Schedule ist allerdings auch dort vorhanden... In dem von mir verlinkten Skript wird schedule nicht genutzt...
  • Rolladensteuerung wirft Fehler im Log

    blockly javascript scenes
    8
    2
    0 Stimmen
    8 Beiträge
    667 Aufrufe
    T
    @paul53 Oh verdammt manchmal sieht man den Wald vor lauter Bäumen nicht! Hab den Zeitraum in zwischen geändert werde mal schauen ob es jetzt läuft. Kann mir jedoch immernoch nicht erklären warum er aber nichts ins Log geschrieben hat.

532

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge