Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin für die Grünbeck Softliq brauch eure Hilfe

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

    #16
    Am einfachsten sowas wie oben schon von Msinn beschrieben

    Code:
    wert = r.text[r.text.find('<D_Y_1>')+7:r.text.find('</D_Y_1>')]
    wenn es ein integer wert sein soll noch ein wert = int(wert) oder bei Fließkommazahl ein wert = float(wert)

    Kommentar


      #17
      Mann ich hab das 1000 mal brobiert! Danke dir bmx!!!!
      Es geht Hura!!!
      Hier der fertiger Code!
      Code:
      import requests
      
      
      r = requests.post('http://100.100.0.31/mux_http/', data ={'id': '961', 'show': 'D_Y_1~'})
      wert = r.text[r.text.find('<D_Y_1>')+7:r.text.find('</D_Y_1>')]
      sh.Wasserverbrauch.verbrauch_gestern(float(wert))
      
      print(wert)

      Kommentar


        #18
        Bei der nächsten Abfrage gibt er mir 1>0.00 raus und kann den Wert nicht ins Item schreiben:
        Code:
        Error 'could not convert string to float: '1>0.00'' while evaluating
        Hier der Code:
        Code:
        import requests
        
        
        r = requests.post('http://100.100.0.31/mux_http/', data ={'id': '961', 'show': 'D_A_1_1~','code': '005'})
        aktuellerdurchfluss = r.text[r.text.find('<D_A_1_1>')+7:r.text.find('</D_A_1_1>')]
        sh.Wasserverbrauch.aktueller_durchfluss(float(aktu ellerdurchfluss))
        
        print(aktuellerdurchfluss)
        der Wert ist grad tatsächlich 0.00

        Was kann da sein? Bin grad nicht Zuhause um mal es mit einem anderem Wert zu testen!

        Kommentar


          #19
          Hier nochmal die Ausgabe:
          Code:
          import requests
          
          
          r = requests.post('http://100.100.0.31/mux_http/', data ={'id': '961', 'show': 'D_A_1_1~','code': '005'})
          aktuellerdurchfluss = r.text[r.text.find('<D_A_1_1>')+7:r.text.find('</D_A_1_1>')]
          
          
          print(r.text)
          print(aktuellerdurchfluss)
          Code:
          <data><code>ok</code><D_A_1_1>0.00</D_A_1_1></data>
          1>0.00
          woher kommt das 1>

          Kommentar


            #20
            statt 7 musst Du da wohl 9 addieren ...

            Kommentar


              #21
              Zitat von bmx Beitrag anzeigen
              statt 7 musst Du da wohl 9 addieren ...
              Bist der Beste!!! Danke das wars!! Jetzt kann ich die restlichen Werte mit Login und ohne alle ein pflegen!!!

              Kommentar


                #22
                Du kannst Dir das auch noch einfacher machen:

                erst per pip3 install xmltodict --user die Bibliothek installieren

                dann in der Logik

                Code:
                import xmltodict
                import requests
                
                r = requests.post('http://100.100.0.31/mux_http/', data ={'id': '961', 'show': 'D_A_1_1~','code': '005'})
                
                responsedict = xmltodict.parse(r.text)
                data = responsedict['data']
                
                wert = data['D_Y_1']
                # oder
                Wert = data['D_A_1_1']
                # je nachdem wonach Du oben gefragt hast.

                Kommentar


                  #23
                  Zitat von bmx Beitrag anzeigen
                  Du kannst Dir das auch noch einfacher machen:

                  erst per pip3 install xmltodict --user die Bibliothek installieren

                  dann in der Logik

                  Code:
                  import xmltodict
                  import requests
                  
                  r = requests.post('http://100.100.0.31/mux_http/', data ={'id': '961', 'show': 'D_A_1_1~','code': '005'})
                  
                  responsedict = xmltodict.parse(r.text)
                  data = responsedict['data']
                  
                  wert = data['D_Y_1']
                  # oder
                  Wert = data['D_A_1_1']
                  # je nachdem wonach Du oben gefragt hast.
                  Hab es geschnallt, hab ein Wert mit "D_Y_2_14" also hab ich es auf 10 gesetzt!! läuft!!

                  Werde ich mal testen! Danke dir! Aber es reicht mir jetzt, ich loge es jeden Tag mit, ab jetzt und weis was ich dann im Monat,Woche und Jahr verbraten hab, natürlich mit Kosten Angabe. Das hab ich mit dem Strom so gemacht# voll cool, rückwirkend geht es leider nicht mehr, mir egal. Muss jetzt dann nur noch ne Logik bauen die mir alle Tage über die Zeit zusammen zählt! Nächstes Projekt!! ;-)

                  Kommentar


                    #24
                    Guten Morgen

                    Ich habe das mal wieder raus gekramt, weil ich meine softliQ:SC18 abfragen will und dafür mein erstes Plugin schreibe. So wie ich das sehe gibt es ja noch kein fertiges Plugin hierfür. Die Abfrage klappt schon mal mit dem Python CLI.
                    Hat jemand eine softliQ:SC23 oder softliQ:MC und könnte mal testen was bei diesen raus kommt? Ne 18er habe ich wie gesagt selber.

                    Ich poste dann eine kurze Anleitung wie man die Testabfrage macht. Voraussetzung ist, dass mindestens das Python Paket requests installiert ist und xmltodict schadet auch nichts, ist aber für den ersten Test nicht nötig.

                    Ergebnis wird dann z.B. sowas sein:

                    Code:
                    <data><code>ok</code><D_A_1_1>0.00</D_A_1_1><D_A_1_2>0.22</D_A_1_2><D_A_2_2>353</D_A_2_2><D_A_3_1> 29</D_A_3_1><D_A_3_2>56</D_A_3_2><D_Y_1>37</D_Y_1><D_A_1_3>6.0</D_A_1_3><D_A_2_3>99</D_A_2_3><D_Y_5>0</D_Y_5><D_A_2_1>0.0</D_A_2_1></data>
                    
                    oder etwas aufbereitet
                    
                    OrderedDict([('code', 'ok'), ('D_A_1_1', '0.00'), ('D_A_1_2', '0.22'), ('D_A_2_2', '353'), ('D_A_3_1', '29'), ('D_A_3_2', '56'), ('D_Y_1', '37'), ('D_A_1_3', '6.0'), ('D_A_2_3', '99'), ('D_Y_5', '0'), ('D_A_2_1', '0.0')])
                    Das sind die Werte, die man auch im Webinterface der Anlage unter "Aktualwerte" bekommt, z.B. Durchluss, Restkapazität, Restdauer Wartungsintervall etc.

                    Diese Werte in num oder str umzuwandeln und Items zuzuweisen sollte dann eigentlich Routine sein. Nur habe ich keine Routine im Plugin schreiben, sonst wäre das ganz schnell fertig

                    Vielleicht habe ich bis über Pfingsten schon mal ein lauffähiges Plugin zum testen.

                    Gruß, Martin

                    Kommentar


                      #25
                      Zitat von Sipple Beitrag anzeigen
                      Guten Morgen

                      Ich habe das mal wieder raus gekramt, weil ich meine softliQ:SC18 abfragen will und dafür mein erstes Plugin schreibe. So wie ich das sehe gibt es ja noch kein fertiges Plugin hierfür. Die Abfrage klappt schon mal mit dem Python CLI.
                      Hat jemand eine softliQ:SC23 oder softliQ:MC und könnte mal testen was bei diesen raus kommt? Ne 18er habe ich wie gesagt selber.

                      Ich poste dann eine kurze Anleitung wie man die Testabfrage macht. Voraussetzung ist, dass mindestens das Python Paket requests installiert ist und xmltodict schadet auch nichts, ist aber für den ersten Test nicht nötig.

                      Ergebnis wird dann z.B. sowas sein:

                      Code:
                      <data><code>ok</code><D_A_1_1>0.00</D_A_1_1><D_A_1_2>0.22</D_A_1_2><D_A_2_2>353</D_A_2_2><D_A_3_1> 29</D_A_3_1><D_A_3_2>56</D_A_3_2><D_Y_1>37</D_Y_1><D_A_1_3>6.0</D_A_1_3><D_A_2_3>99</D_A_2_3><D_Y_5>0</D_Y_5><D_A_2_1>0.0</D_A_2_1></data>
                      
                      oder etwas aufbereitet
                      
                      OrderedDict([('code', 'ok'), ('D_A_1_1', '0.00'), ('D_A_1_2', '0.22'), ('D_A_2_2', '353'), ('D_A_3_1', '29'), ('D_A_3_2', '56'), ('D_Y_1', '37'), ('D_A_1_3', '6.0'), ('D_A_2_3', '99'), ('D_Y_5', '0'), ('D_A_2_1', '0.0')])
                      Das sind die Werte, die man auch im Webinterface der Anlage unter "Aktualwerte" bekommt, z.B. Durchluss, Restkapazität, Restdauer Wartungsintervall etc.

                      Diese Werte in num oder str umzuwandeln und Items zuzuweisen sollte dann eigentlich Routine sein. Nur habe ich keine Routine im Plugin schreiben, sonst wäre das ganz schnell fertig

                      Vielleicht habe ich bis über Pfingsten schon mal ein lauffähiges Plugin zum testen.

                      Gruß, Martin
                      Ist schon ein paar Jahre her, aber Pfingsten steht bald vor der Türe (Achtung Ironie).

                      Hast du schon ein lauffähiges Plugin? Wäre zum Testen und auch mitentwickeln dabei.

                      Kommentar


                        #26
                        ich hab eine softliQ:SD21 und kann auch mit testen

                        Kommentar


                          #27
                          Aber ja doch. Schon Jahre her

                          Hier der "bessere" Thread: https://knx-user-forum.de/forum/supp...liq-sc18-23-mc

                          Funktioniert immer noch bei mir.
                          ​Da es schon spät ist, melde ich mich morgen nochmal.

                          Kommentar


                            #28
                            Guten Morgen

                            Hier noch einige Hinweise.
                            In dem von mir verlinkten, passenderen Thread findet ihr die aktuelle Version 1.0.1.
                            Seit Jahren nichts mehr dran gemacht (never change a running system), weil das immer noch das tut, was ich brauche.
                            Einschränkungen/bekannte Probleme:

                            1. Funktioniert meines Wissens nach NUR mit SC18/23 und MC. Also NICHT mit SD oder anderen Anlagen.
                            2. Die funktionierenden Anlagen sind ab und an etwas schlecht gelaunt und antworten dann nicht korrekt auf eine Anfrage. Das kann man getrost ignorieren, weil man da nichts dagegen machen kann und sich das wieder von selbst fängt.
                            3. Es geht nur lesender Zugriff. Jeder Versuch meinerseits, einen Schreibzugriff zu implementieren (z.B. Wartungsintervall zurücksetzen), ist damals kläglich gescheitert. Habe aber für mich festgestellt, dass ich das eh nicht brauche.
                            4. Ich halte mich immer noch für einen blutigen Anfänger, was Python und die Internas von SmarthomeNG angeht. Damals war das natürlich noch schlechter, daher ist das sicher keine hoch elegante, preisverdächtige Lösung. Jeder darf das gerne erweitern, robuster machen, etc.

                            Gruß, Martin

                            Kommentar


                              #29
                              Guten Tag

                              ich habe ein Hardwaretausch bekommen auf SD18 jetzt geht das Plugin nicht mehr, hatte die SC18 davor.

                              Kommentar


                                #30
                                Danke - ich teste das mal die Tage mit der SC18

                                Kommentar

                                Lädt...
                                X