Skip to content

Skripten / Logik

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

16.5k Topics 213.3k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    GarganoG
    @stephan61 Hi Stephan, Ich bin auch weg von Tibber zu Octopus. Der Pulse geht nach wie vor. Ich habe aber den lokal eingestellt und lese den über den Adapter lokal aus. Gruß
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    paul53P
    @Duffy sagte: im Arbeitszimmer sitze und das Licht eingeschaltet habe Das Licht soll bei manuellem Einschalten nicht durch das Skript geschaltet werden? Dann muss man "manuelles Einschalten" detektieren und auswerten: [image: 1770196363634-blockly_temp.jpg]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • Vergleich Innen- zu Außentemperatur

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    B
    Hallo Paul, danke für dein Skript. Funktioniert sehr gut, vor allem die Idee mit der Hysterese gefällt mir :!: Gruß Martin
  • Dialogfenster mit Pinabfrage möglich?

    Moved
    2
    0 Votes
    2 Posts
    612 Views
    rantanplanR
    Hallo deifel Ich habe dafür eine extra View für die Pin-Buttons. Zum Aufruf der View benutze ich "jqui - container html". Das habe ich über ein Metro Widget gelegt. Ein Beispiel für PIN-Code-Eingabe gibt's hier. http://forum.iobroker.net/viewtopic.php … pin#p47264 Grüße
  • Zeitsteuerung geht nicht

    Moved
    12
    0 Votes
    12 Posts
    2k Views
    blauholstenB
    @paul53: @blauholsten: aber ich glaube hier hast du dich vermacht, oder? ` Das glaube ich nicht. @blauholsten: Ich hatte ja heute morgen schon geschrieben, das getState der variablen in der Zeitschaltung() nochmal per getState().val abgefragt werden müssen. ` Das müssen sie nicht, wenn die globalen Skriptvariablen (aktor, temp) bei jeder Wertänderung des zugehörigen Datenpunktes aktualisiert werden. Deine Version funktioniert ebenfalls, belastet aber die CPU stärker, da jede Minute 2 getState(id)-Operationen ausgeführt werden. ` Als ich den Rechner aus gemacht habe, ist mir deine Logik auch klar geworden….. :shock:
  • Fenster offen Script, Drehgriffkontakte einbinden

    Moved
    6
    0 Votes
    6 Posts
    2k Views
    P
    Hallo Frank, dieser Thread ist gelöst. Bitte öffne einen neuen Thread mit deinem Anliegen. Allerdings mache ich mir wenig Hoffnung, dass dir ohne Dokumentation geholfen werden kann. Denn hier können wir nur ergänzende Hilfe zu den Dokus geben. Wenn dir die Doku, nicht ausreicht, mache einen Thread auf "Frage zur Doku: THEMA". Trotzdem Doku-Links: Einsteiger: http://www.iobroker.net/docu/?page_id=6317&lang=de Einführung Programmieren mit Javascript http://www.iobroker.net/docu/?page_id=2786&lang=de Adapter JavaScript Script http://www.iobroker.net/docu/?page_id=6818&lang=de Gruß Pix
  • Blockly - Nach Installation fehlt der Scripts-Reiter

    Moved
    3
    0 Votes
    3 Posts
    966 Views
    D
    Hallo Rainer, ach Du SCH*** :lol: Stundenlang gesucht… Und dann sowas... Ich danke Dir vielmals! So einfach sollte das immer sein... Sorry für den unnötigen Thread - aber wer weiß, vielleicht hat irgendwann jemand selbiges Problem. LG
  • Funktion zum umrechnen

    Moved
    8
    0 Votes
    8 Posts
    2k Views
    M
    Eigentlich will ich das Ergebnis in einem Adapter weiter verwenden , weil dieser leider genau den umgekehrten Wert erwartet wie er geliefert bekommt. Er sagt das Fenster ist auf obwohl es zu ist. Weil in meinem Fall der Wert 0% aus dem Aktor kommt das heisst offen und HomeKit bei 0% denkt es wäre zu. Gesendet von iPhone mit Tapatalk
  • [Frage] Wie den Counter unterbrechen

    Moved
    2
    0 Votes
    2 Posts
    494 Views
    paul53P
    @peoples: Ich möchte durch einen "Off-Button" das ganze stoppen und meinen Counter anhalten und auf 0 setzen. ` Das erste Skript (Zeitvorwahl) in http://forum.iobroker.net/viewtopic.php?f=21&t=5067&start=20#p77980 zeigt, wie es geht.
  • [gelöst]Zeitschaltung Bewässerung

    Moved
    33
    1
    0 Votes
    33 Posts
    7k Views
    S
    Also meine Seite sieht jetzt so aus. [image: 1653_vorgarten.jpg] Das ist das Widget für die Restlaufzeit: [{"tpl":"tplHqCircle","data":{"visibility-cond":">","visibility-val":"0","oid":"javascript.0.Countdown.countdown","min":"0","max":"{javascript.0.Countdown.countdown}","step":"1","displayPrevious":true,"readOnly":true,"unit":"","visibility-oid":"","name":"Countdown","caption":"Restzeit min.","hideNumber":false,"color":"#ffffff","thickness":"0.15","cursor":"","bgcolor":"#f00f36","linecap":true,"anticlockwise":false,"oid-working":"javascript.0.Countdown.countdown","oid-signal":"","angleArc":"360","angleOffset":"0","comment":"","digits":"0","is_comma":"true","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,"visibility-groups-action":"hide","gestures-offsetY":"-6","descriptionLeft":"countdown"},"style":{"left":"963px","top":"117px","width":"200px","height":"200px","z-index":"77","text-align":"center","color":"#e7f5f9","font-family":"","font-style":"","font-weight":"","font-size":"","background-color":"rgba(0,140,200,1)","border-radius":"490px"},"widgetSet":"hqwidgets"}] Das Script für die Zeitvorwahl: // Countdown Brunnen // http://forum.iobroker.net/viewtopic.php?f=21&t=5067 var count,timer; function countdown(){ count--; if(count > 0) setState('javascript.0.Countdown.countdown', count); else { setState('javascript.0.Countdown.countTrigger', false ); } } on({id: "javascript.0.Countdown.countTrigger", change: "ne"}, function(obj){ if(obj.state.val) { count = getState('javascript.0.Countdown.Zeitvorgabe').val; // in Minuten setState('javascript.0.Countdown.countdown', count); timer = setInterval(countdown, 60000); // 1000 = 1 Sek. ; 60000 = 60 Sek. } else { clearInterval(timer); setState('javascript.0.Countdown.countdown', 0 ); } }); Das Widget dazu: [{"tpl":"tplJquiRadioList","data":{"oid":"javascript.0.Countdown.Zeitvorgabe","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"0;10;15;30;45;60;120","texts":"0;10;15;30;45;60;120","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},"style":{"left":"611px","top":"345px","width":"385px","height":"40px","background":"","background-color":""},"widgetSet":"jqui"}] Das Widget für z.Bsp. Kreis1: [{"tpl":"tplHqButton","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"oid":"javascript.0.AnAus","min":"0","max":"1","iconName":"/icons-icons8/objects/white/Watering Can.png","btIconWidth":"97","offsetAuto":"true","leftOffset":"15","topOffset":"55","timeAsInterval":false,"infoLeftFontSize":"20","infoFontRightSize":"12","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,"oid-working":"javascript.0.AnAus","oid-battery":"","iconOn":"/icons-icons8/objects/white/Watering Can Filled.png","styleActive":"hq-button-green-active","styleNormal":"hq-button-red-active","usejQueryStyle":false,"descriptionLeft":"Kreis1","infoColor":"white","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","infoLeftPaddingLeft":"15","infoLeftPaddingRight":"50","infoRightPaddingRight":"15","infoBackground":"red"},"style":{"left":"676px","top":"429px","width":"107px","height":"108px"},"widgetSet":"hqwidgets"}] Das Script für Kreis1: // Pumpe: Ausschalten nach x Minuten // http://forum.iobroker.net/viewtopic.php?f=21&t=5067 function weiter() { var Zeitvorgabe = getState('javascript.0.Countdown.Zeitvorgabe').val ; // Zeit auswählen //############################################################# // Bewässerung zunächst ausschalten beim erstmaligen Skriptstart // um im Falle eines Reboots den zuvor laufenden Bewässerungstimer auszuschalten (Not-Aus), // da er nach Reboot den zuvor gesetzten Ausschalttrigger nicht mehr ausführen kann setState("hm-rpc.0.NEQ1316670.1.STATE", false); setState("hm-rpc.0.NEQ1316670.4.STATE", false); //############################################################# log (Zeitvorgabe); if (Zeitvorgabe === 0 || Zeitvorgabe === isNaN) Zeitvorgabe = 30; setStateDelayed("hm-rpc.0.NEQ1316670.1.STATE", true); // Kreis 1 Ventil einschalten setStateDelayed("hm-rpc.0.NEQ1316670.4.STATE", true, 1000); // nach 1 Sek. Pumpe ein setState("hm-rpc.0.NEQ1316670.1.ON_TIME", Zeitvorgabe); // OnTime setzen // Countdown starten für Anzeige der Zeit auf View setState('javascript.0.Countdown.countTrigger', true); // Countdown Brunnen starten setStateDelayed("javascript.0.AnAus", 0, (Zeitvorgabe*60*1000)); // nach x Min. ausschalten -> Pumpe setStateDelayed("hm-rpc.0.NEQ1316670.2.STATE", false); // Ventil 2 auf false setzen setStateDelayed("hm-rpc.0.NEQ1316670.3.STATE", false); // Ventil 3 auf false setzen //sendTo('telegram', "Brunnen eingeschaltet. \nNach " + (Zeitvorgabe*60*1000) + " Minuten wird er wieder automatisch ausgeschaltet."); //log ("Brunnen eingeschaltet. Nach " + (Zeitvorgabe*60*1000) + " Minuten wird er wieder automatisch ausgeschaltet."); } function weiter2() { setState("hm-rpc.0.NEQ1316670.1.STATE", false); // Brunnen Ventil aus setState("hm-rpc.0.NEQ1316670.4.STATE", false); // Brunnen Pumpe aus //sendTo('telegram', "Brunnen ausgeschaltet."); //log ("Brunnen ausgeschaltet."); setState('javascript.0.Countdown.countTrigger', false); // Countdown Pumpe aus setState('javascript.0.Countdown.Zeitvorgabe', 0); // Zeitvorwahl auf Null setzen setState('javascript.0.Countdown.countdown', 0); // Countdown auf Null setzen setState("hm-rpc.0.NEQ1316670.1.ON_TIME", 0); // OnTime auf Null } on({id: "javascript.0.AnAus", change: "ne", val: 1}, function() { // Bewaesserung Kreis1 einschalten //log("Auslöser Schalter - Cux: Brunnen ein"); weiter(); event("Gartenpumpe Kreis1 läuft"); // in eventlist schreiben // Sprachausgabe nachricht = 'Kreis eins ist eingeschalten ' setState("sayit.2.tts.text"/*Text to speech*/, nachricht); // Sprachausgabe Kreis 1 ein }); on({id: "javascript.0.AnAus", change: "ne", val: 0}, function() { // Bewaesserung Kreis1 ausschalten weiter2(); event("Gartenpumpe Kreis1 aus"); // Sprachausgabe nachricht = 'Kreis eins ist ausgeschalten ' setState("sayit.2.tts.text"/*Text to speech*/, nachricht); // Sprachausgabe Kreis 1 aus }); Dazu unter Objekte/Javascript.0 eine Variable anlegen: [image: 1653_variable_anlegen.jpg] Das Widget für Kreis 1 muss dann auf javascript.0.AnAus verweisen. Gruss
  • [Frage] Blockly Blöcke Position festlegen

    Moved
    1
    0 Votes
    1 Posts
    394 Views
    No one has replied
  • On-Funktion: Brauche Hilfe

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    S
    @paul23: Danke für die Korrektur. Sehe jetzt etwas klarer. Gruß Strizz
  • [gelöst] Raum abfragen

    Moved
    6
    0 Votes
    6 Posts
    2k Views
    M
    Danke paul53, das hat geholfen bzw. das habe ich gesucht!!
  • Werte umkehren?

    Moved
    5
    0 Votes
    5 Posts
    2k Views
    C
    Wie hast du den SmartName erstellt denn ich kann dort nichts eintragen wenn ich etwas hinzufügen will und dann eben den Befehl dort eintrag sieht das irgendwie anders aus. MFG Maggi
  • Hilfe Feueralarm Skript

    Moved
    4
    0 Votes
    4 Posts
    2k Views
    P
    So: var cacheSelectorState = $('channel[state.id=*.STATE](functions=Rauchmelder)'); Gruß Pix
  • EPaper-Server/Displays per CURL ansteuern?

    Moved
    3
    0 Votes
    3 Posts
    2k Views
    t.omalleyT
    Hab´s hinbekommen, curl lässt sich ganz einfach über den exec-node ausführen! Ich frage hier bei Änderungen die Temperaturen ab und lege die in Flow-Variablen ab, das Display wird immer nur dann (mit den aktuellen Temperaturen) aktualisiert, wenn das kritische Dachfenster geöffnet oder geschlossen wird - das spart Batteriestrom. Mit dieser Lösung zeige ich am Ausgang an, dass noch ein Fenster offen ist, weil das schon oft vergessen wurde. Das Display sollte damit 5-6 Jahre durchhalten, dann gibt´s schickere Lösungen. Nachdem nun die größte Hürde genommen ist, mache ich mich an Displays mit Raumbelegung/Kalender, anstehende ical-Termine (Mülltermine - Tonnen rausstellen), Auslastungs-/Umsatzzahlen, Diensteinteilungen…Möglichkeiten ohne Ende - und keine Stromversorgung nötig freu [image: 3152_img_0953.jpg] Hier mein flow: ! ```` [ { "id": "b859cbc9.b0f1e8", "type": "function", "z": "6355756.629658c", "name": "27_4 xml bauen", "func": "var tempkueche = flow.get("tempkueche");\nvar temptoilet = flow.get("temptoilet");\nvar tempchef = flow.get("tempchef");\nvar templager = flow.get("templager");\nvar fenster = flow.get("fenster");\n\nvar newMsg = {payload: "<taskorder title="Refresh B302D29E"><templatetask labelid="B302D29E" externalid="40" template="2h_foyer.xsl"></templatetask></taskorder>"};\nreturn newMsg;", "outputs": 1, "noerr": 0, "x": 460, "y": 860, "wires": [ [ "5d131aad.853774", "ddbeea82.b7adf8" ] ] }, { "id": "481d1366.247e4c", "type": "exec", "z": "6355756.629658c", "command": "curl -X POST -d @/volume1/iobroker/iobroker-data/files/vis.0/daten/27_4.xml "http://192.168.100.5:8001/service/task\" --header "Content-Type:application/xml"", "addpay": false, "append": "", "useSpawn": "", "timer": "2", "name": "Output", "x": 790, "y": 900, "wires": [ [], [], [] ] }, { "id": "5d131aad.853774", "type": "file", "z": "6355756.629658c", "name": "27_4 xml write", "filename": "/volume1/iobroker/iobroker-data/files/vis.0/daten/27_4.xml", "appendNewline": false, "createDir": false, "overwriteFile": "true", "x": 660, "y": 860, "wires": [] }, { "id": "ddbeea82.b7adf8", "type": "delay", "z": "6355756.629658c", "name": "2sec-del", "pauseType": "delay", "timeout": "2", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 660, "y": 900, "wires": [ [ "481d1366.247e4c" ] ] }, { "id": "8d4efc4b.600eb", "type": "ioBroker in", "z": "6355756.629658c", "name": "temptoilet", "topic": "hm-rpc.0.KEQ0578061.4.ACTUAL_TEMPERATURE", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "x": 120, "y": 860, "wires": [ [ "f043e1c1.cc97c" ] ] }, { "id": "744b6ade.5d1e54", "type": "ioBroker in", "z": "6355756.629658c", "name": "fenster", "topic": "hm-rpc.0.LEQ1470154.1.STATE", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "x": 450, "y": 980, "wires": [ [ "2acef966.8e4b96" ] ] }, { "id": "f043e1c1.cc97c", "type": "function", "z": "6355756.629658c", "name": "temptoilet", "func": "var glob = (msg.payload);\nflow.set("temptoilet",glob);\nreturn msg;", "outputs": 1, "noerr": 0, "x": 260, "y": 860, "wires": [ [] ] }, { "id": "d549b0c0.662e2", "type": "function", "z": "6355756.629658c", "name": "fenster", "func": "var glob = (msg.payload);\nflow.set("fenster",glob);\nreturn msg;", "outputs": 1, "noerr": 0, "x": 450, "y": 900, "wires": [ [ "b859cbc9.b0f1e8" ] ] }, { "id": "2acef966.8e4b96", "type": "change", "z": "6355756.629658c", "name": "change", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "FENSTER OFFEN", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 460, "y": 940, "wires": [ [ "d549b0c0.662e2" ] ] }, { "id": "e9e11b8d.1bca98", "type": "ioBroker in", "z": "6355756.629658c", "name": "tempkueche", "topic": "hm-rpc.0.JEQ0211467.1.TEMPERATURE", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "x": 130, "y": 920, "wires": [ [ "df4c5cdb.c9af2" ] ] }, { "id": "df4c5cdb.c9af2", "type": "function", "z": "6355756.629658c", "name": "tempkueche", "func": "var glob = (msg.payload);\nflow.set("tempkueche",glob);\nreturn msg;", "outputs": 1, "noerr": 0, "x": 290, "y": 920, "wires": [ [] ] }, { "id": "5ffa7c8c.d79f14", "type": "ioBroker in", "z": "6355756.629658c", "name": "tempchef", "topic": "hm-rpc.2.000313C99069FE.1.ACTUAL_TEMPERATURE", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "x": 120, "y": 980, "wires": [ [ "e2fb6395.08434" ] ] }, { "id": "e2fb6395.08434", "type": "function", "z": "6355756.629658c", "name": "tempchef", "func": "var glob = (msg.payload);\nflow.set("tempchef",glob);\nreturn msg;", "outputs": 1, "noerr": 0, "x": 260, "y": 980, "wires": [ [] ] }, { "id": "7712d5cf.1f7dcc", "type": "ioBroker in", "z": "6355756.629658c", "name": "templager", "topic": "hm-rpc.0.JEQ0012416.1.TEMPERATURE", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "x": 120, "y": 1040, "wires": [ [ "11958bef.65c544" ] ] }, { "id": "11958bef.65c544", "type": "function", "z": "6355756.629658c", "name": "templager", "func": "var glob = (msg.payload);\nflow.set("templager",glob);\nreturn msg;", "outputs": 1, "noerr": 0, "x": 280, "y": 1040, "wires": [ [] ] } ] Hier noch das zugehörige XSL-Template (aus der Dokumentation abgewandeltes .xls): >! ```` >! <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template match="Record"><xsl:variable name="bgcolor"><xsl:choose><xsl:when test="room/field[@key='invert']/@value = '1'">black</xsl:when> <xsl:otherwise>white</xsl:otherwise></xsl:choose></xsl:variable> >! <xsl:variable name="fgcolor"><xsl:choose><xsl:when test="room/field[@key='invert']/@value = '1'">white</xsl:when> <xsl:otherwise>black</xsl:otherwise></xsl:choose></xsl:variable> >! >! <field height="80" width="176" x="0" y="0"><xsl:attribute name="background-color"><xsl:value-of select="$bgcolor"></xsl:value-of></xsl:attribute> <text align="center" font-size="34" font-weight="bold"><xsl:attribute name="color"><xsl:value-of select="$fgcolor"></xsl:value-of></xsl:attribute> <xsl:value-of select="room/field[@key='Zeile1']/@value"></xsl:value-of></text></field> >! <field height="22" width="176" x="0" y="81"><xsl:attribute name="background-color"><xsl:value-of select="$bgcolor"></xsl:value-of></xsl:attribute> <text align="left" font-size="18" font-weight="bold"><xsl:attribute name="color"><xsl:value-of select="$fgcolor"></xsl:value-of></xsl:attribute> <xsl:value-of select="room/field[@key='Zeile2']/@value"></xsl:value-of></text></field> >! <field height="22" width="176" x="0" y="104"><xsl:attribute name="background-color"><xsl:value-of select="$bgcolor"></xsl:value-of></xsl:attribute> <text align="left" font-size="18" font-weight="bold"><xsl:attribute name="color"><xsl:value-of select="$fgcolor"></xsl:value-of></xsl:attribute> <xsl:value-of select="room/field[@key='Zeile3']/@value"></xsl:value-of></text></field> >! <field height="22" width="176" x="0" y="127"><xsl:attribute name="background-color"><xsl:value-of select="$bgcolor"></xsl:value-of></xsl:attribute> <text align="left" font-size="18" font-weight="bold"><xsl:attribute name="color"><xsl:value-of select="$fgcolor"></xsl:value-of></xsl:attribute> <xsl:value-of select="room/field[@key='Zeile4']/@value"></xsl:value-of></text></field> >! <field height="22" width="176" x="0" y="150"><xsl:attribute name="background-color"><xsl:value-of select="$bgcolor"></xsl:value-of></xsl:attribute> <text align="left" font-size="18" font-weight="bold"><xsl:attribute name="color"><xsl:value-of select="$fgcolor"></xsl:value-of></xsl:attribute> <xsl:value-of select="room/field[@key='Zeile5']/@value"></xsl:value-of></text></field> <field align="left" height="35" width="100" x="40" y="220">![](../images/LiebigLogo_100_35.png)</field></xsl:template></xsl:stylesheet>
  • Brauche dringend Hilfe !!

    Moved
    1
    0 Votes
    1 Posts
    511 Views
    No one has replied
  • Frage zu RegEx am Beispiel von Pix

    Moved
    17
    0 Votes
    17 Posts
    1k Views
    T
    @BBTown: dann wären wir für jeden Block wieder hier 8-) [12]?[0-9]?[0-9] ```` ` Stimmt. Hier war gerade soviel Bewegung im Thread, habe ich übersehen. Das müsste nach meinem heute erlangente Verständnis alles abgreifen.
  • TCP output node. Verbindung öffnen und schließen

    Moved
    1
    0 Votes
    1 Posts
    804 Views
    No one has replied
  • Wie Regenmenge ermitteln (Wetterstation)

    Moved
    20
    0 Votes
    20 Posts
    4k Views
    N
    danke. das script muss ich nun erstmal begreifen ;) gruß
  • On mit mehreren State Trigger

    Moved
    48
    0 Votes
    48 Posts
    14k Views
    T
    Hallo blauholsten, hallo Pix, vielen Dank für eure Hilfe. Bzgl. JS: das lag nicht am Skript, da war gar nichts Neues drin. Wohl eher an meinen Update Versuchen. Nun habe ich alles nochmal komplett neu gemacht und es läuft weider. Werde trotzdem eine zweite Instanz einrichten, ist in der Tat sinnig.
  • [gelöst] Skript Frage - 2tes Gerät 10 Minuten später

    Moved
    54
    0 Votes
    54 Posts
    5k Views
    paul53P
    @paul53: Funktioniert es mit ack: true, oldAck: false ? ` @noxx: Ja, sieht so aus. ` Dann markiere bitte das Thema als gelöst (im ersten Beitrag).

703

Online

32.6k

Users

82.2k

Topics

1.3m

Posts