Skip to content

Skripten / Logik

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

16.5k Themen 213.2k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    P
    Oben steht, dass der Server öfter mal offline ist. Da ist ping meine erste Idee. Ob der Server auf Pings antwortet, weiß ich nicht. Reagiert der Server nicht auf ping, dann evtl. als Ersatz einen httpcheck nehmen. httpcheck nutze ich auf der Synology, bevor die auf den ioBroker zugreift. # ===== HTTP-Check statt Ping ===== curl -s --connect-timeout 3 "$BASE/system.adapter.admin.0.alive" > /dev/null || exit 1 Ist allerdings ein Bash-Skript. Das muss für die Zwecke angepasst werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    S
    Hallo zusammen, ich möchte in ioBroker eine Alias-Struktur aufbauen, allerdings ohne die bekannten Adapter. Dabei möchte ich vorab herausfinden, welche Datenpunkte durch meine Skripte eigentlich genutzt werden. Ist es möglich, dies durch Bordmittel herauszufinden ? Vielen Dank und Beste Grüße schweiger2
  • 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?
  • Mein erstes Script (Sayit) bräuchte Hilfe :-)

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    964 Aufrufe
    M
    nein, wurde nichts geschrieben. der javascript adapter war off :idea: ich bin schon viele schritte weiter. ;) allerdings probiere ich gerade über hm-rpc eine getState abfrage, welche noch noch nicht so funktioniert wie ich will. ich melde mich, wenn ich absolut nicht mehr weiterkomme. logfile ist sehr rot. 8-) lg.
  • Wunderground Wetter Abfrage über script

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    6k Aufrufe
    B
    @ykuendig: Hi Bob Da Du auf einen einjährigen Post reagierst, wollte ich es mir nicht nehmen lassen, Dich darüber zu informieren, dass mittlerweile ein Weatherunderground Adapter geführt wird. Denn kann man benutzen, muss man aber nicht ;-) ` Oh man, den Adapter hab ich echt übersehen :roll: Aber danke für den Tip! ` > Das Script ist für javascript.1 eingestellt. Bei dir läuft es unter der Instanz 0. Du musst ganz oben im Script die Instanz anpassen. ` Auch danke dafür. Damit läuft das Skript. Und ich hab wieder was dazugerlernt ;)
  • Wo finde ich Variablen der VIS Oberfläche

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    HomoranH
    Ich taste mich jetzt auch erst über Blockly an javascript ran. In einem ähnlichen Fall habe ich statt des "Schreibe", den "aktualisiere" Block genutzt aktualisiere (Objekt ID) mit (Wert) in deinem Falle also "true" als Wert Gruß Rainer
  • Daten über CAN-Bus senden

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    M
    msg.payload = [0xa1,0xb2]
  • BestPractis für "doppeltes on"?

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    paul53P
    @Fitti: schreibt man val und true jeweils OHNE ' (einfaches Anführungszeichen) , richtig? ` Ja, die Bezeichner (z.B. val) werden ohne Anführungszeichen geschrieben (vielleicht funktioniert es auch mit ' ?). true ist ein boolscher Wert, kein String. change: 'lt' 'lt' ist ein String; es kann keine boolscher Wert (boolean) und keine Zahl (number) sein.
  • Anrufansage & Nachricht mit Blockly

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    S
    Hier der aktuelle funktionierende Stand… ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"> ! <block type="on" id="D-]gKr{S6nMnK~Da4-z?" x="88" y="88"><field name="OID">tr-064.0.callmonitor.inbound.timestamp</field> ! <field name="CONDITION">ne</field> ! <statement name="STATEMENT"><block type="timeouts_settimeout" id="{wuJ3NuDI(4[{ye3j~dn"><field name="NAME">timeout</field> ! <field name="DELAY">500</field> ! <statement name="STATEMENT"><block type="controls_if" id="P(a)Y:K0wpRnM/q5(}l"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="1D+T-RF2EDZ]K.@@v_H6"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="zGok2Xs:!;,o(cNQcwpS"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="B"></value></block></value> ! <statement name="DO0"><block type="sayit" id="L:c+_.z9)q9oCcpxREr-"><field name="INSTANCE">.0</field> ! <field name="LANGUAGE">de</field> ! <value name="VOLUME"><block type="math_number" id="OGpAMalB@dUpxuo_=Ay"><field name="NUM">100</field></block></value> ! <value name="MESSAGE"><shadow type="text" id="zk+69/O]Wn5QiOS={%J="><field name="TEXT">text</field></shadow> ! <block type="text_join" id="/aTtDlgAtMMFqH.RN6TE"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="Nep.Vu=,+(e}b/w7(sNS"><field name="TEXT">Anruf von Nummer</field></block></value> ! <value name="ADD1"><block type="get_value" id="O!yi{EAjnOMl5toHgdu)"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value></block></value></block></statement> ! <statement name="ELSE"><block type="comment" id="LA6K/IS3q#y!uU=B:O7g"><field name="COMMENT">sayit mit Namen</field> ! <next><block type="sayit" id="4_uFDZo=99#_th/I|j1"><field name="INSTANCE">.0</field> ! <field name="LANGUAGE">de</field> ! <value name="VOLUME"><block type="math_number" id="%agKngXzUzhO;^x:j*Zl"><field name="NUM">100</field></block></value> ! <value name="MESSAGE"><shadow type="text" id="h6_/@CY+4s/{abGe?Kd,"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="Fo,RhD@*WMeAu;3hm[:g"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="aqu}1e|RiNeC+ebp2Bec"><field name="TEXT">Anruf von</field></block></value> ! <value name="ADD1"><block type="get_value" id="T9=g0@eTP2o{6;WXKIiE"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value></block></value></block></next></block></statement> ! <next><block type="controls_if" id="[h~#}T~EYq|%zOS1f)36"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="?nW%5,F9qdYo-/~iL8rj"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="ip#M!UFj@gHr1tOMpCt{"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="B"></value></block></value> ! <statement name="DO0"><block type="pushover" id="9}=1gd)3|pvDE^OHKf(S"><field name="PRIORITY">0</field> ! <value name="MESSAGE"><shadow type="text" id="8aS7f-IBzM^.q*;[{G"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="R~8qxH%/7P8fdUN{It@"><mutation items="4"></mutation> ! <value name="ADD0"><block type="text" id="=+8,5-[Vn2=~_jKF4Z5"><field name="TEXT">Name unbekannt - Tel:</field></block></value> ! <value name="ADD1"><block type="get_value" id="Fqb{QAc_RCOEhvLU9Fi_"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value> ! <value name="ADD2"><block type="text" id="c+mAi(^%_MPAW5C[(XH"><field name="TEXT">- am:</field></block></value> ! <value name="ADD3"><block type="get_value" id="DNkn?|Nl|A}Us4^Z[ds"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.timestamp</field></block></value></block></value> ! <value name="TITLE"><block type="text" id="J4?g4z#2lm~+;yDR8cQ"><field name="TEXT">Anruf von:</field></block></value></block></statement> ! <statement name="ELSE"><block type="pushover" id="AsqMoI4]3ER{z8#g:-"><field name="PRIORITY">0</field> ! <value name="MESSAGE"><shadow type="text" id="8aS7f-IBzM^.q;[{G"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="#3AWc1va;bG]AA9bs^l"><mutation items="5"></mutation> ! <value name="ADD0"><block type="get_value" id="C2d]lIN)B,!6D{Ho/]rn"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="ADD1"><block type="text" id="P_4T%4zNei/-K^a9I%O0"><field name="TEXT">- Tel:</field></block></value> ! <value name="ADD2"><block type="get_value" id="R(2]3hcDQtF!rB[ry~.{"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value> ! <value name="ADD3"><block type="text" id="^5m:W7PWh8;j7XJ/}^cO"><field name="TEXT">- am:</field></block></value> ! <value name="ADD4"><block type="get_value" id="y2H-bQyb=StWAJFHOV#C"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.timestamp</field></block></value></block></value> ! <value name="TITLE"><block type="text" id="XOyHv|H3ed2i2,5sQ.;R"><field name="TEXT">Anruf von:</field></block></value></block></statement></block></next></block></statement></block></statement></block> ! <block type="comment" id="Ck[=ssU#?W|4Dx@91d3g" x="88" y="113"><field name="COMMENT">Änderung bei Anruf</field></block></xml> leider ohne die Funktion der Wiederholung der Ansage. Der Block wiederholen solange - scheint nicht zu funktionieren. Dabei stürzt immer der Java Script Adapter ab. PS die Debug Ausgaben habe ich in diesem Blockly bereits entfernt. Gruß Sven
  • Schleife für Wired DImmer

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    834 Aufrufe
    paul53P
    Hier noch eine Variante (nicht getestet), die weniger Belastung für die CPU bringt, da nicht alle 300 ms getState(id) aufgerufen wird: var timer = null; var idTaste = 'hm-rpc.0.XXX1234567.N.PRESS_SHORT'; var idLevel = 'hm-rpc.0.XXX1234567.N.LEVEL'; var level = getState(idLevel).val; function dunkler() { if(level) { level = level - 5; if(level < 0) level = 0; setState(idLevel, level); } if(timer && level === 0) clearInterval(timer); } on({id: idTaste, val: true}, function() { level = getState(idLevel).val; dunkler(); timer = setInterval(dunkler, 300); });
  • Json Objekt in Blockly weiter bearbeiten

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    986 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Anrufer Ansage wiederholen, bis Gespäch angenommen wurde

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    A
    Hi, Für Android gibt es was ähnliches, läuft allerdings nicht über iobroker. Vielleicht kann man das ja irgendwie einbinden. http://www.sonofy.co
  • Nach 2h keine Bewegung im Raum schalten

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    htreckslerH
    var idFensterAuf = "hm-rpc.0.NEQ11000000.1.STATE"; var timer = null; subscribe(idFensterAuf, function (obj) { if (obj.newState.val) { // Starte timer für 2 Minuten if (!timer) { timer = setTimeout(function () { timer = null; log("Fenster im Bad länger als 2 Minuten auf"); }, 120000); } } else { // Fenster zugemacht. Falls timer läuft = stopp log('Fenster im Bad geschlossen!'); if (timer) { clearTimeout(timer); timer = null; } } }); so funktioniert es bei mir mit einem Fenster. (Ist nur für einen Test auf 2 Minuten gesetzt :-))
  • Sayit -> mp3-Ausgabeprobleme

    Verschoben
    4
    2
    0 Stimmen
    4 Beiträge
    864 Aufrufe
    S
    Erst mal eine Teilmeldung aus der Ferne. Mein Wandtablet (mit Firefox) macht den Ankündigungston wenn sayit auf Browser gestellt ist. Mein zweites Tablet (mit Boat Browser) macht es trotzdem nicht wenn sayit auf Browser gestellt ist. Den Boat-Browser muss ich aber für die weitere Funktionalität des Tablet verwenden. Scheint also das die Einstellung "Browser" zwingend Voraussetzung im sayit-Adapter ist. Nachtrag: Dieter, wie sieht dein Script mit request aus ? Bei mir steht im Log: ReferenceError: request is not defined at Object.
  • Sayit - Sprachrückmeldung

    Verschoben
    27
    0 Stimmen
    27 Beiträge
    3k Aufrufe
    H
    Vielen Dank, für Deine Hilfe.
  • Node Red Script für Temperatur Ausgabe

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    3k Aufrufe
    D
    Hi Aber dafür hast du der Nachwelt wieder ein nettes Snippet da gelassen. Thank u well :-)
  • Blockly - jetzt ich auch noch ;-)

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    HomoranH
    @rantanplan: Das Du da noch Zeit für findest ` Das hatte Bluefox vor zwei Jahren in Kassel vorgestellt. Für mich als js-Legastheniker genau das richtige. Leider gibt es dort auch Bausteine in denen wieder js eingegeben werden muss :( Deswegen hatte ich es irgendwann nicht weiter verfolgt. Wahrscheinlich liegt es auch jetzt daran, dass ich in einem node die payload aus zweien weiteren nodes nicht verarbeitet bekomme. Gruß Rainer
  • Umlaute in Javascript Var -> Homematic

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    M
    Meine Lösung: Bin jetzt den Umweg über simpleAPI adapter gegangen … Abfrage über http://server:8090/getPlainValue/yr.0.f … .day0.text liefert richtige Umlaute.
  • Parameterübergabe an Callback-Function

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    664 Aufrufe
    ThisoftT
    Danke blauholsten - so funktionierts. Ich habe eben diese Anonymen Funktionen (ich glaub, so heißen die??) und auch die asynchrone Verarbeitung bei Javascript noch nicht wirklich verinnerlicht.
  • Blockly Request Problem

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    489 Aufrufe
    Niemand hat geantwortet
  • Blockly -> IoBroker -> Osram Lightify

    Verschoben
    9
    1
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    M
    Hi Black, ja der Gruppen-Ansatz war mein erster Ansatz aber das erfüllt halt nicht so wirklich die Anforderungen. Unser Flur ist recht lang und ist abgewinkelt. Ich habe daher insgesamt 3 Bewegungsmelder im Einsatz um die unterschiedlichen Bereiche, wo Bewegung entsteht abzufangen und entsprechende Lampen für den Bereich zu schalten. Wenn ich nun mehrere Gruppen anlege stehe ich vor dem gleichen Problem. Mit nur einer Gruppe "Alle" bin ich dann da wo ich vorher war - immer alles an obwohl nicht nötig. Durch den Hinweis mit dem "Command" sind die Schaltzustände nun aber deutlich schneller, so dass ich 250ms als sichererer Schaltabstand von Lampe zu Lampe getestet habe (vorher 2sek). Damit sollte sich leben lassen. Beim Testen mit der CCU ist aufgefallen, dass auch dort ein geringer Zeitversatz beim Schalten der Lampen ist. Also vermutlich wirklich eher etwas "normales" wenn man die Lampen extern schaltet. Über den Alex Skill und Gruppen ist es genau so. Danke auf alle Fälle für den Denkansatz mit dem Command und den Hinweis zum Trigger, den habe ich schon angepasst. Viele Grüße Mario
  • [gelöst] Backup - Blockly

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    M
    Hallo, Danke, das ist die Lösung! Ich glaub ich brauch doch langsam ne Brille…. :geek: Viele Grüße Mario
  • Script problem bei abfrage von HM Systemvariablen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    680 Aufrufe
    B
    Hallo Paul53, es funktioniert. 1000 Dank. ich war wohl schon zu müde um zu lesen. :-)

728

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge