Ankündigung

Einklappen
Keine Ankündigung bisher.

Tasmota Firmware Version auslesen und auf der Sitemap anzeigen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Tasmota Firmware Version auslesen und auf der Sitemap anzeigen

    Hallo,

    ich habe ein Problem die Firmware Version automatisch in der Sitemap anzuzeigen.
    Habe in der PaperUI ein Thing angelegt:
    mqtt state topic: stat/device/STATUS2
    Transform Values
    Incoming Value Transformations
    JSONPATH:$.StatusFWR.Version
    Ich muss jetzt aber damit er angezeigt wird auf der Konsole des Devices den Befehl: cmnd/Status 2 eingeben das er auf der Sitemap angezeigt wird. Wie bekomme ich das hin das es automatisch angezeigt wird. Für ein bisschen hilfe wäre ich dankbar

    #2
    Ich habe jetzt leider gerade kein Tasmota Device im Zugriff... steht die Firmware Version evtl. auch über tele/device/... zur Verfügung?

    Ansonsten müsstest Du dafür einen Channel anlegen.

    Falls Du mehrere Devices hast, kannst Du zumindest über das Group Topic alle Tasmota Devices gemeinsam triggern.

    Entweder siehst Du dann eine Schaltfläche vor, die Du drückst, um den Befehl zu senden, oder Du legst eine Rule an, die dann zyklisch das Topic sendet. Dazu bräuchte es dann nicht mal einen Channel, dazu reicht eine mqttAction aus.

    Kommentar


      #3
      Hallo udo1toni
      ich habe einen Channel angelegt, das funktioniert auch, wenn ich im Sonoff Device direkt den Befehl zum Ausgabe des Status 2 eingebe. Also in der Konsole cmnd/Status 2, dann wir der Wert den ich haben will "Version" in der Sitemap angezeigt. ich muss irgendwie den Sonoffgeräten sagen das sie diesen Befehl automatisch machen sollen, und das ist mein Problem. Ich hoffe du verstehst was ich meine. Ich habe was gelesen mit rules aber das klappt irgenwie nicht oder ich mach was falsch

      Channel.JPG

      Kommentar


        #4
        Ja, das habe ich schon beim 1. Mal verstanden Der Punkt ist aber, Du musst den Befehl an den Sonoff schicken. Dafür brauchst Du nur einen Channel...

        Die Sonoffs werden diesen Wert nicht automatisch senden, und das willst Du auch nicht.
        Du möchtest, dass openHAB automatisch nach der Version fragt.
        Und das tust Du über einen extra Channel, der lediglich ein commandTopic hat, sinnvollerweise nimmst Du dazu einen number Channel, damit Du anschließend das Payload 2 senden kannst. Das Topic heißt cmnd/device/STATUS. Damit sendest Du das Kommando von openHAB aus, nicht mehr von der Sonoff Konsole. Nun brauchst Du nur noch eine Rule, welche ein sndCommand(2) an das Item absetzt, welches mit dem Channel gekoppelt ist. Alternativ sendest Du das Topic direkt aus der Rule heraus, ohne dazu einen channel anzulegen.

        Kommentar


          #5
          Hallo, stimmt der Sonoff macht das nicht alleine, und das ist genau das Problem ich bekomme es einfach nicht umgesetzt wie ich es machen soll. in der Konsole muss ich den Befehl Status 2 eingeben. ich bekomme diesen Befehl aber nicht im Openhab eingeben da ja ein Leerzeichen zwischen Status und der 2 sein muss. Ich habe es versucht mit cmnd/device/STATUS2 das klappt nicht und mit cmnd/device/STATUS 2 auch nicht. Irgendwie verstehe ich das nicht, kannst du mir da auf die Sprünge helfen, danke.
          Wäre ja schon mal zufrieden wenn ich es manuell mit einem Schalter im Openhab abfragen könnte ;-)

          Kommentar


            #6
            Lies doch noch mal mein Posting. Ich weiß nicht, wie ich es anders schreiben soll... Du musst einfach einen number Channel definieren, welcher (exakt wie der schon vorhandene Channel zum Schalten des Relais) einfach das Topic mit dem Payload sendet. Also commandTopic="cmnd/device/STATUS", der number Channel verlinkt mit einem Number Item und für dieses ein Switch Widget in der UI, mit mappings=[2="Load state"]. das erzeugt eine "Schaltfläche" welche dann die Zahl 2 als Payload an das commandTopic sendet.

            Alternative: eine Rule, welche das automatisch macht. Kann ich (nachher) auch gerne erläutern...

            Kommentar


              #7
              Eine Rule, die das topic zyklisch sendet:
              Code:
              rule "mqtt zyklisch senden"
              when
                  Time cron "17 3/10 * * * ?" // alle 10 Minuten, um xx:x3:17 Uhr
              then
                  val mqttAction = getActions("mqtt","mqtt:broker:mybroker")
                  mqttAction.publishMQTT("cmnd/device/STATUS","2") // sende 2 ans Topic cmnd/device/STATUS
              end
              Die komplett schiefe Zeit (alle 10 Minuten, beginnend in der Stunde um drei Minuten und siebzehn Sekunden nach der vollen Stunde) ist eine vollkommen willkürliche Zeit da geht es mit vor allem darum, zu zeigen, dass zyklische Rules nicht zwingend an "geraden" Zeiten ausgerichtet sein müssen. Viel wichtiger ist, dass solche zyklischen Rules möglichst keiner anderen zyklischen Rule in die Quere kommen

              Da es ja darum geht, den Firmwarestand abzurufen, sollte ein Zyklus von 10 Minuten eher als kurz betrachtet werden.

              Die UID des Brokers musst Du natürlich anpassen, genau wie das Topic, um den Status abzurufen.

              Kommentar


                #8
                Hallo,

                habe das mal ausprobiert:

                rule "mqtt zyklisch senden"
                when
                Time cron "17 3/10 * * * ?" // alle 10 Minuten, um xx:x3:17 Uhr
                then
                val mqttAction = getActions("mqtt","mqtt:systembroker:embedded-mqtt-broker")
                mqttAction.publishMQTT("cmnd/sonoff_Flur/STATUS","2") // sende 2 ans Topic cmnd/device/STATUS
                end

                bekomme dann als Fehlermeldung im Openhab 2.5.10-1
                2020-12-10 20:13:17.120 [ERROR] [ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule 'mqtt zyklisch senden': actions cannot be null

                Idee?
                Danke im voraus, bin neu auf diesem Gebiet und muss leider noch einiges erfragen

                Kommentar


                  #9
                  Wie ist Dein Broker exakt konfiguriert? Du solltest ein gewöhnliches Broker-Thing nutzen, nicht den systembroker.

                  Kommentar


                    #10
                    Hallo Udo,

                    das war es, war der falsche Broker. Nun funktioniert es. Besten Dank für deine Unterstützung und Geduld.

                    Kommentar


                      #11
                      Immer gerne

                      Kommentar

                      Lädt...
                      X