Weiter zum Inhalt

JavaScript

2.5k Themen 49.4k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • zwei gleiche skripte, nur eines funktioniert....

    2
    0 Stimmen
    2 Beiträge
    360 Aufrufe
    R
    @Ritschi ich habe es raus gefunden. Ich hatte bei "modbus.2.holdingRegisters.48196_power_total" nach dem total einen leerschlag drin......
  • Timeout mit Objekt verbinden

    javascript
    1
    0 Stimmen
    1 Beiträge
    246 Aufrufe
    Niemand hat geantwortet
  • JSON Verarbeitung in States

    3
    0 Stimmen
    3 Beiträge
    318 Aufrufe
    Z
    @fastfoot vielen dank genau das habe ich gebraucht! perfekt! LG
  • Telegramm Menü an lezte chat id senden

    2
    0 Stimmen
    2 Beiträge
    178 Aufrufe
    dslraserD
    @Christopher-Hinck Ist zwar kein JS, sondern Blockly, aber vielleicht kannst Du Dir da etwas abschauen. Das macht genau was Du möchtest. Jeder Nutzer kann sogar sein eigenes Menü haben. https://forum.iobroker.net/post/251463
  • Aktoren in Abhängigkeit per Tastendruck schalten

    2
    0 Stimmen
    2 Beiträge
    251 Aufrufe
    paul53P
    @funcarv3r sagte: Was nicht funktioniert ist das ausschalten if(Bedingung1) Ein else if(Bedingung1 && Bedingung2) Aus kann nicht funktionieren, denn else bedeutet: Nicht Bedingung1 Versuche es mal so: if (WBPrivat) { setState("hm-rpc.1.MEQ1710797.2.STATE", false); } else if (!WBFirma) { setState("hm-rpc.1.MEQ1710797.2.STATE", true); }
  • Mit js an internen MQTT broker publishen

    javascript
    3
    0 Stimmen
    3 Beiträge
    627 Aufrufe
    T
    Danke für die Antwort, ich hatte schon vermutet, dass es derzeit keinen einfachen Weg als Einzeiler gibt. Hätte halt gerne einfach nur den Wert gepublished. Ich werde versuchen mir einen Workaround zu basteln.
  • Paradigma Modula NT über Iobroker steuern

    1
    0 Stimmen
    1 Beiträge
    348 Aufrufe
    Niemand hat geantwortet
  • Homematic Plug mit Script schalten

    20
    0 Stimmen
    20 Beiträge
    1k Aufrufe
    G
    @Homoran hab es mittlerweile angepasst, aber Danke Einer ist immer der Schuldige aber zum Glück gibt es euch ja
  • Javascript RegExp ???

    10
    0 Stimmen
    10 Beiträge
    991 Aufrufe
    F
    @Homoran sagte in Javascript RegExp ???: da habe ich das regex her du hattest auch kein Anführungszeichen in deinem Post :-)
  • (gelöst) mehrere DP toggeln

    javascript
    6
    0 Stimmen
    6 Beiträge
    449 Aufrufe
    paul53P
    @ice987 sagte: Wenn nein dann "setState vom jeweiligen Element auf "false" sonst "true". Richtig: Wenn nein dann "setState vom jeweiligen Element auf "false", der auslösende Datenpunkt bleibt "true" (wird nicht verändert). Ansonsten alles richtig interpretiert.
  • Array "undefined" und obj.deviceID "null" bei Trigger

    4
    0 Stimmen
    4 Beiträge
    256 Aufrufe
    PhlixxP
    @paul53 Darauf muss man mal kommen. Dann kann das Array zur Laufzeit ja weg ;-) Danke Dir, Paul! Gruß Phlixx Falls jemand auf der Suche vorbei schaut, einfach das Array mit den DeviceIDs der eigenen Geräte füllen. Rest sollte dank @paul53 jetzt so gehen ... var thermostate = new Array('maxcul.0.JMD300xxxx','maxcul.0.MEQ145xxxx','maxcul.0.MEQ145xxxx','maxcul.0.JMD301xxxx'); //Array mit den DeviceIDs der eigenen Geräte füllen for (var i = 0;i <thermostate.length;i++) { createState(thermostate[i]+'.countdown', 0); // falls noch nicht existent createState(thermostate[i]+'.afterCount', false); on(thermostate[i]+'.mode', function (obj) { //je DeviceID einen Listener registrieren // geht nur mit obj.channelId, nicht obj.deviceId if (obj.newState.val === 3) { setState(obj.channelId+'.countdown', 300); count(obj.channelId); } }); } function count(thermostat) { // mit diesem Sekundentimer (setTimeOut(...,1000) bin ich nicht glücklich, im Frontent sieht es unruhig aus, da die Updates nicht sekündlich kommen... ggs. als Minuten darstellen... setTimeout(function () { var timer = getState(thermostat+'.countdown').val; if (timer > 1) { setState(thermostat+'.countdown', timer - 1); count(thermostat); } else { setState(thermostat+'.countdown', 0); setState(thermostat+'.afterCount', true); } }, 1000); }
  • Variable :100 teilen

    3
    0 Stimmen
    3 Beiträge
    358 Aufrufe
    R
    @paul53 Super, danke hat funktioniert. Gruss Ritschi
  • Ein- Ausschalten per Script

    4
    0 Stimmen
    4 Beiträge
    341 Aufrufe
    Andre LiebgottA
    @paul53 DANKESCHÖN, du hast mir sehr geholfen. Vielen Dank!
  • Alexa Stimmerkennung

    Verschoben javascript blockly security multimedia communication
    11
    0 Stimmen
    11 Beiträge
    920 Aufrufe
    D
    @zzippo danke, schau ich mir mal an. Ja so eine Anleitung wäre super.
  • (gelöst) HTML DOM scrollTop Property

    javascript
    8
    0 Stimmen
    8 Beiträge
    527 Aufrufe
    OliverIOO
    @ice987 sagte in HTML DOM scrollTop Property: im basic HMTL-Widget brauche ich in kein vollständiges "HTML-Gerüst", d.h. ich kann "<!DOCTYPE html><html><head></head></html>" weglassen ja genau, du hast ja bereits ein html/head/body-konstrukt, das dir bereits vis bereitstellt. vis fügt dir das widget in die vorhandene seite an entsprechender stelle ein. ich habe nochmal ein paar änderungen vorgenommen, da das td-test-element in einer tabelle so keine klicks empfangen kann. daher ein separater button, der eine funktion aufruft, wo zum einen der dp gesetzt wird und zum anderen dir direkt anzeigt ob es funktioniert. bei mir hat es soweit funktioniert. Spoiler [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"<!-- myDIV definiert einen Bereich mit angegebener Höhe/Breite; overflow-y auto zeigt den Scrollbalken an, wenn Inhalt grösser als Bereich, overflow-y hidden verbietet die Anzeige eines Scrollbalken -->\n<style>\n#myDIV {\n height: 597px;\n width: 375px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n</style>\n\n<!-- definition einer Variablen mit dem Namen counter, welche den (initial) Wert 0 zugewiesen wird\n myFunction(): Funktion wird definiert\n counter+=1: (oder: counter = counter + 1) In der Variable \"counter\" werden die Anzahl der Aufrufe von myFunction() gezählt: dem bereits bestehenden Wert wird Zähler 1 addiert\n var elmnt: document.getElementById(\"myDIV\"): der Variable mit Namen \"elmt\" wird die Referenz zu \"myDIV\" zugewiesen\n var y = elmnt.scrollTop: der Variable mit dem Namen \"y\" zählt die Pixel vom oberen Elementrand\n document.getElementById (\"demo\").innerHTML: dem oben definierten Abschnitt <p></p> mit id=demo wird gefüllt mit dem Text \"Vertically: \" dem Pixelwert aus Variable \"y\" dem Text \"px; counter= \" und dem Wert der Aufrufe von Variable \"counter\"\n -->\n <script>\n var counter = 0;\n \n function myFunction() {\n counter+=1;\n var elmnt = document.getElementById(\"myDIV\");\n var y = elmnt.scrollTop;\n document.getElementById (\"demo\").innerHTML = \"Vertically: \" + y + \"px; counter= \"+counter;\n }\n</script>\n\n\n\n<!-- myFunction1(): Funktion wird definiert\n var elmnt: document.getElementById(\"myDIV\"): der Variable mit Namen \"elmt\" wird die Referenz zu \"myDIV\" zugewiesen\n elmnt.scrollTop = 200: der vorhin definierten Variable elmnt, welche auf das div mit id=\"myDIV\" verweist wird der Befehl erteilt, vom oberen Elementrand 200px nach unten zu scrollen\n-->\n<script>\nfunction myFunction1() {\n var elmnt = document.getElementById(\"myDIV\");\n elmnt.scrollTop = 200;\n}\n</script>\n\n<script>\nfunction myFunction2() {\n var elmnt1 = document.getElementById(\"myDIV\");\n var y1 = elmnt1.scrollTop;\n return y1; \n}\nfunction myFunction3() {\nservConn.setState('0_userdata.0.liste.scrollPos', myFunction2())\n document.getElementById (\"demo\").innerHTML = \"Click\";\n}\n</script>\n\n<!-- definition eines Paragraphen mit dem Namen \"demo\" -->\n<p id=\"demo\">.</p>\n<button onclick=\"myFunction3()\">scrollpos</button><br>\n<!-- button onclick: löst die Funktion myFunction1() beim Draufklicken aus -->\n<button onclick=\"myFunction1()\">Scroll contents of div</button><br>\n<!-- defintion des Abschnittes mit dem Namen \"myDiv\", beim jeweiligen scrollen dieses Bereiches wird immer die Funktion \"myFunction()\" ausgelöst -->\n<div id=\"myDIV\" onscroll=\"myFunction()\">\n <table>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n <tr>\n <td>\n blabla\n <br><br><br><br>\n </td>\n </tr>\n</table>\n</div>"},"style":{"left":"0px","top":"44px","width":"375px","height":"597px","overflow-x":"hidden","overflow-y":"hidden"},"widgetSet":"basic"}]
  • Schedule per Tastendruck starten und stoppen

    6
    0 Stimmen
    6 Beiträge
    690 Aufrufe
    F
    @paul53 Super, danke dir, funktioniert. Ich hab die Befehle noch etwas erweitert, er setzt mir beim Starten jetzt auch noch eine nVariable auf true, beim Beenden auf False, so kann ich alles besser überwachen ...
  • [Vorlage] Alias-Erstellung: enum-alias-devices

    2
    3
    0 Stimmen
    2 Beiträge
    947 Aufrufe
    KodijackK
    @cpio Erstmal danke fürs Teilen, sehr nett! Mir fehlte irgendwie eine Funktion das Ganze etwas zu vereinfachen/automatisieren. Leider will das Script nicht so recht bei mir obwohl ich meine deiner Anleitung brav gefolgt zu sein. [image: 1603144377590-665ce41e-ca2e-43d1-950b-4d65566c2357-image.png] Enum "aliasdevices" ist vorhanden, testweise einen Raum mit 3 Lichtern/Schaltern hinzugefügt.
  • OnChange weiter einschränken (Ursprung)

    3
    0 Stimmen
    3 Beiträge
    473 Aufrufe
    R
    @UncleSam Vielen Dank, ich glaube dass mir das weiterhilft.
  • Script Tester - prüfe alle subscription-dp in allen scripten

    javascript monitoring
    23
    3
    0 Stimmen
    23 Beiträge
    1k Aufrufe
    liv-in-skyL
    @wendy2702 zeile 7: mein script hat einen fehlerfehler zeile 9 und 10 überprüfen - sind laufende scripte und habe evtl den eben erklärten fehler andere zeilen: scripte haben evtl diesen fehler, sind aber nicht aktiv und daher nicht so wichtig zu überprüfen wäre nur: zeile 9 und 10 ist in dem script von zeile 9 und 10 alles ok - kann dir das script im moment nicht helfen
  • Synchrone Datenübertragung RS232 - Hilfe...

    3
    0 Stimmen
    3 Beiträge
    388 Aufrufe
    S
    @UncleSam Erstmal danke - Da ich mich hier als absoluter Programmier-Anfänger outen muss: Hast Du einen Beispielcode oder kannst Du mir anhand meines Scriptes erklären was ich da wo ändern muss? Danke schon mal...

400

Online

32.9k

Benutzer

82.9k

Themen

1.3m

Beiträge