Skip to content

Skripten / Logik

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

16.5k Topics 213.3k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    Norwegen60N
    Hallo, ich habe bisher iobroker Daten in eine MsSQL-Datenbank geschrieben und die in einem SQL-Script stark vereinfacht so ausgelesen: sendTo('sql.0', 'query', 'SELECT 1 AS test;', async(result) =>{setState(DataPoint , getAttr((getAttr(result, 'result')[0]), ''), true); }); und mit {console.log('### SQL-Test: '+ String(DataPoint) + ' = ' + String(getState(DataPoint).val))}; Das hat funktioniert. Jetzt habe ich auf MariaDB umgestellt. Daten werden auch problemlos in DB geschrieben. Adapter arbeitet also korrekt und Rechte sind vorhanden. Ich schaffe es aber nicht mehr auf irgendeine Weise Werte abzurufen. Die ganze SQL-Logik ist in eine DB-function verlegt. sendTo('sql.0', 'query', "SELECT fnTest AS test;", function(result) {console.log('Result 1: ', result);}); Result bleibt leer. Aber auch folgende Abfragen liefern nichts, bzw 0 zurück: sendTo('sql.0', 'query', "SELECT 1 AS test;", function(result) {console.log('Result 1: ', result);}); sendTo('sql.0', 'query', "SELECT 1 AS test;", result => console.log('Result 2: ', result)); sendTo('sql.0', 'query', 'SELECT 1 AS test;', result =>{ setState(DataPoint , getAttr((getAttr(result, 'result')[0]), ''), true); }); {console.log('Result3: '+ String(DataPoint) + ' = ' + String(getState(DataPoint).val))}; sendTo('sql.0', 'query', 'SELECT 1 AS test;', async(result) =>{ setState(DataPoint , getAttr((getAttr(result, 'result')[0]), ''), true); }); {console.log('Result4: '+ String(DataPoint) + ' = ' + String(getState(DataPoint).val))}; Hat jemand eine Idee, was ich beim Abruf eines sql mit MariaDB anders machen muss? Danke im Voraus Gerd
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    AsgothianA
    Ich denke in deinem Fall greift diese Lösung nicht. Die Lösung ist den Baustein [image: 1770589884460-screenshot-2026-02-08-at-23.31.01.png] durch das folgende Konstrukt zu ersetzen: [image: 1770590133517-screenshot-2026-02-08-at-23.35.29.png] Zusätzlich muss vor jeder anderen Ansteuerung der Aussenlampe Ecke ein [image: 1770590157266-screenshot-2026-02-08-at-23.35.55.png] gesetzt werden. A.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • Wärmemenge selbst berechnen

    20
    0 Votes
    20 Posts
    2k Views
    paul53P
    @hans_m sagte: Ich könnte die Abtauenergie extra erfassen Vorschlag: [image: 1732040874130-blockly_temp.jpg]
  • Javascript für die Community

    javascript
    3
    0 Votes
    3 Posts
    322 Views
    B
    @black-falcon87 Danke für den Hinweis. Also doch besser nur im Forum.
  • Empfehlung Literatur?

    5
    0 Votes
    5 Posts
    497 Views
    MartinPM
    @hg6806 Ich finde Fachliteratur am Strand schwer verdaulich... Habe den Drang, wenn nach ein wenig Lesen ein "Aha" Effekt eingesetzt hat, sofort das neue Wissen auszuprobieren. Wenn ich ohne vertiefende Übungen auskommen müsste, würde ich vieles sehr schnell wieder vergessen ...
  • Fehlermeldung wenn kein Messwert geliefert wird

    4
    0 Votes
    4 Posts
    314 Views
    B
    @shadowhunter23 Top! Der Adapter macht genau das wonach ich gesucht habe. Mitteilung mittels Telegramm Dienst sobald ein Gerät offline ist! Vielen Dank nochmal für die rasche Hilfe!!!
  • Gelöst / Schwierigkeiten mit JS-Funktionen mit Ergebnis

    blockly
    6
    1
    0 Votes
    6 Posts
    420 Views
    S
    Hey, vielen Dank für die Infos. werde dann mal schauen, wie ich es mache.
  • Bild versand

    32
    4
    0 Votes
    32 Posts
    4k Views
    David G.D
    @bananajoe Er hat es in seinem eigentlichen Thread gelöst bekommen.
  • Sonoff RF Bridge Tasmota und Portisch 433mhz

    javascript scenes monitoring
    44
    6
    7 Votes
    44 Posts
    10k Views
    O
    Entschuldigt bitte, wenn ich hier dazwischenquatsche: Wisst ihr, ob ich mit der Sonoff/Tasmota/Portisch-Lösung prinzipiell Glück haben könnte, Rollos und Markisen mit dem Dooya-Protokoll steuern kann? Meine bisherigen Versuche mit SIGNALduino (CC1101+ESP32) über FHEM zu iobroker waren eher mittelprächtig und funktionierten nur sporadisch. Bei der Sonoff-Bridge steht aber überall, dass keine Rolling-Codes unterstützt werden. Aber das nutzen Rolläden doch, oder?
  • Bastellösung: Polestar Ladezustand via Tibber App API

    15
    10
    0 Votes
    15 Posts
    42k Views
    G
    @stephan74 ... mit Ausnahme von "lastSeen" - die Defintion hat Tibber selbst geändert ohne eine Ersatzgröße ein zu führen.
  • Zigbee Lichter steuern

    blockly
    42
    2
    0 Votes
    42 Posts
    7k Views
    I
    @chrisprefect sagte in Zigbee Lichter steuern: Alias-Einträge von Hand machen Ich habe dafür schon angefangen ein skript zu mache. Aber Irgendwo musst du die Verbinden Knopf zu Action machen und ob man das jetzt in einer Gui macht oder einfach ein Alias anlegt finde ich jetzt nicht so anders. @chrisprefect sagte in Zigbee Lichter steuern: Lampen und Szenen manuell über eine Oberfläche steuern können Ja die Oberfläche müsste man selbst bauen aber das geht auf jedenfall in IoBroker. @chrisprefect sagte in Zigbee Lichter steuern: Ich komme ohne Phoscon leider nicht aus. Das glaube ich auch. Du hast da schließlich einen weg gefunden, der für dich funktioniert. Ich wollte nur zeigen, dass es einen anderen weg gibt und das ohne 1000 Skripte. Für die ganze Steuerung habe ich 7 Script Dateien. Und kann damit (wenn die Hardware es mit macht) belibig viele von Räumen verwalten.
  • InfluxDB mehrere Task zu einem erfassen

    7
    0 Votes
    7 Posts
    451 Views
    Marc BergM
    @mico sagte in InfluxDB mehrere Task zu einem erfassen: richtig gedacht? "Hauptgruppe" und "Untergruppe" sind ja von dir eingeführte Begriffe, da kann man wohl nicht von richtig oder falsch reden. Ich halte mich da eher an die technischen Gegebenheiten. So ein Measurement besteht aus einer recht einfachen Tabelle, die Spalten mit Unterstrich sind die Muss-Spalten, die von InfluxDB mindestens benötigt werden. "_field" enthält den Namen des Messwertes, "_value" den Messwert selbst (ohne Einheit). Dazu kommen beliebig viele Tags, die sind zur Kategorisierung von Messungen und zur Unterstützung bei der Suche und Filterung gedacht. "zimmer" ist hier ein Tag, was du einfach immer mitgibst, um später zu wissen, aus welchem Raum der Messwert stammt. Vorteil der Tags: sie sind indexiert, d.h. Filter darüber sind sehr schnell. Deshalb aber auf keinen Fall Messwerte in Tags speichern, sonst sprengt es dir die Datenbank. Die Zusammenführung der einzelnen Messwerte zu einer gemeinsamen Messung erfolgt über die exakt gleiche Zeit. (zum Beispiel die erste und zweite Zeile) _measurement _field _value _time zimmer raumwerte humidity 55 2024-11-01T12:12:12.012Z Arbeitszimmer raumwerte temperature 23 2024-11-01T12:12:12.012Z Arbeitszimmer raumwerte humidity 60 2024-11-01T13:12:12.012Z Kueche raumwerte temperature 19.5 2024-11-01T13:12:12.012Z Kueche raumwerte humidity 54 2024-11-02T12:12:12.012Z Arbeitszimmer raumwerte temperature 23 2024-11-02T12:12:12.012Z Arbeitszimmer raumwerte humidity 61 2024-11-02T13:12:12.012Z Kueche raumwerte temperature 19.4 2024-11-02T13:12:12.012Z Kueche Jetzt, wo ich darüber erzähle: @haus-automatisierung hat über die Grundlagen auch ein Video gemacht, das ist vielleicht hilfreicher.
  • 0 Votes
    7 Posts
    333 Views
    reiterth73R
    @haus-automatisierung sagte in Allgemeine Telegram Funktion für Gruppenversand aus Blockly: @reiterth73 sagte in Allgemeine Telegram Funktion für Gruppenversand aus Blockly: OT: Bis jetzt hatte ich mit deinem Bsp. gearbeitet. Das ist ein anderer Matthias und nicht mein Blog :) @haus-automatisierung :man-facepalming: kommt davon wenn man nach Matthias K** zum lesen aufhört :wink: Trotzdem danke
  • Frage an die HTML und Javascript Experten

    Moved Unsolved javascript
    4
    2
    0 Votes
    4 Posts
    409 Views
    OliverIOO
    @oli wo ist da das problem. hier mal 3 knöpfe im html widget? [image: 1731444829204-32e4fcb9-6d6b-4969-968f-8176f937a2ce-image.png] <button>test1</button><button>test1</button><button>test1</button> im zweifel mit css
  • Sprachausgabe Alexa / Blockly

    11
    1
    0 Votes
    11 Posts
    824 Views
    haselchenH
    @ralf War auf mich bezogen , weil ich das Blockly falsch gedeutet habe.
  • InfluxDB Daten aufarbeiten

    8
    0 Votes
    8 Posts
    452 Views
    M
    Eine Frage noch zur besseren Ordnung der Task jetzt habe ich jeden Raum mit einer Task Run für 0:00 gespeichert ist es auch möglich die Räume in einem Task zu speichern. Ich habe mal das Script für 2 Räume so wie es im Moment bei mir ist. option task = {name: "arbeitszimmerwerte", cron: "0 0 * * *"} from(bucket: "iobroker") |> range(start: -24h) |> filter( fn: (r) => r["_measurement"] == "zigbee.0.00124b002fabe53f.humidity" or r["_measurement"] == "zigbee.0.00124b002fabe53f.temperature", ) |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 60m, fn: mean, createEmpty: false) |> pivot(rowKey: ["_time"], columnKey: ["_measurement"], valueColumn: "_value") |> map( fn: (r) => ({ _time: r._time, _field: "value", _measurement: "raumwerte", temperatur: r["zigbee.0.00124b002fabe53f.temperature"], humidity: r["zigbee.0.00124b002fabe53f.humidity"], zimmer: "arbeitszimmer", }), ) |> to( bucket: "raumwerte", tagColumns: ["zimmer"], fieldFn: (r) => ({temperatur: r.temperatur, humidity: r.humidity}), ) option task = {name: "badwerte", cron: "0 0 * * *"} from(bucket: "iobroker") |> range(start: -24h) |> filter( fn: (r) => r["_measurement"] == "zigbee.0.00124b002fabe555.humidity" or r["_measurement"] == "zigbee.0.00124b002fabe555.temperature", ) |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 60m, fn: mean, createEmpty: false) |> pivot(rowKey: ["_time"], columnKey: ["_measurement"], valueColumn: "_value") |> map( fn: (r) => ({ _time: r._time, _field: "value", _measurement: "raumwerte", temperatur: r["zigbee.0.00124b002fabe555.temperature"], humidity: r["zigbee.0.00124b002fabe555.humidity"], zimmer: "badwerte", }), ) |> to( bucket: "raumwerte", tagColumns: ["zimmer"], fieldFn: (r) => ({temperatur: r.temperatur, humidity: r.humidity}), ) Gruß Mico
  • Hilfe bei parsen eines lokalen servers

    16
    1
    0 Votes
    16 Posts
    1k Views
    HomoranH
    @bluelightcrew sagte in Hilfe bei parsen eines lokalen servers: eigentlich schon am aufgeben ...ist keine Option :grinning:
  • Sonoff durch iQontrol und auch durch App schalten lassen

    11
    0 Votes
    11 Posts
    773 Views
    da_WoodyD
    @wofried ja, mit shelly ist das leben leichter. 91 stk lügen nicht. ;) btw, Sascha hat immer wieder gute angebote: https://shellyparts.de/
  • Fehlermeldung bei publishOnSubscribe

    1
    0 Votes
    1 Posts
    157 Views
    No one has replied
  • JSON Tabelle - Clients aus Fritzbox auslesen

    4
    2
    4 Votes
    4 Posts
    636 Views
    falke69F
    @haus-automatisierung Vielen herzlichen Dank für Deine Bemühungen. Es scheint aktuell zu laufen! Danke!
  • Mischer über PI(D) Regler....mit RL Beachtung

    6
    2
    0 Votes
    6 Posts
    559 Views
    MartinPM
    @paul53 sagte in Mischer über PI(D) Regler....mit RL Beachtung: Elektronische Heizthermostate enthalten i.d.R. einen PI-Regler. Insofern sie variable Öffnungszustände beherrschen ... Wenn es nur An/Aus gibt, reicht auch ein Zweipunktregler mit ein wenig Hysterese ...
  • dynamischer Inhalt für Trigger

    5
    1
    0 Votes
    5 Posts
    463 Views
    M
    @paul53 sagte in dynamischer Inhalt für Trigger: Dann muss man RegExp zum Triggern verwenden Hallo Paul, danke für den Hinweis, bzw Fingerzeit. Ich hab mit den Reg Exp. nun am Sonntag mal rumgespielt und verschiedene Trigger erfolgreich ausprobiert. Was ich noch nicht (zeitlich) geschafft habe, ist diese in den Workflow sauber einzubetten. Kommt wahrscheinlich noch. Dann dokumentiere ich den Part und setze die Anfrage aus erledigt. Merci! VG Michael

354

Online

32.6k

Users

82.3k

Topics

1.3m

Posts