Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Befehl an Gerät senden?

    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

    Befehl an Gerät senden?

    This topic has been deleted. Only users with topic management privileges can see it.
    • wcag22
      wcag22 last edited by

      Nabend,

      Ich möchte z.B. am Monatsende den Gesamtverbrauch einer Tasmota-Dose auf Null zurücksetzen.

      Nach läääääängerem Suchen habe ich zumindest dies hier gefunden und mit Erfolg probiert:

      http://192.168.178.65/cm?cmnd=EnergyTotal%200
      

      In Blockly über den Baustein request URL und damit als JS

      try {
        require("request")('http://192.168.178.65/cm?cmnd=EnergyTotal%200').on("error", (e) => { console.error(e); });
      } catch (e) { console.error(e); }
      

      gelöst (der Trigger ist hier noch nicht definiert).

      So weit - so gut.

      So wie ich das laienhaft sehe geht das aber auch "irgendwie" via sendTo und/oder getState (?)
      Neugierig wie ich bin, würde ich gern wissen - Fundstelle würde reichen - wie das genau funktioniert.
      Ich habe dazu leider nichts für mich Erhellendes gefunden, was mich dem Wissen näher bringt.

      Kann mir Jemand einen Tipp geben? - Danke.
      Schönes WE

      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @wcag22 last edited by

        @pi-ter sagte in Befehl an Gerät senden?:

        So wie ich das laienhaft sehe geht das aber auch "irgendwie" via sendTo und/oder getState (?)

        Wenn Tasmota per MQTT angebunden ist, kannst Du den Befehl (wenn er einmal gesendet wurde) auch über einen State erneut senden.

        wcag22 1 Reply Last reply Reply Quote 0
        • wcag22
          wcag22 @haus-automatisierung last edited by

          @haus-automatisierung
          Sei mir nicht böse, aber meine Frage hattest Du schon verstanden,oder?

          Was soll denn eine fragender Laie aus Deiner Antwort entnehmen?

          Befehl (wenn er einmal gesendet wurde)

          Und wie sende ich diesen Befehl? Das war ja meine Frage

          auch über einen State erneut senden

          Ich will nicht erneut senden, ich will wissen, wie das geht.

          Neugierig wie ich bin, würde ich gern wissen - Fundstelle würde reichen - wie das genau funktioniert.

          War das soooo unklar formuliert?

          DAnke

          haus-automatisierung 1 Reply Last reply Reply Quote -1
          • haus-automatisierung
            haus-automatisierung Developer Most Active @wcag22 last edited by

            @pi-ter Habe ich in zig Inhalten rauf und runter erklärt. Daher hier die Kurzfassung:

            • Der MQTT-Adapter erstellt für jedes abonnierte Topic automatisch einen Datenpunkt, sobald eine Nachricht reinkommt
            • Genauso eben auch für dein cmnd / EnergyTotal
            • Du kannst also z.B. mit dem MQTT Explorer (oder einem anderen Client) den Wert 0 auf dem Topic einmal publishen, dann gibts den Datenpunkt dazu im Objektbaum
            • Alternativ kannst Du auch einfach den Blockly-Baustein dafür nehmen

            Wie das Topic aufgebaut werden muss, hängt von der Konfiguration in Tasmota ab. Da fehlen Infos um zu helfen. Es steht ja nichtmal in deinem Beitrag, wie das Gerät im ioBroker integriert wurde. Aktuell nur per HTTP? Oder über den Sonoff-Adapter? Oder über den MQTT-Adapter?

            wcag22 1 Reply Last reply Reply Quote 2
            • wcag22
              wcag22 @haus-automatisierung last edited by

              @haus-automatisierung
              Vielen, vielen Dank für Deine umfassende Hilfe.
              Ich habe nach den Fundstellen, die Du genannt hattest (Suchbegriffe "rauf" bzw. "runter") gesucht, bin aber leider nicht fündig geworden.

              Aber lass es gut sein, ich wurschtel mich selber durch und mache es so, dass es funktioniert. Nach Deinen umfangreichen Erläuterungen zu urteilen, scheint das Problem eh zu groß für mich zu sein.

              MartinP 1 Reply Last reply Reply Quote -1
              • MartinP
                MartinP @wcag22 last edited by

                @pi-ter Ich habe meine Tasmota Dose über den Sonoff-Adapter integriert.
                Da kann man definitiv den Datenpunkt "ENERGY_total" nicht beschreiben, zurücksetzen.

                Über den MQTT-Adapter gab es dieses sperrige JSON-Gedöns, dem ich ausweichen wollte.
                Man kann da anscheinend "Set" Datenpunkte selber erzeugen, und damit mehr Kontrolle über den Zwischenstecker bekommen ...

                Hier hat mir das mal jemand erklärt ....
                https://forum.iobroker.net/topic/71304/gelöst-meine-irrfahrt-aquara-temperatursensoren-einbinden/61?_=1707071956509

                wcag22 1 Reply Last reply Reply Quote 0
                • wcag22
                  wcag22 @MartinP last edited by

                  @martinp
                  Nabend,

                  danke für Deine Hinweise. Eigentlich habe ich das Thema für mich abgehakt. Scheint so oder so komplizierter zu sein, als ich dachte.
                  Ja, die Tasmota-Dosen laufen via Sonoff-Adapter, die Shellys mit Org.-Software über den Shelly-Adapter.

                  Tasmota:
                  Dort kann ich ja auf der Konsole mit "EnergyTotal 0" den Wert zurücksetzen. Ich dachte nun, das lässt sich über Scripte mittels entsprechender Befehle (sowas wie 'sendTo' oder 'setState') lösen. Code snippets dieser Art habe ich reichlich gefunden, und nahm nun an, das wäre etwas auch für diesen Fall.
                  Scheint aber nicht so zu sein.

                  Egal, ich kann zeitgesteuert den im Ausgangspost genannten http-request absetzen und damit den Wert auf Null setzen. Problem gelöst 🙂
                  Damit könnte man auch bei Bedarf Werte setzen, z.B. um alte Werte zu übernehmen o.ä.

                  Shelly:
                  Shellys gehen mit Verbrauchswerten / Datenpunkten je nach Produkt unterschiedlich um. Dort gibts keine Konsole und Befehle habe ich nur für die Relaisfunktionen gefunden. Als Lösung hat sich aber ein http-request angeboten, der das Geräte rebootet. Damit sind die aufgelaufenen Werte auch wieder bei Null, der Rest bleibt ja erhalten.
                  Auch hier Problem gelöst 🙂

                  Vorbelegung scheint dann hier aber nicht zu funktionieren. Zumindest habe ich nix dazu gefunden. Ist für mich im konkreten Fall auch weniger interessant.

                  Wozu der Aufwand ?
                  Ziel sind fixe Werte für Tages-, Monats- und Jahresverbrauch bzw. Vormonats - oder Vorjahreswerte.
                  Da nicht alle Geräte die aufgelaufenen Werte bei Stromausfall behalten, schreibe ich diese jeweils in den Bereich userdata, ggfls. noch über den Zwischenschritt alias.

                  Da ich einen "Abrechnungszeitraum" April-März habe, und die Geräte bzw. Adapter unterschiedliche statistische Zeiträume bereitstellen ("aktuelles Jahr", "letzte 12 Monate", etc.) muss ich das auf meinen statistischen Zeitraum anpassen. Heißt: Alle Werte müssen jeweils am 31.03. nachts gesichert sein (Vorhaltezeit entweder unbegrenzt oder 400 Tage) und am 1. April kurz nach Mitternacht werden die Werte dann auf den Geräten zurückgesetzt.

                  Das wars dann auch schon...

                  Deine Fundstelle schaue ich mir noch mal genauer an, vielleicht kann ich da noch was draus lernen.

                  Nun dann - auf in eine neue Woche...

                  MartinP 1 Reply Last reply Reply Quote 0
                  • MartinP
                    MartinP @wcag22 last edited by MartinP

                    @pi-ter Ein anderer Weg wäre natürlich, Userdata-Punkte anzulegen, die den kumulierten Verbrauch zum entsprechenden Stichtag enthalten. Dann kommt man auch ohne Zurücksetzen aus ...

                    Verbrauch seit Stichtag = aktueller Kumulierter Verbrauch - Kumulierter Verbrauch zum Stichtag

                    Leider gibt es dann aber keine einfache Alias-Methodik, um damit arbeiten zu können. Da müsste man wohl mit Blockly o. Ä. arbeiten, und einen weiteren Userdata Punkt für den um den Stichtagswert verminderten Wert anlegen

                    wcag22 1 Reply Last reply Reply Quote 0
                    • wcag22
                      wcag22 @MartinP last edited by

                      @martinp
                      Ja, sicher, das ginge auch. Mit den userdata-DP arbeite ich ja schon.
                      Es führen halt viele Wege in die Irre 🙂

                      Um alias komme ich wohl nicht herum, da einige Geräte die Werte in Wh, andere in kWh bereitstellen. Und gerundet muss auch noch werden.

                      Im Moment bin ich mit der jetzigen Lösung eigentlich ganz zufrieden und blockly habe ich recht gut im Griff.
                      Besser geht natürlich immer...

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      469
                      Online

                      31.9k
                      Users

                      80.2k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      319
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo