Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Zählen eines Zustandes

    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

    Zählen eines Zustandes

    This topic has been deleted. Only users with topic management privileges can see it.
    • Codierknecht
      Codierknecht Developer Most Active @haselchen last edited by

      @haselchen sagte in Zählen eines Zustandes:

      @codierknecht

      Die Auslösung eines BWM zum Beispiel.

      ???? Die Auslösung ist doch in der Regel der Trigger ❓
      Und in der Behandlung desselben wird dann noch eine Reihe von Prüfungen durchgeführt, oder?

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

        @haselchen sagte in Zählen eines Zustandes:

        Und da ist die Frage wie lange das Blockly wartet bis alles erfüllt ist nachdem der Trigger ausgelöst hat .

        gar nicht.
        Da musst du sogar aufpassen dass du ni ht in die asynchron Falle läufst und due Werte in dem Moment wo sie abgefragt werden (im DP) auch schon geschrieben sind.
        Deswegen empfiehlt es sich immer mit Variablen zu arbeiten, die direkt nach dem Triggern gestzt werden, i Falle von der "Trigger variable" Wert sogar mit dem Wert arbeitet die zum triggern geführt hat.
        Ansonsten werden bei Vergleich mit Wert von ID diese immer genau dann angefordert wenn das Skript an dieser Stelle ankommt.
        Letzteres wird nur Millisekunden nach Triggerung sein, aber bis der Wert ankommt dauert etwas länger.

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

          @fredf
          Hab mir den Adapter angeschaut. Dachte erst das ist was ich brauche aber da ich im Device Reminder Adapter nur den DP "switched off" und "in action" habe mit dem ich zuverlässig zählen kann und der Statistics adapter anscheinend nur true & false tählen kann scheint es nicht brauchbar zu sein. Also den zustand Steckdose ein, kann ich mit Statistics aufzeichnen und er zählt auch aber den DP Status Spülmaschine (siehe Bild) scheint er nicht zu erfassen, obwohl ich den aktiviert habe. Konnte da nur einen Namen angeben sonst nix. Bei der Steckdose konnte ich ein Hacken setzten bei Zählen...

          Unbenannt2222.JPG

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

            @paul53

            haste das Skript selbst gemacht oder wirklich im netz auf die schnelle gefunden?

            Auf jeden Fall verstehe ich leider nicht viel.. Ich muss mich noch viel mit Blockly beschäftigen...
            Dieser Thread hier allein hat so viele Infos das ich mir wohl den einen oder anderen Nachmittag wieder des Arsch platt sitzen werde um es zu studieren und wenigstens etwas schlauer zu werden.

            Ich habt es alle sowas von drauf... Wahnsinn...!

            1668019756542-bild_2022-11-09_194916249.png

            Paul, hab vesucht das nachzubastelt bei mir.

            in der oberen Zeile die ID ist das der DP den ich erstellt habe? Der in dem gerade 0 steht. Da wo er reinschreiben soll?
            In der Objekt ID wo in gelb Maschine an steht. Das ist doch bestimmt DP von dem Devise Reminder Adapter. Der wo "switched off" & "in acton" seht wenn die Maschine läuft oder aus ist. Kann ich denn da die werte nehmen die der Device Reminder Adapter mir gibt? Oder muss es ein true oder false wert sein? Wenn ich da nur auf änderung reagiere dann würde er ja zwei mal zählen oder?
            Und in der unteren Objekt ID (im Blauen) ist doch wieder der DP in der reingeschrieben werden soll und um einen erhöht, oder?

            Sorry für meine Blödheit und das ich, in euren Augen, bestimmt richtig dämliche Fragen stelle. Ich hoffe ihr habt etwas Verständniss und Geduld mit mir.

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

              @random-0 sagte: in der oberen Zeile die ID ist das der DP den ich erstellt habe? ... Da wo er reinschreiben soll?

              Ja, ich dachte, dass der Variablenbezeichner aussagekräftig genug ist.

              @random-0 sagte in Zählen eines Zustandes:

              Oder muss es ein true oder false wert sein? Wenn ich da nur auf änderung reagiere dann würde er ja zwei mal zählen oder?

              Ja. Wenn er aber einen String enthält, dann auf Änderung triggern und im Trigger einen String-Vergleich machen.

              Bild_2022-11-10_115307839.png

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

                @paul53

                Danke die nochmal Paul. Hab es nachgebaut bei mir aber leider wird in dem DP nichts reingeschrieben wenn die Spülmaschine läuft.
                Der Trigger (in action) an der Spülmaschine wird gesetzt aber in dem von mir erstellten DP bleibt eine 0 stehen.

                Hab alles gespeichert und das Skript aktiviert. Muss ich noch was tun, was ich übersehen habe, damit es funzt?

                sieht so bei mir aus mir den Infos wie ich die DP´s gesetzt habe
                tempsnip33.png

                mein erstellter DP
                dp.JPG

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

                  @random-0
                  Falsche Vergleichsvariable: zyklen. Es muss der Wert des Trigger-Datenpunktes (unter "Trigger") verglichen werden.

                  Blockly_DP_Props.JPG

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

                    @paul53
                    geändert.. Hab ich übersehen.
                    skript1.JPG

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      Random 0 @Random 0 last edited by

                      Ich will deine / eure Hilfsbereitschaft nicht ausreizen aber gibt eine Möglichkeit die selbe Aktion in verschiedene DP zu schreiben? Ich dachte mir ich erstelle mit 52 Datenpunkte, für 52 Kalenderwochen. Oder 12 DP´s für 12 Monate und wenn es möglich wäre in den DP für den jeweiligen Monat / Woche zu schreiben (automatisch) dann wüsste ich wie oft die Spülmaschine in den jeweiligen Wochen / Monaten läuft.. Also es wird erkannt welcher Monat / KW gerade ist und dann in den entsprechenden DP geschrieben,,

                      DJMarc75 1 Reply Last reply Reply Quote 0
                      • DJMarc75
                        DJMarc75 @Random 0 last edited by

                        @random-0 Für sowas gibt es Adapter wie "History", "influxdb", "Sourceanalytix".

                        R 1 Reply Last reply Reply Quote 0
                        • R
                          Random 0 @DJMarc75 last edited by

                          @djmarc75

                          Gut möglich das ich da was übersehe, aber mit den Adaptern kriege ich es nicht hin.
                          In Influx DB schreibe ich zwar den Stromverbrauch der Spülmaschine und in der Auswertung könnte ich die Ausschläge zählen und dann wüsste ich auch wie oft die Spülmaschine in der Woche / Monat läuft. Hoffe aber es gibt eine smartere Lösung als mit dem Finger am Bilschirm die Kurven zu zählen. Es sei den es gibt eine Möglichkeit das InfluxDB2 oder Grafana das für mich rechnen. Hab da aber leider noch nix gefunden das zufriedenstellend wäre.
                          Sourceanalytix nutze ich auch, ist echt super. Daher auch die Idee mit den verschiedenen Ordnern für jede KW. Der Adapter zeichnet sehr gut pro Woche den Strom auf aber ich kann mir mit dem nicht anzeigen lassen wie oft dieSpülmaschine in der Woche / Monat / Jahr läuft.
                          History kann auch nicht zählen nur verbrauch aufzeichnen. Mir wurde auch der Statistics adapter empfohlen aber auch der kann mir nicht anzeigen wie oft die Spülmaschine läuft.

                          Auf meiner VIS wird mir angezeigt wieviel Watt die Spülmaschine im Monat zieht und wieviel das Kostet, was klasse ist. Ich würde mir nur gerne zusätzlich anzeigen lassen wie oft die Spülmaschine gelaufen hat im Monat.

                          Etliche Adpter können das nicht. Oder ich mache was falsch. Eine Adapterlösung wäre mich auch am liebsten.
                          Daher bin ich beim Device Reminder Adapter hängen geblieben, der erkrennt wann die Maschine läuft und wann nicht und da dachte ich mir es müsste doch möglich sein das Signal zu zählen und vielleicht sortiert zu schreiben um es mir dann schön anzeigen zu lassen.

                          DJMarc75 1 Reply Last reply Reply Quote 0
                          • DJMarc75
                            DJMarc75 @Random 0 last edited by

                            @random-0 dann musst Du das mit Skripten lösen.

                            R 1 Reply Last reply Reply Quote 0
                            • R
                              Random 0 @DJMarc75 last edited by

                              @djmarc75

                              Ist auch meine Erkentniss. Scheint nur nicht so einfach zu sein für mich, die Sache mit den Skripten. Zum Glück gibt es so nette Menschen wie den Paul, die helfen und von den ich lernen kann. Aber werde mit dem Thema wohl dennoch einige Stunden verbringen müssen.

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

                                @random-0 was genau soll denn das Ergebnis sein?
                                ich denke du kämst (wie SourceAnalytix) mit 3 DP aus: Woche, Monat und Jahr (ggf. nochmal 3 mit *_alt zur Differenzbildung)
                                am Ende jeden Zeitraums trägst du dort die im Zeitraum anfallende Anzahl ein (und den Gesamtzählerstand in *_alt)

                                R Codierknecht 2 Replies Last reply Reply Quote 0
                                • R
                                  Random 0 @Homoran last edited by

                                  @homoran
                                  Als Egebniss wäre cool wenn ich DP hätte in die automatisch die Anzahl der Spülmaschinendurchläufe geschrieben wird, damit ich mir das in der VIS ansehen kann wie Oft das Gerät läuft/wie oft wir die Maschine anmachen. Idealerweise sortiert nach Woche Monat Jahr.

                                  Ich glaube auch das drei DP reichen, weiß nur nicht wie eingestellt werden kann das automatisch in die jeweiligen DP geschrieben wird. Damit ich auch nach Jahren nicht regelmäßig den Ziel DP (in den reingeschrieben wird) ändern muss.

                                  Sorry, das mit der Differenzbildung & *_alt verstehe ich nicht. Ist glaube ich, was neues für mich.
                                  Und am Ende eines Zeitraums die Anzahl eintragen, meinst du im Blockly Script das so regeln?
                                  Oder manuell in einen DP eintragen?

                                  1 Reply Last reply Reply Quote 0
                                  • Codierknecht
                                    Codierknecht Developer Most Active @Homoran last edited by Codierknecht

                                    @homoran
                                    Würde da nicht ein einzelner DP mit 'nem Zähler reichen?
                                    An den hängt man dann die Hostorisierung.
                                    Den Rest kann man dann ja mit ein bisschen SQL lösen ...

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

                                      @codierknecht sagte in Zählen eines Zustandes:

                                      Den Rest kann man dann ja mit ein bisschen SQL lösen ...

                                      kann man das?

                                      @random-0 sagte in Zählen eines Zustandes:

                                      Ich glaube auch das drei DP reichen, weiß nur nicht wie eingestellt werden kann das automatisch in die jeweiligen DP geschrieben wird. Damit ich auch nach Jahren nicht regelmäßig den Ziel DP (in den reingeschrieben wird) ändern muss.

                                      das bestimmst doch du wo es hingeschrieben wird!
                                      Beispiel
                                      Screenshot_20221115-092345_Firefox.jpg

                                      @random-0 sagte in Zählen eines Zustandes:

                                      das mit der Differenzbildung & *_alt verstehe ich nicht.

                                      du musst doch eine Differenz von zwei Zählerständen bilden um einen Periodenwert zu erhalten.
                                      Dazu brauchst du den Endwert der Vorperiode um ihn bei der Folgeperiode als Startwert zu nehmen.

                                      Codierknecht 1 Reply Last reply Reply Quote 0
                                      • Codierknecht
                                        Codierknecht Developer Most Active @Homoran last edited by Codierknecht

                                        @homoran sagte in Zählen eines Zustandes:

                                        @codierknecht sagte in Zählen eines Zustandes:

                                        Den Rest kann man dann ja mit ein bisschen SQL lösen ...

                                        kann man das?

                                        Kann man - mit SQL - frag' mich aber bloß nicht, wie das mit Influx funktioniert 😉

                                        Nur mal so laut gedacht:
                                        Man schreibt einen Zähler fort. Dann könnte man mit

                                        (SELECT ZAEHLERSTAND 
                                           FROM TABELLE 
                                           WHERE DATUM = END_OF_ZEITRAUM) -
                                        (SELECT ZAEHLERSTAND 
                                           FROM TABELLE
                                          WHERE DATUM = START_OF_ZEITRAUM)
                                        

                                        die Anzahl der Läufe ermitteln. Zeitraum ist dann mehr oder weniger beliebig ... Woche, Monat, Quartal, Halbjahr, Jahr, Dekade ... such' Dir was aus.

                                        Alternative:

                                        SELECT MAX(ZAEHLERSTAND) - MIN(ZAEHLERSTAND) 
                                          FROM TABELLE
                                         WHERE DATUM >= STARTDATUM
                                           AND DATUM <= ENDDATUM
                                        
                                        Homoran 1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @Codierknecht last edited by

                                          @codierknecht sagte in Zählen eines Zustandes:

                                          Kann man - mit SQL -

                                          aber nicht als einfacher ioBroker User mit ioBroker Bordmitteln.

                                          Codierknecht 1 Reply Last reply Reply Quote 0
                                          • Codierknecht
                                            Codierknecht Developer Most Active @Homoran last edited by

                                            @homoran sagte in Zählen eines Zustandes:

                                            einfacher ioBroker User

                                            Ich glaube, genau da steckt oft das Problem.
                                            So 'nen ioB mit 'ner Datenbank und dann auch noch mit z.B. Grafana zu verheiraten ist ja auch alles andere als trivial.

                                            @homoran sagte in Zählen eines Zustandes:

                                            mit ioBroker Bordmitteln

                                            Da gebe ich Dir dann wieder Recht. Wenn man das nur im ioB (als reinen Zahlenwert) haben will, muss man halt entsprechende DP haben und ein paar Scripte erstellen.
                                            Wir können ja Wetten abschließen, wann eine grafische Auswertung gewünscht wird ...

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            946
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            72
                                            3145
                                            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