Skip to content

Skripten / Logik

16.6k Topics 214.3k Posts

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

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Topics
    49k Posts
    ofri2607O
    @ticaki Ja, das mit der Sinnhaftigkeit ist so eine Sache. Bei mir haben sich mittlerweile über 100 Skripte angesammelt und es kommt immer wieder mal noch was dazu. Und auch hier, ja, mir ist bewusst das 5 Instanzen vom Javascript-Adapter speichermäßig „teuer“ erkauft sind. Daher auch der eigene Pi als Slave. Performanceprobleme hatte ich dadurch bis dato noch keine, zumindest nicht bemerkt. Was für mich nicht sinnvoll war / ist, ist mehrfach verwendeten Code zu kopieren oder parallel in Skripten zu haben, das macht aus meiner Sicht irgendwann die Wartung oder Ausrollung von Erweiterungen fast unmöglich. Die Klassen und Module im großen Stil in global zu verpacken ist für mich auch keine sinnvolle Option. Auch wenn es vermutlich nicht soviel Performance kostet. Ich habe auch mehrere Funktionen die ich mehr oder wenige in jedem Skript in irgendeiner Art verwende, z.B. erweiterte Logging-Funktionen, die habe ich auch im global in zwei Closures zusammengefasst. Mir gefällt dabei aber nicht, das bei einer kleinen Änderung in einem globalen Skript alle Skripte in allen Instanzen neu starten und weiters auch nicht, dass ich da im Hauptskript irgendwas unsichtbar im Vorbau geschrieben habe (das ist aber eine persönliche Befindlichkeit). Aber als Beispiel, ich habe ein Modul mit Funktionen zu diversen Farbwertumrechnungen. Diese benötige ich in 7 von den etwas über 100 Skripten. Dafür jetzt diese in global überall „mitzuschleppen“ widerstrebt mir irgendwie. Aus diesem Grund ist für mich die Einbindung von Modulen und Klassen über require die sinnvollste Lösung. Vor allem weil ich alles an einem Platz im Javascript-Adapter habe, nicht mit externen Files herumhantieren muss, im Hauptskript immer genau sehe was ich über require eingebunden habe, die Skripte aus meiner Sicht besser strukturieren und aufteilen kann und auch die Sicherung mit allen Hauptskripten einfach mitläuft. (und ja, das bietet global im Wesentlichen auch) Aber wie geschrieben für mich. Ich denke es muss jeder für sich selbst die praktikabelste Lösung finden.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    Murphy 0M
    @Martin_1705 sagte: Danke, habe gefunden dass ich das Solarflow 800 Plus über setDeviceAutomationInOutLimit in den Objekten steuere. Sorry aber ich kann mit dem Solarflow 800 nicht wirklich helfen. Ich habe einen Hyper2000 ohne Solarmodule den ich rein AC seitig betreibe. Hier im Fred gibt es aber einiges an Beispielen als Blockly welche dir weiterhelfen solten. Noch besser hier mal schauen, da gehts um die neuen Geräte mit lokalem Betrieb und neuem Adapter: https://forum.iobroker.net/topic/69579/test-adapter-zendure-solarflow
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Topics
    13k Posts
    F
    Hallo ich habe ein Problem mit Nodered und Alexa Echo. Ich habe in Nodered die Wemo Emulation installiert und eine Wemo Steckdose emuliert um an einer Zigbeesteckdosenleiste einen Platz der Leiste zu schalten. "node-red-contrib-wemo-emulator" Das klappt auch wunderbar leider nicht länger als ein zwei Tage. Wenn ich dann den Echo der mit der emulierten Steckdose verbunden ist neu starte geht es wieder. Leider ist das sehr nervig. Hat schon mal jemand gehabt? Durch die Forumssuche habe ich leider nicht gefunden. Gruss Achim
  • Min/ Maxwerte per blocky ermitteln

    blockly
    1
    0 Votes
    1 Posts
    618 Views
    No one has replied
  • keine Icons bei text2command

    communication
    4
    0 Votes
    4 Posts
    371 Views
    G
    @crunchip 1.3.0 Ich hatte den Adapter auch de- und dann wieder installiert. Danach ging es ein paar mal aber auch nur wenn ich die Seite öfters hintereinander neu geladen hatte. Hab auch andere Browser und auf English probiert aber geht nicht. Die Spalten werden in Englisch angezeigt wenn es dann mal klappt mit den mehrmals neuladen der Seite werden die Spalten in Deutsch gezeigt und dann kann ich auch was anlagen oder ändern.
  • Datenpunkt runden, Datenpunkt Speicher von MB auf GB

    javascript blockly
    25
    1
    0 Votes
    25 Posts
    2k Views
    K
    @paul53 sagte in Datenpunkt runden, Datenpunkt Speicher von MB auf GB: Leider keine Ahnung Es ist auch keine praktischh handhabbare Zeit. Habe eben - etliche Stunden später - nochmals getestet. Geht nicht. JS Adapter neu gestartet - geht.
  • Frage] Excel nach json

    Moved
    21
    0 Votes
    21 Posts
    1k Views
    Horst BöttcherH
    Dann Probier mal den folgenden String iso88591 Hat supper geklappt danke euch
  • [erledigt ]Variable lässt sich nicht löschen

    javascript
    6
    1
    0 Votes
    6 Posts
    598 Views
    falke69F
    @paul53 habe jetzt die Kiste nochmal neu gestartet (wa ich zuvor auch schon gemacht habe), Jetzt kam die Auswahl beim Ordner löschen, ob ich eins oder alle Objekte löschen will. Habe erst auf alle geklickt -> wieder eine Fehlermeldung. Dann habe ich auch eins geklickt -> Fall erledigt! Danke Für Deine Hilfe!
  • VIS Jalousie Höhe und Lamellenwinkel per Knopfdruck

    scenes
    2
    0 Votes
    2 Posts
    334 Views
    T
    Ok, nach mehreren Abenden ausprobieren und googlen war die Lösung am Ende ganz einfach: Bei Jalousieaktoren muss zuerst der LEVEL2 Wert im Channel 4 gesetzt werden um die Lamellenposition einzustellen. Dabei passiert allerdings noch gar nichts. Anschließend setzt man den LEVEL Wert im Channel 4 und schon bewegt sich die Jalousie. :-) Wenn man mehrere mit einem Mal bewegen möchte empfehle ich eine Pause von ca. 2 Sekunden zwischen den Ansteuerungen. So kommt die CCU hinterher.
  • [gelöst]xiaomi batteriestatus blockly fehler

    blockly
    3
    1
    0 Votes
    3 Posts
    204 Views
    M
    @paul53 hast recht! habe über 200 nachrichten erhalten ... hab java neugestartet und dann ging es los
  • Tasmotoa Rules & mqtt von Gosund in den broker schreiben

    communication
    3
    0 Votes
    3 Posts
    433 Views
    S
    @amg_666 das Sendeintervall möchte ich gerne bei 300 s lassen. Das Update de Daten nur bei Änderung (das wäre dann ja anscheinend auch mit PowerDekta möglich gewesen) klappt mit der Regel auch. Ich muss die Daten anscheinend nur an die falsche Adresse abschicken - und das Problem würde ja auch mit PowerDelta bestehen bleiben. Frage also noch mal umformuliert: mit welchen Parametern muss ich die publish Nachricht füttern, damit die Daten im broker ankommen [image: 1604685437073-selection_285.png]
  • 0 Votes
    4 Posts
    391 Views
    paul53P
    @Kraxelhuber sagte: Muss ich dafür jetzt ein Script schreiben, was sich die Temperatur des Thermostats merkt, dann eine neue, abgesenkte Temperatur einstellt, wenn das Fenster geöffnet wird, und beim Schließen des Fensters wieder die alte Temperatur wiederherstellt? Darauf wird es hinauslaufen.
  • wer kann helfen? Warnung im Log bei Javascript adapter

    javascript
    8
    0 Votes
    8 Posts
    876 Views
    H
    @All Shedules, also irrgenwelche Zeitgesteuerten scripte. Hm da habe ich den Einen oder Anderen per Blockly als Trigger und ähnliches. Werde ich am späten Nachmittag mal Testen.
  • Optimierung Script - Foto über wget ohne Timeout

    blockly javascript
    3
    1
    0 Votes
    3 Posts
    515 Views
    S
    @paul53 Danke für die Idee. Müsste ich testen ob ich das hinbekomme. Hauptsächlich nutze ich Pushover. Ich glaube hier geht es nicht. Ich bin aber gerade weiter am probieren und habe vielleicht sogar keine Lösung gefunden. Ich verwende anstatt wget curl. Sollte es passen, werde ich hier noch einen Screenshot posten. Edit: Okay funktioniert mit curl leider auch noch nicht wie gewünscht :-(
  • Keine Szenenzustände

    scenes
    3
    1
    0 Votes
    3 Posts
    269 Views
    K
    @Thomas-Braun said in Keine Szenenzustände: https://github.com/ioBroker/ioBroker.scenes/issues/72 Super, vielen Dank
  • If statement wird nicht ausgeführt

    blockly javascript
    3
    1
    0 Votes
    3 Posts
    188 Views
    K
    @Asgothian Habs geblickt. Danke! :-)
  • Bestimmten Teil aus Datenpunkt auslesen

    javascript blockly
    10
    0 Votes
    10 Posts
    2k Views
    A
    Wie peinlich...jetzt hab ich es verstanden! Danke dir vielmals... das hilft mir sehr weiter!
  • Text2Command / Button betätigen

    javascript
    10
    0 Votes
    10 Posts
    455 Views
    A
    @samsungfreak Super!
  • Homematic IP Rauchmelder Status

    monitoring
    8
    1
    0 Votes
    8 Posts
    3k Views
    grothauuG
    Wenn ich das richtig interpretiere liefern die Rauchmelder über die IP keinen direkten Auslösestatus, sondern man muss den Umweg über smokeDetectorAlarmType gehen. Nimmt der bei Auslösung eines Alarms keinen eindeutigen Wert an, der sich direkt abfragen ließe?
  • [erledigt] Regensensor - Sprünge erkennen?

    javascript climate
    4
    1
    0 Votes
    4 Posts
    494 Views
    A
    Wollte kurz berichten, dass das ganz gut klappt mittlerweile. Danke also nochmal Ich nutze nach beobachtung meines Aufbaus nun 0.5 zum Detektieren von Regen und -0.5 zum Detektieren vom Aufhören des Regens. var diffWert = (obj.state.val - obj.oldState.val) / ((obj.state.lc - obj.oldState.lc)/1000/60) ; //should be min(value - oldValue) / (obj.state.lc - obj.oldState.lc); setState("0_userdata.0.RegensensorPRGDiffWertHistory"/*RegensensorPRGDiffWertHistory*/, diffWert); if( diffWert > 0.5 && getState("0_userdata.0.RegensensorPRGDetectedRain").val == false) { getState("0_userdata.0.RegensensorPRGDetectedRain").val == false) { setState("0_userdata.0.RegensensorPRGDetectedRain"/*RegensensorPRGDetectedRain*/, true); } else if (diffWert < -0.5 && getState("0_userdata.0.RegensensorPRGDetectedRain").val == true) { setState("0_userdata.0.RegensensorPRGDetectedRain"/*RegensensorPRGDetectedRain*/, false); } else { if(getState("0_userdata.0.RegensensorPRGDetectedRain").val == true) { //'Es regnet - Änderung aber egal' + diffWert } Hier noch ein SCreenshot von der Feuchtigkeit dem errechneten DiffWert der Variable RegenDetected: [image: 1604148927379-21f49637-5abd-4b69-9086-98fc12ca172b-image.png]
  • HmIP-MOD-HO in yahka integrieren

    javascript
    14
    0 Votes
    14 Posts
    2k Views
    L
    @Asgothian Tausend Danke für die schnelle Hilfe und einfache Umsetzung! Sorry für meine späte Rückmeldung. Ich bekomme anscheinend keine Benachrichtigungen, wenn auf meine Posts geantwortet wird. :man-shrugging: @Fenriswolf hatte aber anscheinend recht. Als Target muss hm...DOOR.COMMAND ausgewählt werden. hm...DOOR.STATE ist nicht steuerbar und zeigt lediglich den Status an. Das Steuerkommando muss immer über DOOR.COMMAND kommen. Die Steuerungswerte in deinem Script passen aber. Der Vollständigkeit halber hier nochmal deine Lösung, so wie sie bei mir dann funktioniert: [image: 1604134515261-currentdoorstate.png] [image: 1604134521294-obstructiondetected.png] [image: 1604134528305-targetdoorstate.png] Vielen Dank nochmal! Jetzt komme ich endlich mit meiner Uhr in die Garage
  • JSON parse - ich schaffe es nicht...

    javascript
    7
    0 Votes
    7 Posts
    965 Views
    UncleSamU
    @erwinberlin sagte in JSON parse - ich schaffe es nicht...: getState(Read) ... kannst du noch ersetzen mit obj.state ersetzen, damit wird der Code noch einfacher. Wie gesagt wird in obj bereits der gesamte State mitgeliefert.
  • 0 Votes
    12 Posts
    1k Views
    W
    @AlCalzone @UncleSam Ich setzte das Thema jetzt auf gelöst und mache bezüglich des JS-Adapters auch kein Issue auf. Über eine Woche hat sich der CPU-Wert des Containers jetzt kein Stück nach oben bewegt, von den Spikes, wenn es kurz mal etwas mehr zu tun gibt, abgesehen. Aber danach ist er wieder auf den "Startwert" von vor einer Woche zurückgefallen. Danke Euch beiden nochmal. Ohne Euch wäre ich wohl immer noch am suchen... Gruss, Jürgen

580

Online

32.7k

Users

82.6k

Topics

1.3m

Posts