Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Automatisierung
    5. Javascript und MQTT

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Javascript und MQTT

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Theophilus @paul53 last edited by

      @paul53 said in Javascript und MQTT:

      on('mqtt.0.Stromkasten.tele.SENSOR', function(dp) {

      22:54:43.754 error javascript.0 (61247) script.js.Skript_3 compile failed: at script.js.Skript_3:7

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Theophilus last edited by

        @theophilus sagte: compile failed: at script.js.Skript_3:7

        Sorry, es fehlte die schließende Klammer hinter .Aktuell.

        T 1 Reply Last reply Reply Quote 0
        • T
          Theophilus @paul53 last edited by

          @paul53 Hallo, danke für deine Hilfe.
          Das Skript läuft jetzt durch, aber was sollte passieren?

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Theophilus last edited by paul53

            @theophilus sagte: aber was sollte passieren?

            Es sollten Logausgaben mit den Werten von "Time" und "Aktuell" erfolgen, wenn sich das JSON im Datenpunkt ändert.

            T 1 Reply Last reply Reply Quote 0
            • T
              Theophilus @paul53 last edited by

              @paul53 Ja, da kommt was!

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Theophilus last edited by

                @theophilus sagte: da kommt was!

                Dann können die Logs durch setState() ersetzt und das Skript um weitere Werte ergänzt werden.

                T 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Theophilus last edited by

                  @theophilus sagte in Javascript und MQTT:

                  Dafür habe ich mir einen IR-Lesekopf gekauft und IO-Broker installiert.

                  Dem folgenden entnehme ich, dass es nicht nur ein einfacher IR Lesekopf ist, der an den ioBroker-Server angeschlossen ist, sondern ein Gerät, das irgendwie schon die Daten des Zählers bearbeitet. Ansonsten wüdre der Smartmeter Adapter dir die Arbeit abnehmen können.

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    Theophilus @Homoran last edited by

                    @homoran Ich verwende den hier: https://www.ebay.de/itm/275501110235
                    (Tasmota Wifi ESP01S Lesekopf für Stromzähler / Smart Meter)

                    1 Reply Last reply Reply Quote 0
                    • T
                      Theophilus @paul53 last edited by

                      @paul53 Ich habe das Skript jetzt so ergänzt:

                      on('mqtt.0.Stromkasten.tele.SENSOR', function(dp) {
                      
                          const obj = JSON.parse(dp.state.val);
                      
                      Zeit = obj.Time;
                      Supply = obj.Supply;
                      Aktuell = obj.Aktuell;
                      Total = obj.Total
                      
                          setState('0_userdata.0.Zeit', (Zeit));
                          setState('0_userdata.0.Supply', (Supply));
                          setState('0_userdata.0.Aktuell', (Aktuell));
                          setState('0_userdata.0.Total', (Total));
                          
                          log('Time: ' + obj.Time);
                          log('Aktuell: ' + obj[''].Aktuell);
                        
                      });
                      

                      Merkwürdigerweise wird aber nur die Variable "Zeit" befüllt. Die anderen bleiben auf Null. Ich habe mal versuchsweise eine davon von "Number" auf "String" gesetzt, aber das hat auch nichts gebracht. Wo liegt der Fehler?

                      Eine dumme Frage: Die Variable wird ja jetzt alle 100 Sekunden überschrieben. Ich will die Werte aber ja dauerhaft speichern. Wie mache ich das? Kann ich die irgendwie in eine Tabelle schreiben oder so?

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Theophilus last edited by paul53

                        @theophilus sagte: wird aber nur die Variable "Zeit" befüllt.

                        Versuche es mal so:

                        let Zeit = obj.Time;
                        let Supply = obj[''].Supply;
                        let Aktuell = obj[''].Aktuell;
                        let Total = obj[''].Total;
                        
                        T 1 Reply Last reply Reply Quote 0
                        • T
                          Theophilus @paul53 last edited by

                          @paul53 said in Javascript und MQTT:

                          Danke, so funktioniert es.
                          Wo kann ich nachlesen, warum das so funktioniert? Was bewirkt dieses "obj[' ']"?

                          paul53 Homoran 2 Replies Last reply Reply Quote 0
                          • paul53
                            paul53 @Theophilus last edited by

                            @theophilus sagte: Was bewirkt dieses "obj[' ']"?

                            Schau mal Zeile 3 des JSON an.

                            1 Reply Last reply Reply Quote 1
                            • Homoran
                              Homoran Global Moderator Administrators @Theophilus last edited by

                              @theophilus sagte in Javascript und MQTT:

                              Wo kann ich nachlesen, warum das so funktioniert? Was bewirkt dieses "obj[' ']"?

                              Zusätzlich zu @paul53 Info solltest du dir die Adresse im Screenshot merk3n.
                              Da siehst du es möglicherweise deutlicher
                              Screenshot_20230528-152122_Firefox.jpg

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                Theophilus @Homoran last edited by

                                Aber wie geht es jetzt weiter? Wie kann ich den Inhalt der Variablen in eine Tabelle oder so schreiben?
                                Bringt mich der History-Adapter weiter?

                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @Theophilus last edited by

                                  @theophilus sagte in Javascript und MQTT:

                                  Wie kann ich den Inhalt der Variablen in eine Tabelle oder so schreiben?

                                  was genau willst du denn eigentlich schlussendlich erreichen?

                                  @theophilus sagte in Javascript und MQTT:

                                  Bringt mich der History-Adapter weiter?

                                  sehr wahrscheinlich, falls du einen Verlauf wie auch immer visualisieren willst.
                                  Das wäre dann eher oder so. Eine Tabelle ist für mich für eine Momentaufnahme.

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    Theophilus @Homoran last edited by

                                    @homoran Ich will erreichen, dass ich eine Übersicht über meinen Stromverbrauch und die Produktion des Balkonkraftwerks über den Tag verteilt habe. Gern auch grafisch aufbereitet. Momentan schreibe ich von Hand jeden Morgen die Zählerstände in eine Excel-Tabelle, was zum einen ziemlich mühsam ist und zum anderen fahre ich demnächst für ein paar Tage weg, was bei diesem manuellen Weg eine Datenlücke zur Folge hätte.
                                    Derzeit experimentiere ich auf meinem Laptop, aber wenn ich endlich mal durchblicke, soll mein Raspberry zum Einsatz kommen.
                                    Danke für eure Unterstützung! ioBroker ist ein echter Dschungel ...

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @Theophilus last edited by

                                      @theophilus sagte in Javascript und MQTT:

                                      ioBroker ist ein echter Dschungel ...

                                      nicht wirklich!
                                      man muss nur ein halbwegs geschärftes Werkzeug verwenden, dann kommt man da ganz einfach durch.

                                      solche Informationen helfen dabei nicht wirklich zu verstehen wo und wie man dich unterstützen kann:
                                      @theophilus sagte in Javascript und MQTT:

                                      Momentan schreibe ich von Hand jeden Morgen die Zählerstände in eine Excel-Tabelle, was zum einen ziemlich mühsam ist und zum anderen fahre ich demnächst für ein paar Tage weg, was bei diesem manuellen Weg eine Datenlücke zur Folge hätte.

                                      Das schon eher:
                                      @theophilus sagte in Javascript und MQTT:

                                      eine Übersicht über meinen Stromverbrauch und die Produktion des Balkonkraftwerks über den Tag verteilt habe.

                                      wenn du so etwas meinst

                                      Screenshot_20230528-174554_Firefox.jpg

                                      brauchst du historisierte Daten, z.B. über den History-Adapter.

                                      willst du nur "nackte" Zahlen brauchst du ggf. den SourceAnalytics Adapter.

                                      möchtest du mit irgendwelchen Zahlen aus der lang zurückliegenden Vergangenheit auch noch rechnen, kann es beliebig komplex werden.

                                      Daher gerade zu Beginn erst einmal einen präzisen Plot erstellen, was zum Schluss exakt herauskommen soll, dan findet sich schon ein Weg!

                                      T 2 Replies Last reply Reply Quote 0
                                      • T
                                        Theophilus @Homoran last edited by

                                        @homoran said in Javascript und MQTT:

                                        Daher gerade zu Beginn erst einmal einen präzisen Plot erstellen, was zum Schluss exakt herauskommen soll, dan findet sich schon ein Weg!

                                        Gar nicht so einfach, weil ich noch nicht richtig einschätzen kann, was so geht. Darum das Beispiel mit der Excel-Tabelle: Der Gedanke war, das automatisiert zu erstellen.
                                        Das mit der grafischen Darstellung des Tagesverlaufes finde ich gut. Zusätzlich möchte ich für jeden Tag und für jeden Monat den kulminierten Verbrauch festhalten.

                                        paul53 Homoran 3 Replies Last reply Reply Quote 0
                                        • paul53
                                          paul53 @Theophilus last edited by

                                          @theophilus sagte: für jeden Tag und für jeden Monat den kulminierten Verbrauch festhalten.

                                          Für Periodenwerte (Tag, Woche, Monat, Jahr) gibt es den Sourceanalytix-Adapter.

                                          1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @Theophilus last edited by

                                            @theophilus sagte in Javascript und MQTT:

                                            Gar nicht so einfach, weil ich noch nicht richtig einschätzen kann, was so geht.

                                            lass dich doch nicht ausbremsen.
                                            Wenn etwas wirklich gar nicht geht, sagen wir dir das schon 🙂 .

                                            Aber nichts ist schlimmer als später alles ganz anders aufbauen zu müssen, nur weil man zu Beginn sich selber gar nicht im klaren war, was man eigentlich wirklich wollte.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            950
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            36
                                            1701
                                            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