Skip to content

JavaScript

2.5k Topics 49.4k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

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

    2
    0 Votes
    2 Posts
    360 Views
    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 Votes
    1 Posts
    246 Views
    No one has replied
  • JSON Verarbeitung in States

    3
    0 Votes
    3 Posts
    318 Views
    Z
    @fastfoot vielen dank genau das habe ich gebraucht! perfekt! LG
  • Telegramm Menü an lezte chat id senden

    2
    0 Votes
    2 Posts
    178 Views
    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 Votes
    2 Posts
    251 Views
    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 Votes
    3 Posts
    627 Views
    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 Votes
    1 Posts
    348 Views
    No one has replied
  • Homematic Plug mit Script schalten

    20
    0 Votes
    20 Posts
    1k Views
    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 Votes
    10 Posts
    991 Views
    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 Votes
    6 Posts
    449 Views
    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 Votes
    4 Posts
    256 Views
    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 Votes
    3 Posts
    358 Views
    R
    @paul53 Super, danke hat funktioniert. Gruss Ritschi
  • Ein- Ausschalten per Script

    4
    0 Votes
    4 Posts
    341 Views
    Andre LiebgottA
    @paul53 DANKESCHÖN, du hast mir sehr geholfen. Vielen Dank!
  • Alexa Stimmerkennung

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

    javascript
    8
    0 Votes
    8 Posts
    527 Views
    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 Votes
    6 Posts
    690 Views
    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 Votes
    2 Posts
    947 Views
    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 Votes
    3 Posts
    473 Views
    R
    @UncleSam Vielen Dank, ich glaube dass mir das weiterhilft.
  • 0 Votes
    23 Posts
    1k Views
    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 Votes
    3 Posts
    388 Views
    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...

545

Online

32.9k

Users

82.9k

Topics

1.3m

Posts