Ankündigung

Einklappen
Keine Ankündigung bisher.

Zählerabfrage als Wiregate Plugin

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    ACE3000 läuft bei greentux jetzt wohl. Gibt aber nur sehr spärliche Daten raus (nur Zählerstand)
    Nana... Die Zählernummer kommt auch
    Bin mal froh, das das überhaupt geht. Kann ich mal schauen, wie groß der Unterschied Sommer/Winter ist.
    Aber der Hammer ist das Teil nicht.
    Derzeit zwischen Kistenauspacken und Garten anlegen.
    Baublog im Profil.

    Kommentar


      Zitat von JuMi2006 Beitrag anzeigen
      01010801FF -> Obis 1.8.1
      02020805FF -> Obis 2.8.5
      00010700FF -> Obis 1.7
      Moin,

      Ich habe mir diese Diskussion hier jetzt nicht komplett durchgelesen und habe keine Ahnung, ob es in diesem Zusammenhang wichtig ist, aber die o.g. OBIS Kennzahlen dürften so nicht richtig sein.

      Ich würde eher sagen:
      Wirkarbeit Bezug:1.8.0
      Wirkarbeit Lieferung: 2.8.0
      aktuelle Leistung:1.7.0

      Vg,
      Mucki

      Kommentar


        Also erstmal danke!
        Momentan haben sich aber ein paar dringendere Dinge "vorgedrängelt", wenn ihr keine Sorge habt, das ich mich in der Freizeit damit beschäftige euch abzuhören oder Anhand des Stromverbrauchs euren Lebenswandel zu analysieren (was kein Witz ist! und IMHO genau der Grund, warum die Zählerdaten nur auf "meine" lokale Kiste gehören, nicht in irgendeine "Cloud". ich hab nur weder Zeit dazu, noch nutzen davon -> will nur die Zähler ans rennen bekommen.. also keine Angst)
        -> Dann bitte das VPN offen lassen bis ich dazu komme..
        Das Endergebniss soll am KNX oder in einem Plugin landen, das ist ja klar..

        @NetFritz und JuMi: Nun, den vzlogger finde ich schlank, spezialisiert auf seine Aufgabe aber übersichtlich, mit minimalen Modifikationen könnte man den IMHO gut benutzen.
        Ich mache ungerne SW neu, die es schon "in gut" gibt; eibd für EIB/KNX, owfs für 1Wire, ola für DMX (usw.) und ich glaube vzlogger für Zähler.. Sieht mir wenigstens so aus.. Lieber dann aktiv daran mitarbeiten, als neu erfinden..
        Aber das Thema muss ich noch lernen, insofern gehe ich da Ergebnisoffen ran..

        Die "Middleware" erinnert mich aber ehrlichgesagt eher an J<mehr sag ich nicht>: kompliziert, speziell, zuwas braucht man nun genau Doctrine und resourcenintensiven MySQL (ich mag den, aber den nehme ich, wenn ich 100 Zähler von 100.000 Kunden erfasse.. aber bitte nicht für 5 oder 10..) um einen Zählerstand (also eine Zahl mit 4 Byte!) regelmässig aufzumalen?
        Die Aufzeichnung macht uns perfekt das RRDtool und die Anzeige vorhandene Tools, CV o.ä...

        Und ganz im Sinne von vz.org bin ich auch der Meinung: die Daten gehören erstmal nur auf die Kiste des Besitzers, sonst nirgendwo hin. Datenvermeidung ist immernoch der beste Datenschutz.. Allgemeiner Trend zur Cloud hin oder her..

        Auch wenn ich durchaus über zentrale Dienste nachdenke für Facility-Management (wo dann die VZ-Middleware wieder interessant wird, weil aufm Octacore-Xeon mit 32GB RAM im RZ spielt das nun dann keine Rolle..) -> das wenn dann aber optional.
        Erstmal lokal! Ich freue mich schon auf eure Zähler, vermutlich aber erst am WE

        Makki
        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
        -> Bitte KEINE PNs!

        Kommentar


          Hallo Makki,

          welche Freizeit???

          Wollte das VPN nicht die ganze Zeit offen haben.
          Können wir Deine Freizeit etwas einschränken?
          So wie ich Dich kenne wird das Freizeitfenster sich zwischen
          23:00 und 4:00 liegen- das ist natürlich kein Problem.

          Wenns bei Dir losgehen kann sag' kurz bescheid. werde Dir dann noch die Belegung der Köpfe nennen.

          Unterstützend könnte ich noch anbieten eine Webcam auf den Zählerstand zu richten-dazu müsstest auf dem WG aber alles dafür zurechtlegen.

          ... und lass im Kinderzimmer das Licht aus...

          Grüße,
          Lio

          Kommentar


            Zitat von lio123 Beitrag anzeigen
            welche Freizeit???
            Na eben, auf das massiv gesicherte Wartungs-VPN (isolierte VM mit OTP-Token oder 2048bit RSAkey-Anmeldung) kommt auch niemand sonst, der in seiner Freizeit auch nur den Ansatz von Lust hätte, mit den Lichtern in fremden Kinderzimmern zu gamen
            Ehrlich, dafür haben wir genug andere Probleme, Hobbys, Testsysteme und Umgebungen..
            Aktuell haben wir 184 wiregates mit aktivem Wartungs-VPN online, das dürfte daran liegen, das die meisten Wissen das es einfach nur den Support vereinfacht und da eh keiner ungefragt hinlangt, (es aber sehr oft sehr praktisch ist, wenn man mal eben kurz was querprüfen will!) wenn mir langweilig ist, nehm ich eins der eigenen 20

            Wenns bei Dir losgehen kann sag' kurz bescheid. werde Dir dann noch die Belegung der Köpfe nennen.
            Das wär doch praktisch..
            Wenn die restliche sch*** vom Tisch ist am Sa morgen oder So aber das kommt eben drauf an..
            Solche Sachen (müssen) halt async laufen, wenn grad der Exchange o.ä. mal 15min zum rebooten braucht, dann sucht man sich nen Lückenfüller..

            Unterstützend könnte ich noch anbieten eine Webcam auf den Zählerstand zu richten-dazu müsstest auf dem WG aber alles dafür zurechtlegen.
            Ich denke das sollte ich hinbekommen glaube zwar nicht das es zwingend notwendig ist (entweder es geht oder nicht, ob die Werte stimmen ist ja dann schon der zweite Schritt), aber wenn dann irgendeine mit einem grünen Haken hier
            Und Port 8080 aufs WG weiterleiten, ich mach die dann auch brav die Cam wieder zu..

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              Ich brauch mal Hilfe zu Perl regex:

              Wie bekomme ich aus Zeilen wie:

              1-1:1.8.0(0002208.118*kWh)

              oder

              1.8.0(000344.408*kWh)

              die Werte und die Einheit für einen Vergleich ausgelesen.
              regex hab ich ja ein wenig verstanden, scheitere aber immer wieder an der Vielzahl der Möglichkeiten.
              Ich will mein Script nochmal ein wenig erleichtern und dabei nach 1.8.0( suchen, den Wert und die Einheit ausgegeben haben.
              Einheit könnten je nach dem auch V,A,W,kW sein.

              Die Ausgabe ist Zeilenweise so dass ich jede Zeile einzeln durchsuchen kann.
              Wie finde ich einen String der zwischen zwei bestimmten Zeichen steht?

              Also 1.8.0 bzw. x.x.x suche ich mit "x.x.x(". Hier zeigt mir die Klammer direkt hinter dem Suchwort dass ich richtig bin.
              Aber wie finde ich nun 000344.408 zwischen dem "(" und "*"
              Weiter will ich dann wissen was zwischen "*" und ")" steht.

              Nochmal EDIT: substr wollte ich nicht wieder anwenden. Das Auszählen soll entfallen.

              Binn vollkommen verregext

              Danke schonmal
              Gruß Mirko
              Umgezogen? Ja! ... Fertig? Nein!
              Baustelle 2.0 !

              Kommentar


                Code:
                $input= '1-1:1.8.0(0002208.118*kWh)';
                $input  =~ m/[^(]+\(([^*]+)\*([^)]+)/;
                in $1 sollte dann der Zählerstand, in $2 die Einheit stehen.

                Ausm Kopf und ohne Garantie :-)

                Grüße
                Christian

                Kommentar


                  Danke!

                  Dann werd ich mich die Tage die mal ran setzen.
                  Dann wird es reichen nur noch die OBIS Zahlen einzugeben, die GAs einzutragen und dann werden die Werte auch auf den Bus gesendet und die RRDs erstellt.


                  P.S.:
                  Mit dem man von regex werd ich dann mal versuchen den Ansatz oben auch zu verstehen .
                  Umgezogen? Ja! ... Fertig? Nein!
                  Baustelle 2.0 !

                  Kommentar


                    Zitat von amaridian Beitrag anzeigen
                    Code:
                    $input= '1-1:1.8.0(0002208.118*kWh)';
                    $input  =~ m/[^(]+\(([^*]+)\*([^)]+)/;
                    in $1 sollte dann der Zählerstand, in $2 die Einheit stehen.
                    Was ist das denn??? Ich hab ja inzwischen einiges in perl gesehen und gemacht, aber kann mal wer kurz erläutern was in dieser Zeile passiert.
                    Ich kann hier Befehl(e) und Suchstrings etc. nicht annäherungsweise erkennen. Und wo kommen hier $1 und $2 her?

                    Danke und lg Robert

                    Kommentar


                      Nach dem klassischen RTFM-Hinweis (perlop - perldoc.perl.org) versuch ich das mal auseinanderzudröseln:

                      in $input wird zunächst mal der zu durchsuchende Text reingeschrieben (der im Plugin ja sonstwoher kommt). Soweit klar glaube ich.

                      In der zweiten Zeile wird dieser String nun mit dem angegebenen regulären Ausdruck (das hinterm Gleichzeichen) durchsucht. Hierbei werden so genannte Rückreferenzen genutzt, um den gewünschten Kram aus dem String rauszuholen. Ich versuche das mal auseinanderzuziehen:

                      [^(]+
                      steht für eine beliebig lange Zeichenkette solange kein "(" darin vorkommt

                      \(
                      nimmt die "(" weg, die oben als Trennzeichen genutzt wurde

                      ([^*]+)
                      Die Klammern außen sorgen für die Rückreferenzierung. Innen drin wird ein beliebig lange Zeichenkette gesucht mit allen Zeichen außer dem "*". Die Rückreferenz ist bis zum Ende des aktuellen Blocks oder bis zur nächsten Pattern-Matching in der Variable $1 zu finden.

                      \*
                      wieder Trennzeichen, genau wie oben

                      ([^)]+)
                      Und hier, wieder mit Rückreferenz-Klammern, alles was hinter dem "*" steht, solange keine ")" auftaucht. Die Rückreferenz wird, da $1 schon belegt ist, unter gleichen Bedingungen wie oben in $2 gespeichert.

                      Fertig :-)

                      Ich hoffe ich konnte ein wenig Licht ins Dunkel bringen... Reguläre Ausdrücke haben mich seinerzeit auch einmal zum Wahnsinn und wieder zurück gebracht, aber wenn man es einmal verstanden hat, kann man damit wirklich freakiges Zeug anstellen...

                      Grüße
                      Christian

                      Kommentar


                        Zitat von amaridian Beitrag anzeigen
                        Reguläre Ausdrücke haben mich seinerzeit auch einmal zum Wahnsinn und wieder zurück gebracht, aber wenn man es einmal verstanden hat, kann man damit wirklich freakiges Zeug anstellen...
                        Hoi Christian

                        Das kann ich bestätigen. Regex gibt es auch in anderen Sprachen (PHP z.B.)
                        $input =~ m/[^(]+\(([^*]+)\*([^)]+)/;
                        print $1;
                        print $2;
                        Die Variablen $1, $2, $3 ... werden sozusagen den Klammerinhalten zugeordnet, je mehr Klammerpaare, desto mehr Variablen.
                        Grüsse Bodo
                        Fragen gehören ins Forum, und nicht in mein Postfach;
                        EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                        Kommentar


                          Zitat von JuMi2006 Beitrag anzeigen
                          Die Ausgabe ist Zeilenweise so dass ich jede Zeile einzeln durchsuchen kann.
                          Und wo ich die Frage gerade nochmal lese:

                          mit hinzufügen des g Schalters, also
                          Code:
                          $input  =~ m/[^(]+\(([^*]+)\*([^)]+)/g;
                          kann man sich sogar das Zeilenweise durchlaufen sparen. In PHP stehen dann in den Rückreferenzen Arrays mit den gefundenen Werten drin.

                          Lässt man das z.B. auf folgenden String los

                          Code:
                          1-1:1.8.0(0002208.118*kWh)
                          1-2:1.8.2(0001118.1*V)
                          1-3:1.5.3(00324*A)
                          würde $1 als Array folgende Werte enthalten: [0002208.118, 0001118.1, 00324] und $2 [kWh, V, A]

                          Ob das in Perl genau so funktioniert würde ich aber lieber vorher ausprobieren :-)

                          Grüße
                          Christian

                          Kommentar


                            Ehrlich, Jungs, mir fehlt gerade die Zeit mich da (ohne jeglichen persönlichen Antrieb, habe 2xS0 mit 500 imp/kwh) reinzuhängen aber:
                            Ich fände es sinnvoller den vzlogger übergreifend mit SML ans fliegen zu bekommen, als für jeden SML-Zählerwert jetzt nochmal ne RE neu zu erfinden und dann für 5 Zähler 50 Plugins zu machen..
                            Nur nochmal meine 5ct..

                            Makki
                            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                            -> Bitte KEINE PNs!

                            Kommentar


                              In dem ip-symcon thread hat einer seine Lösung gepostet mit OKK für 9,95 EUR von Conrad.
                              http://www.conrad.de/ce/de/product/1...STELLENADAPTER

                              Hab seit gestern auch einen EDL21-Zähler von EMH.

                              LG
                              Klaus

                              Kommentar


                                Danke, das Teil vom Conrad klingt doch nach nem sauberen Plan für gut&günstig..

                                Makki
                                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                                -> Bitte KEINE PNs!

                                Kommentar

                                Lädt...
                                X