Skip to content

Skripten / Logik

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

16.5k Themen 213.4k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    Norwegen60N
    @fuzzy1955 Ja, das hatte ich auch, aber ich dachte ich müsse hier auch in String wandeln und hatte let strSQL = "SELECT ioBroker.fn_energy('" + Mode + "', " + String(ID) + ", " + String(Offset) + ") AS energy;" // Und ich hatte es mit let sSQL5 = `SELECT ioBroker.fn_energy('${Mode}', ${ID}, ${Offset}) AS energy`; versucht, dort aber die falschen quotes verwendet. mit den nach rechts gekippten hat auch das funktioniert Das hier funktioniert jetzt incl. zurück holen des Wertes in Datapoint let sSQL0 = "SELECT ioBroker.fn_energy('" + Mode + "', " + ID + ", " + Offset + ") AS energy"; sendTo('sql.0', 'query', sSQL0, function (result) { let energy = result.result[0].energy; setState(DataPoint, {val: Number(energy), ack: true}); log('GetEnergy: ' + energy + ' -> ' + DataPoint, 'info'); }); Danke für die Unterstützung
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    paul53P
    @Asgothian sagte: Hier ist das Testskript mit dem ich das verifiziert habe. Danke, etwas dazu gelernt. Es ist mir bisher nicht aufgefallen, da ich selbst setStateDelayed() nicht verwende.
  • 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?
  • Log javascript.0 Fehlereingrenzung

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    496 Aufrufe
    C
    Hallo, kann es sein, dass du nicht die komplette Fehlermeldung reinkopiert hast? Dann könnte man auch sagen obs von der javascript Instanz kommt oder von einem Script, das läuft. Zu jedem script, das du anlegst, erzeugt die Instanz einen State unter javascript0.ScriptEnabled.DeinScriptName, wenn du da manuell States löscht kann das durchaus passieren. Übrigends sind die Fehlerangaben in der aktuellen Version präziser im log eingetragen. Sonst bleibt nur, alle Scripts stoppen und nach und nach wieder anwerfen :roll:
  • State vom Typ String wird nicht in Homematic geschrieben, wenn String einen Umlaut enthält

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    716 Aufrufe
    C
    @htrecksler: Ich tippe eher darauf, das ein Umlaut aus ioBroker nicht als Umlaut auf der CCU ankommt. ` Das Problem ist, dass da nicht etwa Müll zur CCU wandert, sondern gar nichts und beim ACK der State in IObroker wieder mit dem Wert, der momentan in der CCU ist, ueberschrieben wird. Wenn kein ACK kommen wuerde, koennte ich ja feststellen, dass etwas nicht stimmt. Klar ist, dass ich diesen Umlaut nicht absichtlich schreibe, ist wohl aus gewohnheit rein gerutscht, und glaubt mir, bis mein Hirn bei der Fehlersuche geschnallt hat, dass```` "für" != "fuer" Leider habe ich keine möglichkeit dieses Verhalten IObroker-CCU tiefer zu analysieren, mein aber, dass das mit den Umlauten früher funktioniert hat.
  • Anwesenheit und Abwesenheit über Geofency mit pushover senden

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    S
    ich muß nochmal Danke für die Hilfe sagen. Bin neu in diesem Bereich aber man bekommt immer Hilfe ohne dumme Sprüche. Echt Super ioBroker macht wirklich spaß. Gruß Sunny
  • Global function - aufrufendes Script rausfinden??

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    986 Aufrufe
    etvE
    ok, danke! Ich hab mich heute mal hingesetzt und die Zeiten analysiert wann ich diese Meldungen bekomme und was da im Normalfall überhaupt laufen könnte…. ... jo, - und siehe da - den Schuldigen gefunden!! Ich hab vor einigen Tagen einige meiner Scripts "gesäubert" und übersichtlicher gemacht und da einen Block außerhalb einer if-Abfrage falsch plaziert..... das war's [emoji16] Wie heißt es so schön: never touch a running system [emoji23][emoji23][emoji23] Liebe Grüße Tom Gesendet mit Tapatalk
  • HTTP und Blockly dreht durch….

    Verschoben
    4
    2
    0 Stimmen
    4 Beiträge
    710 Aufrufe
    DutchmanD
    @Blackeye: Und die externen Eingänge, trotzdem gehen doch nur 2 Bedingungen, oder? Danke ` komt drauf af was du meinst es gehen soviele bedinungen wie du willst, sowas z.b. [image: 979_und_oder.jpg] oder so [image: 979_extreme.jpg] sonst wen gibts aber auch ? [image: 979_else_if.jpg]
  • Blockly mit mehreren HTTP aufrufen

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    686 Aufrufe
    DutchmanD
    bau mal einen debug block rein und schaue ins log was passiert
  • Schedule

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    paul53P
    Man kann auf den Feiertag triggern und das Schedule anpassen. var sched1 = null; // Schedule-Objekt für Wochen-/Feiertage function konnex(...) { ... } schedule('0 23 * * 6,7', function() { // Wochenende konnex(...); }); on('knx.0.Zentralfunktionen.Zeitfunktionen.Feiertag', function(dp) { if(sched1) clearSchedule(sched1); if(dp.state.val) { // Feiertag sched1 = schedule('0 23 * * 1-5', function() { konnex(...); }); } else { sched1 = schedule('0 19 * * 1-5', function() { konnex(...); }); } });
  • Javascript Absturz mit Blockly Programm

    Verschoben
    10
    1
    0 Stimmen
    10 Beiträge
    3k Aufrufe
    R
    Hallo, installiere mal das neueste javascript update vom git, dann gings bei mir. Musste aber das Blockly nochmal neu zusammenstellen, mit dem vorhandenen stürzte der Adapter wieder ab. Jetzt kommt nur noch eine Fehlermeldung im log wenn der Wemos nicht erreichbar ist, der Adapter läuft aber weiter.
  • Stop Event

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    M
    @Bluefox: https://github.com/ioBroker/ioBroker.javascript#onstop ` Danke, genau was ich gesucht und anscheinend auch beim 10x lesen der Seite übersehen habe. :?
  • [Fehler] Script enable leer

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    573 Aufrufe
    BuZZyB
    Hast du irgendwelche Filter in der Ansicht der Objekte gesetzt? Gruß
  • Skript nur über Echo starten

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    397 Aufrufe
    BuZZyB
    Klar, mit einer Funktion die nur ausgelöst wird wenn ein bestimmter Datenpunkt durch dein Echo getriggert wird sollte der richtige Weg sein. z.B. function tolleFunktion() { setState(....); } Dann musst du einen Datenpunkt überwachen und sobald dieser durch den Echo geändert wird mit```` tolleFunktion(); Gruß
  • [Gelöst] Array Subscriptions Problem

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    843 Aufrufe
    T
    Danke sehr, ich muss das bestimmt noch 100x durchlesen, bis ich es wirklich verstanden habe, aber das hilft mir weiter.
  • Fußbodenheizung Blockly made it simple ;-)

    Verschoben
    11
    4
    0 Stimmen
    11 Beiträge
    4k Aufrufe
    WalW
    @simpixo: @Wal: Das Sollwert-Blockly habe ich getestet, funktioniert. Werde ich wahrscheinlich nutzen. Verbesserung wäre in meinem Fall, ein aktualisieren des Sollwertscript's bei Sollwertänderung. Ich nutze LaCrosse Sensoren für die Temperatur, die über MQTT eingelesen werden. Um Traffic zu vermeiden, sende ich nur bei Temperaturänderung meine Werte, deshalb kann es sein, das bei Sollwertänderung die Steuerung lange braucht um sich anzupassen, da das Script nur bei Temperaturänderung greift. Habe das so mal gelöst: Blockly.JPG ` Wie liesst du denn di Lacross Sensoren mit MQTT aus? Ich hab auch ein paar davon lese diese aber mit einem Jeelink aus Gruss Adrian ` Ich nutze einen Wemos mini mit einem RFM69 und einer 8-fach Relaisplatine für die Steuerung der Heizventile. Bei interesse kann ich einen eigenen Thread erstellen. Hardware siehe hier: https://wiki.fhem.de/wiki/LaCrosseGateway_V1.x Software habe ich zusammenkopiert: `#define PROGNAME "LaCrosse_MQTT.Gateway" #define PROGVERS "1.00" #define RFM1_SS 15 #define LED_PIN 16 #include <esp8266wifi.h> #include <pubsubclient.h> #include <eeprom.h> #include "Arduino.h" #include "SPI.h" #include "Wire.h" #include "RFMxx.h" #include "SensorBase.h" #include "LaCrosse.h" #include "HashMap.h" #define ENABLE_ACTIVITY_LED 1 // <n>a set to 0 if the blue LED bothers // address of PCF8574 IC #define PCF8574_ADDR (0x20) unsigned long INITIAL_FREQ = 868300; // <n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515) byte TOGGLE_MODE_R1 = 3; // <n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1) unsigned long DATA_RATE_R1 = 17241ul; // <n>r use one of the possible data rates (for RFM #1) uint16_t TOGGLE_INTERVAL_R1 = 0; // <n>t 0=no toggle, else interval in seconds (for RFM #1) byte spb = 0; byte tloop[50]; byte tsensor = 0; char output = 0; struct LaCrosse::Frame tframe[50]; String strTopic; String strPayload; const char* ssid = "***"; const char* wpakey = "***"; const char* mqtt_server = "***"; const char* login = "***"; const char* password = "***"; WiFiClient espClient; PubSubClient client(espClient); // --- Variables ------------------------------------------------------------------------------------------------------- String clientName; uint8_t mac[6]; unsigned long lastToggleR1 = 0; unsigned long commandData[32]; RFMxx rfm1(13, 12, 14, RFM1_SS); void SetDataRate(RFMxx *rfm, unsigned long dataRate) { if(rfm->GetDataRate() == 20000 && dataRate != 20000) { rfm->InitializeLaCrosse(); rfm->EnableReceiver(true); } rfm->SetDataRate(dataRate); } void HandleCommandI(unsigned long *commandData, byte length){ word interval = 60; if (length == 3) { interval = commandData[2]; } if (length >= 2) { RFMxx *rfm; switch (commandData[0]) { case 1: rfm = &rfm1; break; default: rfm = NULL; break; } } } // This function is for testing void HandleCommandX(byte value) { if (value == 4) { Serial.println("#1: " + (!rfm1.IsConnected() ? "---" : String(rfm1.GetDataRate()))); } } RFMxx *GetRfmForNumber(byte number) { RFMxx *result = NULL; if (number == 1) { result = &rfm1; } return result; } void HandleCommandO(byte rfmNbr, unsigned long value, unsigned long *data, byte size) { // 50305o (is 0xC481) for RFM12 or 1,4o for RFM69 RFMxx *rfm = GetRfmForNumber(rfmNbr); if (size == 1 && rfm->GetRadioType() == RFMxx::RFM12B) { rfm->SetHFParameter(value); } else if (size == 2 && rfm->GetRadioType() == RFMxx::RFM69CW) { rfm->SetHFParameter(data[0], data[1]); } } void HandleCommandV() { String result = "\n"; result += "["; result += PROGNAME; result += "."; result += PROGVERS; if (rfm1.IsConnected()) { result += " (1="; result += rfm1.GetRadioName(); result += " f:"; result += rfm1.GetFrequency(); if (rfm1.ToggleInterval) { result += " t:"; result += rfm1.ToggleInterval; result += "~"; result += rfm1.ToggleMode; } else { result += " r:"; result += rfm1.GetDataRate(); } result += ")"; } result += " {IP="; if (WiFi.status() == WL_CONNECTED) { result += WiFi.localIP().toString(); } else { result += WiFi.softAPIP().toString(); } result += "}"; result += "]"; Serial.println(result); } bool HandleReceivedData(RFMxx *rfm) { bool result = false; rfm->EnableReceiver(false); byte payload[PAYLOADSIZE]; rfm->GetPayload(payload); rfm->EnableReceiver(true); String data = ""; byte frameLength = 16; // Try LaCrosse like TX29DTH if (data.length() == 0 && LaCrosse::IsValidDataRate(rfm->GetDataRate())) { data = LaCrosse::GetFhemDataString(payload); frameLength = LaCrosse::FRAME_LENGTH; spb = 0; } if (data.length() > 0) { result = true; if (client.connected()){ switch (spb) { case 0: { byte x = 0; struct LaCrosse::Frame frame; LaCrosse::DecodeFrame(payload, &frame); for (int i = 0; i < tsensor; i++) { if (frame.ID == tloop[i]) { x = 1; if ((tframe[i].ID != frame.ID) || (tframe[i].Temperature != frame.Temperature) || (tframe[i].Humidity != frame.Humidity) || (tframe[i].WeakBatteryFlag != frame.WeakBatteryFlag) || (tframe[i].NewBatteryFlag != frame.NewBatteryFlag)) { String tID = ""; String tTemp = ""; String tHum = ""; String tsen = String(i); tID = frame.ID; tTemp = frame.Temperature; tHum = frame.Humidity; String tID0 = "/lacrosse/sensor/" + tsen + "/id/"; String tID1 = "/lacrosse/sensor/" + tsen + "/temperatur/"; String tID2 = "/lacrosse/sensor/" + tsen + "/humidity/"; String tID3 = "/lacrosse/sensor/" + tsen + "/battery/"; client.publish(tID0.c_str(), tID.c_str()); client.publish(tID1.c_str(), tTemp.c_str()); client.publish(tID2.c_str(), tHum.c_str()); if (frame.WeakBatteryFlag) { client.publish(tID3.c_str(), "Low"); } else if (frame.NewBatteryFlag) { client.publish(tID3.c_str(), "New"); } else client.publish(tID3.c_str(), "OK"); tframe[i].ID = frame.ID; tframe[i].Temperature = frame.Temperature; tframe[i].Humidity = frame.Humidity; tframe[i].WeakBatteryFlag = frame.WeakBatteryFlag; tframe[i].NewBatteryFlag = frame.NewBatteryFlag; } break; } } if (x == 0){ if (frame.NewBatteryFlag) { } else { tloop[tsensor] = frame.ID; tsensor ++; EEPROM.begin(512); EEPROM.write(tsensor, frame.ID); EEPROM.write(0, tsensor); EEPROM.commit(); Serial.println(EEPROM.read(0)); EEPROM.end(); } } } default: break; } } } return result; } void HandleDataRateToggle(RFMxx *rfm, unsigned long *lastToggle, unsigned long *dataRate) { if (rfm->ToggleInterval > 0) { // After about 50 days millis() will overflow to zero if (millis() < *lastToggle) { *lastToggle = 0; } if (millis() > *lastToggle + rfm->ToggleInterval * 1000 && rfm->ToggleMode > 0) { // Bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps HashMap <unsigned 4/long,/unsigned="">dataRates; if (rfm->ToggleMode & 1) { dataRates.Put(17241, 17241); } if (rfm->ToggleMode & 2) { dataRates.Put(9579, 9579); if (dataRates.Size() > 0) { *dataRates.GetValuePointerAt(dataRates.Size() - 2) = 9579; } } if (rfm->ToggleMode & 4) { dataRates.Put(8842, 8842); if (dataRates.Size() > 0) { *dataRates.GetValuePointerAt(dataRates.Size() - 2) = 8842; } } if (rfm->ToggleMode & 8) { dataRates.Put(20000, 20000); if (dataRates.Size() > 0) { *dataRates.GetValuePointerAt(dataRates.Size() - 2) = 20000; } } *dataRates.GetValuePointerAt(dataRates.Size() - 1) = dataRates.GetKeyAt(0); *dataRate = dataRates.Get(rfm->GetDataRate(), 0); if (*dataRate == 0) { *dataRate = 17241; } SetDataRate(rfm, *dataRate); *lastToggle = millis(); } } } void setup_wifi() { delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, wpakey); clientName += "wemos_lacrosse_"; WiFi.macAddress(mac); clientName += macToStr(mac); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } // =========================================================== // Callback Funktion von MQTT. Die Funktion wird aufgerufen // wenn ein Wert empfangen wurde. // =========================================================== void callback(char* topic, byte* payload, unsigned int length) { payload[length] = '\0'; strTopic = String((char*)topic); if (strTopic.substring(9,17) == "nathalie") { int rel = strTopic.substring(21).toInt(); String value = String((char*)payload); Serial.print(strTopic); Serial.print("="); Serial.println(value); if(value == "false") { bitSet(output, rel-1); } else { bitClear(output, rel-1); } char k = 0; // Temporere Variable fuer XOR Operation output ^= bitSet(k, rel-1); // Umschalten den gewaelten Relay mit XOR Wire.beginTransmission(PCF8574_ADDR); //Öffnen der Verbindung Wire.write(~output); // Byte Invertieren, bei "0" sind Relais an Wire.endTransmission(); // Stop-Bedingung I2C } } void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); if (client.connect((char*) clientName.c_str(), login, password)) { Serial.println("connected"); client.publish("/heizung/nathalie/rel1","false"); client.publish("/heizung/nathalie/rel2","false"); client.publish("/heizung/nathalie/rel3","false"); client.publish("/heizung/nathalie/rel4","false"); client.publish("/heizung/nathalie/rel5","false"); client.publish("/heizung/nathalie/rel6","false"); client.publish("/heizung/nathalie/rel7","false"); client.publish("/heizung/nathalie/rel8","false"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } } 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 setup(void) { Serial.begin(57600); delay(1000); Serial.println(); Serial.println("Read EEprom"); EEPROM.begin(512); // for (int i = 0; i < 5; i++) { // EEPROM.write(i, 0); // } // EEPROM.commit(); tsensor = EEPROM.read(0); Serial.println(tsensor); for (int i = 0; i < tsensor; i++) { tloop[i] = EEPROM.read(i + 1); Serial.println(tloop[i]); } EEPROM.end(); Serial.println("Read EEprom ready!"); SPI.begin(); delay(250); rfm1.Begin(); rfm1.ToggleMode = TOGGLE_MODE_R1; rfm1.ToggleInterval = TOGGLE_INTERVAL_R1; lastToggleR1 = millis(); Serial.println("Searching RFMs"); if (rfm1.IsConnected()) { rfm1.InitializeLaCrosse(); rfm1.SetFrequency(INITIAL_FREQ); SetDataRate(&rfm1, DATA_RATE_R1); rfm1.EnableReceiver(true); Serial.print("Radio #1 found: "); Serial.println(rfm1.GetRadioName()); } setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); Wire.begin(); //Initialisieren der I2C Verbindung. MUSS im Setup aufgerufen werden. Wire.beginTransmission(PCF8574_ADDR); // IC-Adresse Wire.write(~output); // Byte senden Daten werden Inveriert Wire.endTransmission(); // I2C Stopbedingung delay(1000); HandleCommandV(); Serial.println("Setup completely done"); } byte HandleDataReception() { byte receivedPackets = 0; if (rfm1.IsConnected()) { rfm1.Receive(); if (rfm1.PayloadIsReady()) { if (HandleReceivedData(&rfm1)) { receivedPackets++; } } } return receivedPackets; } void HandleDataRate() { if (rfm1.IsConnected()) { HandleDataRateToggle(&rfm1, &lastToggleR1, &DATA_RATE_R1); } } // ********************************************************************** void loop(void) { if (!client.connected()) { reconnect(); } client.loop(); // Handle the data reception // ------------------------- byte receivedPackets = HandleDataReception(); // Handle the data rate // -------------------- HandleDataRate(); }</unsigned></n></n></n></n></n></eeprom.h></pubsubclient.h></esp8266wifi.h>` ![2551_mqtt33.jpg](/assets/uploads/files/2551_mqtt33.jpg) [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  • Blockly Script für Wetteransage

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    rantanplanR
    @badplay: Geil das such ich Wie habt ihr die Ausgabe geregelt was nehmt ihr für Boxen dazu? Habe einen echo dot bald ist der echo plus da. Aber so wie ich lese kann man ihn als Bluetooth Gerät nicht so richtig nutzen am raspberry pi oder gibt es was neues? Wie macht ihr das? ` Hallo badplay Mache zu dem Thema bitte einen neuen Thread auf. Sonst kommt dieser hier völlig durcheinander. Danke. Grüße
  • Bewegungsmelder & Zeitsteuerung

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    S
    Hey…ich danke euch! Und natürlich ganz besonders pix! :D Das Skript funktioniert super. Da ich mir gesagt habe, dass ich kein Skript einbaue, welches ich nicht verstehe, bin ich inzwischen auch damit durch. Ja, schön gelöst. Euch noch einen schönen Abend!
  • [Hilfe] Blockly Script für Markise funktioniert nicht

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    M
    Hallo Rantanplan! Ja, der Baustein ist rausgerutscht :( Ich bin schon etwas weiter und arbeite mit variablen. Falls ich es nicht hinbekomme melde ich mich wieder. liebe Grüße
  • Licht Dimmer miteinander + Javascript Obkekt binden

    Verschoben
    5
    2
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    smileS
    Hmm sehr merkwürdig. Ich habe das ganze jetzt nochmal mit etwas anderem getestet, simpler Gedanke: –> Verknüpfung einer Systemvariable auf der Homematic (Beschattungsautomatik = wahr/falsch) mit einem Script in io.broker (scriptenabled = wahr/falsch) [image: 3472_beschattung_modus_kn_pfen.png] ! ```` <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="`04oM6(o%bNeVq@/#zB{" x="-537" y="-237"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="I?QRr,;BEMk~/g~9!P5#"><field name="oid">javascript.0.scriptEnabled.Beschattungen.Beschattung_Schlaf_Auto_Sonne</field></shadow></value> <statement name="STATEMENT"><block type="update" id="iIdy2c%:Q}-6p=rTU}Lu"><mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.10602</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id="~T,trarZ#uumgbZut:bb"><field name="ATTR">val</field> <field name="OID">javascript.0.scriptEnabled.Beschattungen.Beschattung_Auto_Sonne</field></block></value></block></statement> <next><block type="on_ext" id="ArbHcj(O]Ecd5KzOyxpw"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">false</field> <value name="OID0"><shadow type="field_oid" id="^LRAnfnJzKLHL4KC54dW"><field name="oid">hm-rega.0.10602</field></shadow></value> <statement name="STATEMENT"><block type="control" id="I,p%:gKl@b7c?,tCKPL3"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Beschattungen.Beschattung_Auto_Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id="Q^KMIXVJ!R{kNlZm*lz)"><field name="ATTR">val</field> <field name="OID">hm-rega.0.10602</field></block></value></block></statement></block></next></block></xml> Leider tut sich in beiden Fällen garnichts, also weder wenn auf der Homematic die Variable geändert wird, noch wenn ich in io.broker das Script manuell Starte/beende. Es kann doch eigentlich nicht so schwer / umständlich sein Zustände untereinander zu synchronisieren?
  • Blockly - Verwendung von Aufzählungen /enum.functions.verschluss zb.

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    rantanplanR
    @Holger76: Schade, dachte ich mir. Falls sich das irgendwie integrieren liese, wäre das ne gute Sache. ` Das wird wohl nie funktionieren. Ein Script ist statisch. Du kannst innerhalb eines Scripts mit enums arbeiten. Aber nicht als Trigger! Wenn Du einem enum etwas hinzufügst müsste sich das Script ja selbst umschreiben. Grüße
  • [gelöst] Benötige Hilfe beim Variable setzen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    623 Aufrufe
    H
    Danke, so habe ich es hin bekommen.
  • Unterstützung bei den ersten Skripten gesucht…

    Verschoben
    31
    0 Stimmen
    31 Beiträge
    4k Aufrufe
    H
    Guten Abend, kann man das Script```` on({id: 'hm-rpc.1.IEQ053xxxx.1.PRESS_SHORT‘}, function (obj) { setState("hm-rpc.1.IEQ038xxxx3.State",!getState("hm-rpc.1.IEQ038xxxx3.State").val); }); Egal wo ich z. B. XXX.level und den Wert einbaue, schaltet die Lampe nicht mehr sauber. :?

741

Online

32.6k

Benutzer

82.3k

Themen

1.3m

Beiträge