Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.8k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    maxclaudiM
    @Daniel-8 sagte: Das ist ja ganz schön merkwürdig. Wir sind halt leider immer noch ein wenig von der Cloud abhängig.... Bei mir gab es keine socSet veränderungen. Bei mir gerade wieder und hat sich dann durch Blockly gleich wieder geändert. Temperaturen: 1600AC+ 35°C Bat 1: 33°C Bat 2: 32°C SoC: 72% socSet: 85% Nachdem ich ihn per Script zwinge, schaltet er jetzt einfach auf pass:2 und gibt die Leistung ins Hausnetz durch, statt zu laden. und jetzt, beim schreiben des Textes schaltet er nun doch auf pass:0 und ladet. Unglaublich. 33°C mag jetzt nicht ideal sein aber dennoch... Gerät wird gekühlt. Außerdem verstehe ich nicht warum inverseMaxPower 2x auf 200 gesetzt wurde - ohne Script etc. edit/PS 19.00h: Wechselt immer wieder zwischen pass:0 und pass:2 Zwar nicht schnell aber mit SoCset 85% ist er mit SoC 72% und mit aktuell ca. 70W PV-Leistung (19Uhr) noch weit weg von 85% und garantiert nicht überfordert. edit/PPS: 19.04h: schon wieder wurde inverseMaxPower auf 200 geändert und durch mein script zurück auf 1600 gesetzt. edit/PPPS: 19.07h: Wenn es nicht von der Cloud kommt dann muss es die Firmware sein. Es gibt nur die 2 Kandidaten. Vermute dass bei ca. +33°C irgend ein Batterieschutz greift. Was aber nicht die inverseMaxPower erklärt. Denn das Gerät sollte mit 35°C entspannt sein. update 19.40h: Bat 1 minVol: 3.34V Bat 1 maxVol: 3.34V Bat 2 minVol: 3.34V Bat 2 maxVol: 3.34V SoC: 72% das kann nicht sein. Also stimmt der SoC-Wert nicht und das erklärt auch warum die Batterien nicht oder nur sehr schwach geladen wurden (BMS). mit 3.34V sind sie bereits >= 85% Eine Kalibrierung wird oder wurde nicht eingeleitet durch Firmware/Cloud. update 19.48h socLimit steht unbeeindruckt auf 0. Also keine Ladegrenze erreicht. Das ist ein Worst Case. Werde den Batterie-Entladeschutz wohl um einen Batterie-Ladeschutz erweitern müssen. update 19.55h Setzte nun socSet auf 70%. Damit wurde auch gleich socLimit:1 gemeldet und pass:2 Man sieht hier wieder ganz deutlich, dass man sich nicht auf minSoc und socSet verlassen sollte! Die Firmware oder Cloud hat zwar irgendwie darauf reagiert aber nicht gut. Statt eine Kalibrierung anzuwerfen oder etwas Nachvollziehbares wurden (für mich) wichtige Werte geändert. Ok, eine Erfahrung mehr. Muss dann auch in meinem Script abgefangen werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    @oliverio Ja, genauso ist meine Installation (MariaDB, phpmyadmin und jeweils im Docker Container). Der SQL läuft bereits und ist mit ioBroker über den SQL Adapter verbunden.
  • Hilfe für Skripterstellung mit Node-RED

    962 13k
    962 Themen
    13k Beiträge
    Marc BergM
    @Thomas-Braun sagte: In der Konfigurationsdatei von Node Red, also in der settings.js, kann durch hinzufügen der Zeitzone das Problem behoben werden. Wenn man den Adapter nutzt, werden Änderungen in der settings.js immer wieder überschrieben. Das bringt nichts. @taddy81 Was konkret ist denn das Problem? Lösen die inject Nodes falsch aus? Oder geht es nur um diese Meldung, bei der niemand weiß, woher sie kommt? @Taddy81 sagte: Auszug: 7/26/2026, 11:15:23 AMnode: debug 3msg.payload : string[24]
  • Schalter Saugroboter mit HomeKit

    communication
    3
    0 Stimmen
    3 Beiträge
    208 Aufrufe
    S
    @Asgothian Danke schön für die Info! Haben wir für so einen Script ein Beispiel? Muss mir das mal anschauen. Bin absoluter Neuling :-)
  • IF .. THEN .. ELSE versus SWITCH .. CASE ..

    javascript
    17
    1
    0 Stimmen
    17 Beiträge
    3k Aufrufe
    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 Stimmen
    4 Beiträge
    573 Aufrufe
    S
    @paul53 Danke, funzt einwandfrei!
  • Alle objekte die xxx.color heißen mit Wert yyy belegen

    blockly
    10
    0 Stimmen
    10 Beiträge
    757 Aufrufe
    J
    @paul53 genau so gehts! vielen Dank, ich denk ich habe es nun kapiert
  • Wie Lautstärke regeln mit SayIt via Sonos?

    multimedia
    1
    0 Stimmen
    1 Beiträge
    182 Aufrufe
    Niemand hat geantwortet
  • Javascript Funktion triggert ungewollt, wie verhindern?

    javascript
    11
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    M
    @spaceduck Kannst du dann bitte Deine Lösung hier dokumentieren. Danke.
  • [gelöst] Daten per Telnet abgreifen.

    communication
    2
    1
    0 Stimmen
    2 Beiträge
    382 Aufrufe
    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 Stimmen
    9 Beiträge
    1k Aufrufe
    S
    @paul53 nach Neustart des Brokers funktioniert es . Dankeschön für die Hilfe.
  • Sonso Coordinator mittels Script setzen

    blockly javascript
    1
    1
    0 Stimmen
    1 Beiträge
    241 Aufrufe
    Niemand hat geantwortet
  • Anrufe auf FritzBox per Telegram auf Handy ankündigen

    blockly
    48
    1
    0 Stimmen
    48 Beiträge
    8k Aufrufe
    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 Stimmen
    7 Beiträge
    870 Aufrufe
    amg_666A
    @Homoran Auf die Idee muss man erstmal kommen :-)
  • Termine in Google Kalender eintragen

    multimedia javascript node-red
    3
    0 Stimmen
    3 Beiträge
    465 Aufrufe
    Gurke258G
    @MCU Ja hier -> https://developers.google.com/calendar/overview
  • Scripte einzeln oder lang/groß

    blockly javascript
    6
    2
    0 Stimmen
    6 Beiträge
    701 Aufrufe
    dslraserD
    @AlCalzone sagte in Scripte einzeln oder lang/groß: Monster-Blockly 😂✌🙋‍♂️
  • Anwesenheitsscript HZ bei offenem Fenster aussetzen

    heating
    6
    0 Stimmen
    6 Beiträge
    485 Aufrufe
    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 Stimmen
    2 Beiträge
    290 Aufrufe
    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 Stimmen
    3 Beiträge
    461 Aufrufe
    K
    @paul53 Danke! Schade eigentlich.
  • Routine mit Alexa / Sonoff / Philips Hue / Yeelight

    multimedia javascript
    2
    0 Stimmen
    2 Beiträge
    420 Aufrufe
    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 Stimmen
    2 Beiträge
    446 Aufrufe
    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 Stimmen
    1 Beiträge
    416 Aufrufe
    Niemand hat geantwortet
  • HM Thermostat runtersteuern bei Fenster auf

    heating
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    T
    @micha86 erstmal vielen dank für dein skript. Ich hätte nur paar kurze Fragen dazu. Wofür steht value-bm-fk-02?

358

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge