Skip to content

Skripten / Logik

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

16.6k Topics 214.0k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    RoddiEFR
    Ok dann warte ich lieber und fang eine frische Installation an wenn die neue Version fertig ist. Wäre es möglich beim aktuallisieren vom ersten Beitrag auch die Versionsnummern zu ändern wie schon jemand Vorgeschlagen hatte? Das macht das es einfacher wenn Änderungen anliegen. Thx
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    B
    @Murphy-0 Hatte noch nen kleinen Bug, jetzt sieht es schon viel besser aus.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    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
  • IF .. THEN .. ELSE versus SWITCH .. CASE ..

    javascript
    17
    1
    0 Votes
    17 Posts
    2k Views
    AlCalzoneA
    @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..: also auf die Welt an Programmiersprachen aus der ich komme 🎉🎉🎉 Diese Scriptsprache wird ja auch von ioBroker unterstützt und somit sollte ich mich ggf. auch hiermit einmal beschäftigen. Dann verweise ich dich mal auf https://forum.iobroker.net/topic/36493/09-09-20-30-einsteiger-cursus-demonstration-von-typescript und das TypeScript Handbook https://www.typescriptlang.org/docs/handbook/ welches übrigens auch einen guten Einstiegspunkt für Nicht-JS-Programmierer hat.
  • XOR über Byte Array - wie?

    javascript
    4
    0 Votes
    4 Posts
    485 Views
    S
    @paul53 Danke, funzt einwandfrei!
  • Alle objekte die xxx.color heißen mit Wert yyy belegen

    blockly
    10
    0 Votes
    10 Posts
    609 Views
    J
    @paul53 genau so gehts! vielen Dank, ich denk ich habe es nun kapiert:+1:
  • Wie Lautstärke regeln mit SayIt via Sonos?

    multimedia
    1
    0 Votes
    1 Posts
    157 Views
    No one has replied
  • Javascript Funktion triggert ungewollt, wie verhindern?

    javascript
    11
    0 Votes
    11 Posts
    822 Views
    M
    @spaceduck Kannst du dann bitte Deine Lösung hier dokumentieren. Danke.
  • [gelöst] Daten per Telnet abgreifen.

    communication
    2
    1
    0 Votes
    2 Posts
    236 Views
    capitaenzC
    Problem gelöst, habe diesen Code gefunden von www.letscontrolit.com Damit baut man einfach meine (ursprünglich) gewünschte Serial2MQTT Brücke auf. #include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "SSID"; const char* password = "PWD"; const char* mqtt_server = "192.168.XXX.XXX"; const char* topic_rx = "uart/rx"; const char* topic_tx = "uart/tx"; const byte numChars = 100; char receivedChars[numChars]; // an array to store the received data boolean newData = false; WiFiClient espClient; PubSubClient client(espClient); void setup() { pinMode(BUILTIN_LED, OUTPUT); // Initialize the BUILTIN_LED pin as an output Serial.begin(9600); setup_wifi(); client.setServer(mqtt_server, 1885); client.setCallback(callback); } void setup_wifi() { delay(10); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void callback(char* topic, byte* payload, unsigned int length) { for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } String macToStr(const uint8_t* mac) { String result; for (int i = 0; i < 6; ++i) { result += String(mac[i], 16); if (i < 5) result += ':'; } return result; } void reconnect() { String clientName; clientName += "esp8266-"; uint8_t mac[6]; WiFi.macAddress(mac); clientName += macToStr(mac); clientName += "-"; clientName += String(micros() & 0xff, 16); while (!client.connected()) { if (client.connect((char*) clientName.c_str())) { // random client id digitalWrite(BUILTIN_LED, LOW); // low = high, so this turns on the led client.subscribe(topic_rx); // callback: mqtt bus -> arduino } else { digitalWrite(BUILTIN_LED, HIGH); // high = low, so this turns off the led delay(5000); } } } void loop() { if (!client.connected()) { reconnect(); } client.loop(); recvWithEndMarker(); showNewData(); } void recvWithEndMarker() { static byte ndx = 0; char endMarker = '\n'; char rc; while (Serial.available() > 0 && newData == false) { rc = Serial.read(); if (rc != endMarker) { receivedChars[ndx] = rc; ndx++; if (ndx >= numChars) { ndx = numChars - 1; } } else { receivedChars[ndx] = '\0'; // terminate the string ndx = 0; newData = true; } } } void showNewData() { if (newData == true) { client.publish(topic_tx, receivedChars); // publish: arduino -> mqtt bus newData = false; } }
  • efergy API auslesen und in wert umwandeln

    monitoring
    9
    0 Votes
    9 Posts
    1k Views
    S
    @paul53 nach Neustart des Brokers funktioniert es . Dankeschön für die Hilfe.
  • Sonso Coordinator mittels Script setzen

    blockly javascript
    1
    1
    0 Votes
    1 Posts
    187 Views
    No one has replied
  • Anrufe auf FritzBox per Telegram auf Handy ankündigen

    blockly
    48
    1
    0 Votes
    48 Posts
    6k Views
    I
    Hallo Leute, da mir ja scheinbar keiner sagen kann, wie man (wenn überhaupt) die Anrufankündigungen für ein bestimmtes Telefonbuch (in dem Spamanrufer stehen) ausklammern kann: Wie kann ich sagen, daß Anrufe nur angekündigt werden, wenn im Anrufnamen nicht das Wort "Spam" vorkommt? Danke! EDIT: Habe es endlich hinbekommen. Wenn ich selbst oder einer derer Spammer, die ich in einem extra Telefonbuch in der FritzBox hinterlegt habe, und die alle mit "Arsch", gefolgt von einer Nummer, benamt wurden, bei meiner Mama auf Festnetz anrufen, bekomme ich keine Telegram-Meldung mehr: [image: 1605966324842-bildschirmfoto-2020-11-21-um-14.44.04.jpg]
  • On / Off Frage

    template
    7
    0 Votes
    7 Posts
    550 Views
    amg_666A
    @Homoran Auf die Idee muss man erstmal kommen :-)
  • Termine in Google Kalender eintragen

    multimedia javascript node-red
    3
    0 Votes
    3 Posts
    378 Views
    Gurke258G
    @MCU Ja hier -> https://developers.google.com/calendar/overview
  • Scripte einzeln oder lang/groß

    blockly javascript
    6
    2
    0 Votes
    6 Posts
    589 Views
    dslraserD
    @AlCalzone sagte in Scripte einzeln oder lang/groß: Monster-Blockly 😂✌🙋‍♂️
  • Anwesenheitsscript HZ bei offenem Fenster aussetzen

    heating
    6
    0 Votes
    6 Posts
    310 Views
    C
    @Fizh-Kopp Ich gehe davon aus, dass dein FK im iobroker ist. Dann gibt es einen State open, der auf true steht. Ausgehend von deinem Script, würde ich dein if-Statement wie folgt umschreiben... if FK.open.val Thermostat ausschalten else if deine if-statement gefolgt vom bisherigen else. Deinen Trigger wirst du aber auch nochmal überdenken müssen... Stand jetzt, kann das Fenster 4:59 offen sein, bevor der Cron wieder läuft und es erkennt. Auch bleibt dein Thermostat bei 16 stehen, wenn du um 23:00 Uhr das Fenster öffnest. Ich persönlich gehe etwas anders an solche Aufgaben ran. Ich nutze eigene States im iobroker. Mit den Scripten überwache ich diese dann auf Veränderung und reagiere entsprechend darauf. Beispiel: Angenommen es gibt einen State ZielTemperatur. Dann brauchst du ein Script, welche bei einer Änderung des States ZielTemperatur den neuen Wert an das Themostat übermittelt. (Damit ist deine Heizungssteuerung schon mal fast fertig.) Was jetzt noch fehlt, sind Scripte, welche den Wert von ZielTemperatur ändern, in Abhängigkeit von Ereignissen die Eintreten (Fenster offen, An-/Abwesenheit, Uhrzeit) Beispiel: Bei Änderung von ZielTemperatur, neuen Wert an das Thermostat const ZielTemp = "javascript.0.ZielTemperatur"; const idTarget = "fritzdect.0.Comet_14078017xxxx.targettemp"/Target Temp/; //Wohnzimmer on({id: ZielTemp,change:'ne'}, function (obj) { setState(idTarget, obj.state.val); });
  • Datenpunkt Update vor Änderung verarbeiten

    javascript node-red
    2
    0 Votes
    2 Posts
    230 Views
    paul53P
    @S84 sagte: Wie kann ich diese 100% verarbeiten/manipulieren BEVOR der Datenpunkt aktualisiert wird. Das ist nicht möglich, es sei denn, man kann den Adapter daran hindern, den Datenpunkt zu setzen. Andernfalls benötigt man einen weiteren Datenpunkt.
  • CRON Trigger

    blockly
    3
    0 Votes
    3 Posts
    304 Views
    K
    @paul53 Danke! Schade eigentlich.
  • Routine mit Alexa / Sonoff / Philips Hue / Yeelight

    multimedia javascript
    2
    0 Votes
    2 Posts
    349 Views
    M
    @badplay sagte in Routine mit Alexa / Sonoff / Philips Hue / Yeelight: Alternativen Firmware Was bedeutet alternative Firmware ? Tasmota? Welche Version? Wenn ja, dann Sonoff-Adapter installieren. Einstellungen für den Sonoff-Adapter müssen dann zu den einzelnen Steckdosen umgestellt werden. Für Yeelight Lampen gibt es den Yeelight-Controller-Adapter! (Habe ich nicht, weiß nicht, welche Einstellungen notwendig sind, meistens selbsterklärend)
  • Screenshot per Telegram oder Pushover verschicken

    blockly
    2
    0 Votes
    2 Posts
    352 Views
    arteckA
    @Darkmann2000 ach komm.. die diskussion gabs sogar letzte woche mit einem Script..als beispiel.. schon die Suche bemüht ?? und dann noch doppel Post...
  • Shelly RGBW2 Geschwindigkeit der Scriptausführung

    blockly
    1
    1
    0 Votes
    1 Posts
    319 Views
    No one has replied
  • HM Thermostat runtersteuern bei Fenster auf

    heating
    5
    0 Votes
    5 Posts
    1k Views
    T
    @micha86 erstmal vielen dank für dein skript. Ich hätte nur paar kurze Fragen dazu. Wofür steht value-bm-fk-02?
  • MQTT String generell aufteilen?

    javascript
    28
    0 Votes
    28 Posts
    4k Views
    R
    @Rushmed Hat niemand ne Idee?

368

Online

32.7k

Users

82.5k

Topics

1.3m

Posts