Skip to content

Skripten / Logik

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

16.5k Themen 213.5k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    S
    das Wetter gehört doch zu einem anderen unternehmen, meine ich.... Also ich habe 3 Api Keys zum testen... Wenn ich einen ausgereizt habe, kann ich einfsch den zweiten nutzen und trotz gleicher IP geht's direkt weiter.....
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    haselchenH
    @Fibricus Passt Du den Threadtitel noch bitte an ( auch wenn gelöst). Mit „Denk ich falsch?“ kann kein User was anfangen .
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    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
  • Rollladen steuern mit HM-Wired 12/7-Modulen und Blockly

    Verschoben
    7
    3
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    M
    Hallo Rantanplan, aber die Ausgänge werden doch nur einmal zum Starten und Stoppen angsteuert (dazu noch jeweils der entgegengesetzte Ausgang um sicherzustellen das nicht beide Ausgänge für Hoch und Runter gleichzeitig gesetzt sind). Da dürfte doch nicht zuviel "Verkehr" zustande kommen, oder? Gruß mhimc
  • Speicherung von Temperaturen und der späteren Setzung

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    880 Aufrufe
    DutchmanD
    @Desa: Nun soll er die Temp vor dem öffnen speichern und später wieder abrufen und einspielen. mir gehts vorerst nur um das begreifen. Lg ` Da ich deinen export nicht habe mal ein beispiel mit temperatur sensor bei mir, die logic ist halt den jetzigen SOLL wert in eine variable zu schreiben welche du spaeter wieder bentzt. Wen ich das richtig verstanden haben willst du: das script starten beim ausloesen eines triggers die jetztig eigenstellte temperatur speichern einen hoeheren wert setzen nach 5 minuten die vorige temperatur wierderzuruckstellen bei control object ID halt noch die richtige werte rein, sollte ein beispiel sein mal auf die schnelle :) [image: 979_current_and_new.jpg]
  • [Frage] Schedule mit Zeit aus einem Datenpunk

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    paul53P
    @peoples: wenn ich den Datenpunkt ändern würde und den Trigger nicht nutze, würde die gänderte Zeit nie (bzw. erst nach einem Script - Neustart) gültig werden? ` Genau so ist es.
  • Frage: function array zurückgeben, bzw. request(

    Verschoben
    20
    0 Stimmen
    20 Beiträge
    5k Aufrufe
    HomoranH
    @hofi77: Kann das absolut bestätigen. Anscheinend verbieten dass ihre „therms of services“. Sowas steht zumindest in der Fehlermeldung. ` @Fehlermeldung: It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com. ` @Terms: You agree to not use the Yahoo Services to: upload, post, email, transmit, or otherwise make available any Content that is unlawful, harmful, threatening, abusive, harassing, tortious, defamatory, vulgar, obscene, libelous, invasive of another's privacy, hateful, or racially, ethnically, or otherwise objectionable; harm minors in any way; impersonate any person or entity, including, but not limited to, a Yahoo official, forum leader, guide or host, or falsely state or otherwise misrepresent your affiliation with a person or entity; forge headers or otherwise manipulate identifiers in order to disguise the origin of any Content transmitted through the Yahoo Service; upload, post, email, transmit, or otherwise make available any Content that you do not have a right to make available under any law or under contractual or fiduciary relationships (such as inside information, proprietary and confidential information learned or disclosed as part of employment relationships or under nondisclosure agreements); upload, post, email, transmit or otherwise make available any Content that infringes any patent, trademark, trade secret, copyright or other proprietary rights ("Rights") of any party; upload, post, email, transmit, or otherwise make available any unsolicited or unauthorized advertising, promotional materials, "junk mail," "spam," "chain letters," "pyramid schemes," or any other form of solicitation, except in those areas (such as shopping) that are designated for such purpose (please read our complete Spam Policy); upload, post, email, transmit, or otherwise make available any material that contains software viruses or any other computer code, files or programs designed to interrupt, destroy or limit the functionality of any computer software or hardware or telecommunications equipment; disrupt the normal flow of dialogue, cause a screen to "scroll" faster than other users of the Yahoo Services are able to type, or otherwise act in a manner that negatively affects other users' ability to engage in real time exchanges; interfere with or disrupt the Yahoo Services or servers or networks connected to the Yahoo Services, or disobey any requirements, procedures, policies or regulations of networks connected to the Yahoo Services, including using any device, software or routine to bypass our robot exclusion headers; intentionally or unintentionally violate any applicable local, state, national or international law, including, but not limited to, regulations promulgated by the U.S. Securities and Exchange Commission, any rules of any national or other securities exchange, including, without limitation, the New York Stock Exchange, the American Stock Exchange, or the NASDAQ, and any regulations having the force of law; provide material support or resources (or to conceal or disguise the nature, location, source, or ownership of material support or resources) to any organization(s) designated by the United States government as a foreign terrorist organization pursuant to section 219 of the Immigration and Nationality Act; "stalk" or otherwise harass another; and/or collect or store personal data about other users in connection with the prohibited conduct and activities set forth in paragraphs 6.1 through 6.13 above. ` Habe beim querlesen da jetzt nichts gefunden, außer dem Markierten, aber z.B. beim Kachelmannwetter steht explizit, dass ein maschinelles auslesen verboten ist. Bevor man anfängt Seiten automatisiert zu parsen sollte man auf jeden Fall zuerst die Terms lesen und noch besser den Betreiber fragen. Gruß Rainer
  • [Erledigt] Parser Adapter über Script starten

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    630 Aufrufe
    DutchmanD
    @blauholsten: Wenn ich das richtig verstehe soll der Parser Adapter ausgeschaltet werden. ` ups du hast recht, we lesen kan ist klar im vorteil :/ Loesung hier: [Gelöst] Adapter via Script ein- und ausschalten?? http://forum.iobroker.net/viewtopic.php?f=21&t=3491
  • [Gelöst] einfache Fenster-Regel

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    BuZZyB
    Homematic kann das doch von Haus aus? Direktverknüpfung zwischen Fensterkontakt und Thermostat und fertig. Oder hab ich jetzt was falsch verstanden? Gruß
  • Fehler bei Blockly Steuerung mit Max Thermostat und HM Fensterkontakt

    Verschoben
    8
    1
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    D
    Ach ja falls das jemand gebrauchen kann ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"> ! <block type="on" id="54nVi(u!k-rCcVGzSi_" x="-187" y="-213"><field name="OID">hm-rpc.0.NEQ1507086.1.STATE</field> ! <field name="CONDITION">ne</field> ! <statement name="STATEMENT"><block type="controls_if" id="{uHUNOIecL7g(GI(rZcn"><value name="IF0"><block type="logic_compare" id="I83/BHWYL}cLwq;d(uf"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="u3p~tB(pVTq0j}?vgo|y"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.NEQ1507086.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="kKX+0@=@BqTaA!eC1HUZ"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="timeouts_settimeout" id="ghaOSw1m(c|S9oV.=F"><field name="NAME">timeout</field> ! <field name="DELAY">60</field> ! <field name="UNIT">sec</field> ! <statement name="STATEMENT"><block type="get_value_async" id="B]2._fi9CKE8rG6JeC;5"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.NEQ1507086.1.STATE</field> ! <statement name="STATEMENT"><block type="control" id="K/?hrmvindvbT(3cz_t*"><mutation delay_input="false"></mutation> ! <field name="OID">fhem.1.MAX_01ae7d.desiredTemperature</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="text" id="nHE5lnBg#f7:RXW4WCr"><field name="TEXT">8</field></block></value></block></statement></block></statement></block></statement> ! <next><block type="controls_if" id=",pio.A8hyC8}pi1@pPw~"><value name="IF0"><block type="logic_compare" id=";H^q8-tV;Y?j@Fam?i|*"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="PeEj=NbKv#)bME,u{wQf"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.NEQ1507086.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="UcT7-uCQ?.F9h@ZwaI+J"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO0"><block type="timeouts_settimeout" id="AjAN=xUGj[A.Qzm6Uz-7"><field name="NAME">timeout3</field> ! <field name="DELAY">60</field> ! <field name="UNIT">sec</field> ! <statement name="STATEMENT"><block type="get_value_async" id="(}JndRvkM41zx.p46w8("><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.NEQ1507086.1.STATE</field> ! <statement name="STATEMENT"><block type="control" id="Y%8RgfhgPt)nO*75A0ko"><mutation delay_input="false"></mutation> ! <field name="OID">fhem.1.MAX_01ae7d.desiredTemperature</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="text" id="8!]k?AZX1!xYk,V39eW|"><field name="TEXT">30</field></block></value> ! <next><block type="timeouts_settimeout" id="[|m=8P!EeLZMb-pU{S?"><field name="NAME">timeout2</field> ! <field name="DELAY">5</field> ! <field name="UNIT">min</field> ! <statement name="STATEMENT"><block type="control" id="h|1E^E`Lk9R[7}UJ+0#/"><mutation delay_input="false"></mutation> ! <field name="OID">fhem.1.MAX_01ae7d.desiredTemperature</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="text" id="]~RRKGjtTL.tH01-my[1"><field name="TEXT">20</field></block></value></block></statement></block></next></block></statement></block></statement></block></statement></block></next></block></statement></block></xml> 1812_unbenannt.jpg
  • Hilfsvariable Ansage des Tages über Sayit - das geht bestimmt schöner

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    385 Aufrufe
    MatzebhvM
    Moin Steffen, das sieht doch schon viel geschmeidiger aus, Danke! :D Gruß Matze
  • Scripte in Objekte-Allgemein

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    H
    Hallo Thomas, habe heute deine Antwort leider erst heute gelesen. Toll mit den Einstellungen. Nochmals Danke. Werde ich gleich versuchen. Highvoltage
  • IoBroker Reiter Zustände

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    493 Aufrufe
    H
    Bisher noch nicht, hilft aber weiter! Danke! :D
  • Abwesenheitssimulation??

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    692 Aufrufe
    lobomauL
    @Blackeye: Verdammt…. Dann werde ich mal richtig suchen..... Ergebnis bleibt aber, finde nicht das was ich suche. Dann mal am Rechner in Ruhe schauen. Gesendet von iPhone mit Tapatalk Pro ` http://forum.iobroker.net/viewtopic.php … ion#p16883 Version 0.80 läuft bei mir.
  • Datenpunkt wird nicht richtig geschrieben [blockly]

    Verschoben
    9
    2
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    F
    Habe den Zeitplan jetzt rausgezogen und gebe die Werte beim runterzählen mehrfach aus. Was mich dieses Mal irritiert ist, dass der 'Value-Count-Down 2' nicht sofort den Wert der Hilfsvariablen 'value' annimmt. Erst beim nächsten zyklischen Aufruf des Trigger scheint der Wert tatsächlich gesetzt zu sein. Woher kommt die Zeitdifferenz? 3978_skript3.png
  • Alarmanlagen Script

    Verschoben
    21
    0 Stimmen
    21 Beiträge
    5k Aufrufe
    J
    Super, so funktioniert das wie ich es wollte. Danke.
  • Blockly mit Verzoegerung/timeout funktioniert nicht wie gewuenscht

    Verschoben
    19
    1
    0 Stimmen
    19 Beiträge
    4k Aufrufe
    N
    Also ich konnte endlich mal wieder einen Moment etwas ausprobieren. Bei "meiner" Version bin ich schon weitergekommen, und es laeuft auch soweit. Sogar mit Blockly. Bei Blockly ist erstmal die Falle, dass, wenn man beim Timeout was anderes als ms nimmt es wohl umgerechnet wird. halfway sekunden ist dann halfway*1000 und das ergibt natuerlich nichts sinnvolles. Ich habe das Ganze jetzt mal etwas eingekuerzt und mit Sekunden gerechnet, die dann in Millisekunden umgerechnet werden. Dafuer habe ich die Sekunden geteilt 0,002 genommen um die Haelfte der Zeit zu haben und dann mal 1000. Das ganze spuckt Blockly als Code so aus: var halfway, timeout; schedule({astro: "sunset", shift: 30}, function () { // Durch 0.002 ist durch 2 und mal 1.000 (um von sec auf ms) zusammen. Da mal 1.000 sollte runden nicht noetig sein. halfway = (86400 - (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds())) / 0.002; sendTo("telegram", "send", { text: (String('Sunset +30min, halfway: ') + String(halfway)) }); timeout = setTimeout(function () { sendTo("telegram", "send", { text: (String('timeout halfway, halfway: ') + String(halfway)) }); }, halfway); }); Da fehlt jetzt natuerlich das Schalten der Lampen usw. drin, ist einfach mit Telegramnachricht zum ausprobieren. Falls es wer brauchen kann, hier noch der Blocklyexport: ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"> ! <block type="astro" id="BDVm]m*]u8-9oS)YUzG}" x="-537" y="-337"><field name="TYPE">sunset</field> ! <field name="OFFSET">30</field> ! <statement name="STATEMENT"><block type="comment" id="P5Uk#qMCyE;AdRJGj|*"><field name="COMMENT">Durch 0.002 ist durch 2 und mal 1.000 (um von sec auf ms) zusammen. Da mal 1.000 sollte runden nicht noetig sein.</field> ! <next><block type="variables_set" id="6OoB{/SD;)^:PY]nnA_F"><field name="VAR">halfway</field> ! <value name="VALUE"><block type="math_arithmetic" id="V0@[w^.eJVrK?TF1f=qv"><field name="OP">DIVIDE</field> ! <value name="A"><shadow type="math_number" id="+S^QA7_Uj3?K[!1!9DPG"><field name="NUM">1</field></shadow> ! <block type="math_arithmetic" id=")QFb}^[cv.j3Ke=m+cV-"><field name="OP">MINUS</field> ! <value name="A"><shadow type="math_number" id=")vzB58fidSav(D[NfhsD"><field name="NUM">86400</field></shadow></value> ! <value name="B"><shadow type="math_number" id="_^6ua_]lB)_LXm9u6r=w"><field name="NUM">1</field></shadow> ! <block type="time_get" id="_tAL4t8RK5I_r(f,uX^!"><mutation format="false" language="false"></mutation> ! <field name="OPTION">sid</field></block></value></block></value> ! <value name="B"><shadow type="math_number" id="W~c@m930b}~f;rMZGT!"><field name="NUM">0.002</field></shadow></value></block></value> ! <next><block type="telegram" id=";iOWfxo*jmH{A528@mV"><value name="MESSAGE"><shadow type="text" id="|yr}sZ_S1{NX*e^jX{fY"><field name="TEXT">Sonnenuntergang +30 Minuten</field></shadow> ! <block type="text_join" id="59}{V3Vo@HSYUk+oBm9"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="SlQZrOB*A(?G;|lx1Nx"><field name="TEXT">Sunset +30min, halfway:</field></block></value> ! <value name="ADD1"><block type="variables_get" id="oNTXhHkdRffL5EjB}z=p"><field name="VAR">halfway</field></block></value></block></value> ! <next><block type="timeouts_settimeout" id="UI{;!tz0.iwt;|6=i{^"><field name="NAME">timeout</field> ! <field name="DELAY">halfway</field> ! <field name="UNIT">ms</field> ! <statement name="STATEMENT"><block type="telegram" id="5DsYk[f%Y.z3P^uiSNfJ"><value name="MESSAGE"><shadow type="text" id="M=8ooc_#wpms1QR_*2NT"><field name="TEXT">Timeout halfway</field></shadow> ! <block type="text_join" id="%ybFeSdb_!Ul(j-~qJX7"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="eSu[Oj=d|2Z.zRYM|MDY"><field name="TEXT">timeout halfway, halfway:</field></block></value> ! <value name="ADD1"><block type="variables_get" id="Q?TJ/grVnlAiIlB3Y]aa"><field name="VAR">halfway</field></block></value></block></value></block></statement></block></next></block></next></block></next></block></statement></block> ! <block type="schedule" id="ZP7LZ,z0gDB-@[8zj+Z" x="-537" y="213"><field name="SCHEDULE">0 0 * * *</field> ! <statement name="STATEMENT"><block type="telegram" id="7r{9y2;T!f={^ZWjhRW0"><value name="MESSAGE"><shadow type="text" id="B-Jg1Lzf/-Y~iu-LE/,"><field name="TEXT">Mitternacht Lampen aus</field></shadow></value></block></statement></block></xml> Jetzt muss ich noch mit der Variante im anderen Thread beschaeftigen, damit laeuft es noch nicht, aber ich bin mir noch nicht sicher ob es einfach ein PEBKAC ist. 3803_firefox_2017-11-08_14-58-17.png
  • Exec Befehl für sekundär host

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    arteckA
    @Dutchman: Lol, meine Post gesehen? Ich lese das nur ner JavaScript Instanz auf dem Slave…. (Vielleicht auch zu einfach [emoji13]) –----------------------- Send from mobile device ` jo hab ich.. geht :P
  • [SOLVED][Blockly] Schalten wenn einer der datenpunkte geschaltet wird

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    DutchmanD
    @rantanplan: Dutchman and Rantanplan the double trouble team :lol: :lol: :lol: ` offtopic so war :lol: :lol: :lol: ontopic
  • Node-RED Werte aus M-Bus XML Datei auslesen

    Verschoben
    3
    4
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    G
    Hallo Markus, vielen Dank für deine Rückmeldung. Genauso ist es, dass habe ich gestern Abend auch noch herausgefunden. Mein Gefühl, es muss doch einfacher gehen, hatte mich also nicht getäuscht. Kopiert man den path Inhalt so sieht dieser wie folgt aus: payload.MBusData.DataRecord[2].Value[0] Um den Wert in der Array nun weiter verarbeiten zu können, hätte ich dem kopierten Inhalt also nur noch das msg. vorsetzen müssen. Bitte nicht wundern, ich bin inzwischen wieder zum realen Projekt zurückgekehrt, deshalb sieht der Inhalt des JSON Objekt bei mir jetzt ein wenig anders aus. Ziel meines Projektes ist es, aus einem Meter Bus die Daten der angeschlossenen Feldgeräten, wie Energie- und Wärmezähler, auf Anforderung auslesen zu können. Diese dann in ein Modbusregister zu schreiben und durch einen zentralen Regler auszulesen. Das Auslesen der an den Meter Bus angeschlossenen Geräte und das Schreiben des xml-Datenfiles erfolgt mit Hilfe der libmbus libary von rscada auf einem RaspberryPi3. Es freut mich sehr, dass ich hier jemanden gefunden habe, der sich offensichtlich in Node-Red gut auskennt. :D Danke nochmals für deine Hilfe. Gruß Garf
  • Problem mit getEnums()

    Verschoben javascript
    12
    1
    0 Stimmen
    12 Beiträge
    3k Aufrufe
    Jey CeeJ
    Hab das Problem gefunden die enum hatte einfach einen falschen Namen.
  • Blockly-Anfänger braucht einen Tip

    Verschoben
    16
    1
    0 Stimmen
    16 Beiträge
    2k Aufrufe
    I
    aahhhh….. das hat jetzt geklappt, dann werden wir mal sehen. Danke und Grüße Ingo
  • Schalter anlegen und Wert setzten

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    AlCalzoneA
    So direkt geht das meines Wissens nach nicht. Für Adapter gibts addStateToEnum, im JS-Adapter existiert sowas nicht. Edit: bei aktiviertem setObject könnte das funktionieren (ungetestet, Benutzung auf eigene Gefahr!) var newStateId = "..."; // die ID deines neuen States var enumName = "enum.rooms.Wohnzimmer"; // die ID der Enum var enum = getObject(enumName); if (enum) { var pos = enum.common.members.indexOf(newStateId); if (pos === -1) { enum.common.members.push(newStateId); enum.from = "system.adapter." + namespace; enum.ts = new Date().getTime(); setObject(enumName, enum); } } else { // hat nicht funktioniert... } Das setzt voraus, dass die Enum für den Raum schon existiert.

696

Online

32.6k

Benutzer

82.3k

Themen

1.3m

Beiträge