Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Schlammschlumpf

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    S
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 8
    • Best 1
    • Groups 1

    Schlammschlumpf

    @Schlammschlumpf

    Starter

    1
    Reputation
    4
    Profile views
    8
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Schlammschlumpf Follow
    Starter

    Best posts made by Schlammschlumpf

    • RE: Differenzsteuerung Pool mit Blockly

      @mrbinford Viele Weg führen nach Rom. Ich persönlich prüfe in meinen Skripten noch den aktuellen Status von meinem Zielgerät und steuere es dann nur an, falls es den entsprechenden Status nicht sowieso hat.

      Bei der letzten Bedingung schreibst Du +5. Meintest Du hier nicht minus 5. Da der Pool doch eigentlich sonst kälteres Wasser aus der Solaranlage noch länger ziehen würde.

      Mich persönlich würde noch stören, dass Du es an den Zeitplan der Pumpe koppeln möchtest. Denn so musst Du stets zwei Zeitpläne synchron halten. Vielleicht möchte auch man mal die Pumpe außerhalb des Zeitplans laufen lassen und evtl. steht dann noch der Kugelhahn ungünstig. Ich würde daher einen 5 Minuten Zeitplan nur starten, wenn der Status der Poolpumpe sich auf wahr bestätigt ändert und der dann gestartete Zeitplan löscht sich wieder, wenn die Poolpumpe wieder den Status falsch bestätigt bekommt. Wenn man den Zeitplan der Poolpumpe dann auch noch im gleichen Skript initialisiert, so könnte man diese Differenzprüfung zuvor in eine Blockly-Funktion auslagern und sowohl dann beim Starten der Pumpe ausführen als auch in dem bei Bedarfsfall getriggerten 5 Minutenzeitplan. Es gibt da bestimmt zahlreiche Ideen. Bei von Triggern gestarteten Triggern (z.B. der 5 Minuten Cronjob) muss man aber sehr sauber arbeiten. Wenn man die nicht sauber immer wieder löscht, dann laufen da ganz schnell ganz viele (ungewollte) Trigger. (In dem 5 Minuten-Job würde ich daher sicherheitshalber noch den Status der Poolpumpe prüfen und falls falsch auch hier den Zeitplan löschen.

      VG,
      Oliver

      posted in Blockly
      S
      Schlammschlumpf

    Latest posts made by Schlammschlumpf

    • RE: Unterstützt Smartmeter Zähler mit Nebentarif?

      Sorry, typisch User. Gerade gepostet und selbst meinen Fehler gesehen. Hat sich erledigt

      posted in ioBroker Allgemein
      S
      Schlammschlumpf
    • Unterstützt Smartmeter Zähler mit Nebentarif?

      Hallo Zusammen,
      ich habe soeben meine Stromzähler mit IR Leseköpfen versehen. Einer meiner Stromzähler unterscheidet Tag- und Nachtstrom.

      Zähler: efr SGM-C4-4A92TL

      Leider wird mir im Smartmeter nur der Zählerstand von 18.1 angezeigt, jedoch den zweiten Zählerstand (18.2) vermisse ich:
      574d461a-1329-42b3-b825-6567c34051f8-image.png
      Mir wird nur einer der beiden Zählerstände angezeigt:
      4f2f0cd6-a553-406c-9b13-d1b9c08566d1-image.png
      Hat jemand eine Idee, woran das liegen könnte? (Ich kann mir nur schwer vorstellen, dass der Zähler nur einen der beiden Stände überträgt, kann es aber nicht prüfen, da ich aus dem Debug-Log nicht schlau werde)

      Ich danke für Eure Hilfe,
      Oliver

      posted in ioBroker Allgemein
      S
      Schlammschlumpf
    • RE: Differenzsteuerung Pool mit Blockly

      @mrbinford Viele Weg führen nach Rom. Ich persönlich prüfe in meinen Skripten noch den aktuellen Status von meinem Zielgerät und steuere es dann nur an, falls es den entsprechenden Status nicht sowieso hat.

      Bei der letzten Bedingung schreibst Du +5. Meintest Du hier nicht minus 5. Da der Pool doch eigentlich sonst kälteres Wasser aus der Solaranlage noch länger ziehen würde.

      Mich persönlich würde noch stören, dass Du es an den Zeitplan der Pumpe koppeln möchtest. Denn so musst Du stets zwei Zeitpläne synchron halten. Vielleicht möchte auch man mal die Pumpe außerhalb des Zeitplans laufen lassen und evtl. steht dann noch der Kugelhahn ungünstig. Ich würde daher einen 5 Minuten Zeitplan nur starten, wenn der Status der Poolpumpe sich auf wahr bestätigt ändert und der dann gestartete Zeitplan löscht sich wieder, wenn die Poolpumpe wieder den Status falsch bestätigt bekommt. Wenn man den Zeitplan der Poolpumpe dann auch noch im gleichen Skript initialisiert, so könnte man diese Differenzprüfung zuvor in eine Blockly-Funktion auslagern und sowohl dann beim Starten der Pumpe ausführen als auch in dem bei Bedarfsfall getriggerten 5 Minutenzeitplan. Es gibt da bestimmt zahlreiche Ideen. Bei von Triggern gestarteten Triggern (z.B. der 5 Minuten Cronjob) muss man aber sehr sauber arbeiten. Wenn man die nicht sauber immer wieder löscht, dann laufen da ganz schnell ganz viele (ungewollte) Trigger. (In dem 5 Minuten-Job würde ich daher sicherheitshalber noch den Status der Poolpumpe prüfen und falls falsch auch hier den Zeitplan löschen.

      VG,
      Oliver

      posted in Blockly
      S
      Schlammschlumpf
    • RE: Text zur Zahl

      @samke
      Bin leider nur auf dem Tablet unterwegs, so dass ich Dir keinen hübschen Screenshot machen kann.

      Eine Möglichkeit wäre, dass Du unter „Logik“ den Baustein „Im Falle von“ benutzt.
      Du definierst dir zuvor eine Variable „meinStatusAlsZahl“, dann nimmst Du den gerade genannten Logikbaustein und hängst in den Abschnitt „der Fall ist“ Deinen Status Deines Adapters, der nur in Textform vorliegt.
      Über das Zahnrad des Blockes kannst Du Dir beliebig viele Fallunterscheidungen hineinziehen. Jede besteht aus „Im Falle von“ und „Mache“. In den „Im Falle von“-Abschnitt wirfst Du ein Textelement und fügst dort den gewünschten Text ein z.B. „Fehler links“ etc. Also der exakte Staustext Deines Adapters. Im Mache-Abschnitt fügst Du einen Block ein, der dann „ meinStatusAlsZahl“-Variable mit dem jeweiligen gewünschten Zahlencode setzt. Nach dem gesamten Block steht dann hoffentlich der gewünschte Ziffernwert in der Variable und Du kannst ihn weiterverwenden.

      Hoffe, dass Du verstehst, was ich meine. Sonst reiche ich bald noch einen Screenshot nach.

      VG
      Oliver

      posted in Blockly
      S
      Schlammschlumpf
    • RE: Alias ist nicht synchron: Bug oder Verständnisproblem?

      @foxriver76 @paul53
      Danke für Euere Antworten. Ich glaube, dass getstate auch falsch war, da ich auf das Problem gestoßen bin, als mein Blockly-Script sich nicht wie erwartend verhielt. Im Augenblick sind die beiden Datenpunkte synchron. Denke, dass die Lösung war, dass ich den js-controller neu gestartet habe. Kann es sein, dass ich den nach der Anlage eines neuen Alias stets einmal unter Hosts den js-controller durchstarten muss? Oder ist da kein Zusammenhang und es war eher Zufall?

      Ich danke Euch herzlichst!

      posted in Skripten / Logik
      S
      Schlammschlumpf
    • Alias ist nicht synchron: Bug oder Verständnisproblem?

      Hallo,
      eigentlich dachte ich, dass es dauerhaft eine gute Idee wäre, wenn ich alles auf Aliase umstelle. Aber offenbar fehlt mir noch ein grundlegendes Hintergrundwissen zu dem Thema, denn ich stoße hier immer wieder auf Probleme, die ich nicht verstehe:

      Ich habe diesen Alias mittels dem Alias-Manager angelegt:

      {
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1622562309276,
        "common": {
          "name": "DR_Garagentor_Sensor.STATE",
          "role": "sensor.window",
          "type": "boolean",
          "read": true,
          "write": false,
          "alias": {
            "id": "hm-rpc.0.PEQ0478659.1.STATE"
          }
        },
        "native": {},
        "acl": {
          "object": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1636
        },
        "_id": "alias.0.Vorgarten.Garagentor.Sensor.STATE",
        "type": "state"
      }
      

      Dieser hat den folgenden Status (true und unbestätigt):

      Status_Aliase.png

      Der zugehörige Original-State ist aber false und bestätigt:
      Status_Original.png

      Meine Erwartung an einen Alias wäre, dass egal was ich anstelle (ob der Homematic-Sensor seinen Wert ändert oder ich vielleicht fehlerhafter Weise auf den Alias des Sensors einwirke), dass dieser stets synchron bleibt. Kann mir jemand erklären, wie ein Alias im Hintergrund funktioniert, so dass ich mir das Verhalten besser erklären kann?

      Besten Dank,
      Oliver

      posted in Skripten / Logik
      S
      Schlammschlumpf
    • RE: [solved] "IDs vom Selektor" mit "Alias" - Warnungen

      Ursache war, dass Aliase offenbar erstmal solange (im Hintergrund) "null" sind, bis das erste Mal eine Statusänderung am Alias oder am Originalobjekt erfolgt. Lösung war, dass ich alle Lichter erst einmal im iobroker eingeschalten habe.

      posted in Blockly
      S
      Schlammschlumpf
    • [solved] "IDs vom Selektor" mit "Alias" - Warnungen

      Hallo Zusammen,

      ich baue gerade meine Heimautomation neu auf und verlagere mehr Funktionen aus der Homematic auf den IOBroker. Meine aktuelle Aufgabe ist es, dass ich die klassische Funktion schreiben möchte, die alle Lichter im Haus ausschaltet. Jetzt versuche ich für alle Geräte, die ich irgendwo steuern möchte einen Alias anzulegen und dann dachte mir, dass ich für Licht keine Rolle erstellen muss, sondern direkt anhand der ID darüber iterieren kann um alle abzuschalten.

      Meine Alias mit dem Alias-Manager alle nach dem geleichen Muster angelegt:
      Alias.jpg
      ... dann versuche ich über alle ID mit dem Muster alias.0.Licht.*.STATE zu iterieren und im Bedarfsfall auszuschalten:
      Blockly.png

      Wenn ich es ausführe dann scheint es auch zu funktionieren, aber das Log wird mir mit Warnungen zugespammt:

      javascript.0	2021-05-30 19:28:06.429	warn	(1535) getState "alias.0.Licht.DG_Liv_Licht_LED.STATE" not found (3)
      javascript.0	2021-05-30 19:28:06.429	warn	(1535) at processImmediate (internal/timers.js:461:21)
      javascript.0	2021-05-30 19:28:06.429	warn	(1535) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5555:41)
      javascript.0	2021-05-30 19:28:06.428	warn	(1535) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:502:29)
      javascript.0	2021-05-30 19:28:06.428	warn	(1535) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1075:38)
      javascript.0	2021-05-30 19:28:06.428	warn	(1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      javascript.0	2021-05-30 19:28:06.426	warn	(1535) getState "alias.0.Licht.DG_Julian_Licht_LED.STATE" not found (3)
      javascript.0	2021-05-30 19:28:06.426	warn	(1535) at processImmediate (internal/timers.js:461:21)
      javascript.0	2021-05-30 19:28:06.426	warn	(1535) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5555:41)
      javascript.0	2021-05-30 19:28:06.425	warn	(1535) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:502:29)
      javascript.0	2021-05-30 19:28:06.425	warn	(1535) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1075:38)
      javascript.0	2021-05-30 19:28:06.424	warn	(1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      javascript.0	2021-05-30 19:28:06.423	warn	(1535) getState "alias.0.Licht.DG_Flur_Licht.STATE" not found (3)
      

      Und auch im Scriptfenster kommen Meldungen wie:

      20:04:18.285	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.288	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.290	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.292	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.295	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.297	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.300	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.302	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.305	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.307	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.312	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.314	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:11:9)
      20:04:18.320	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:19:9)
      20:04:18.322	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:19:9)
      20:04:18.324	warn	javascript.0 (1535) at Object.<anonymous> (script.js.Licht.Beleuchtung:19:9)
      

      Wo liegt mein Fehler?

      Danke Euch,
      Oliver

      posted in Blockly
      S
      Schlammschlumpf
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo