Ankündigung
Einklappen
Keine Ankündigung bisher.
Plugin für die Grünbeck Softliq brauch eure Hilfe
Einklappen
X
-
Guten Tag
ich habe ein Hardwaretausch bekommen auf SD18 jetzt geht das Plugin nicht mehr, hatte die SC18 davor.
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
Ist schon ein paar Jahre her, aber Pfingsten steht bald vor der Türe (Achtung Ironie).Zitat von Sipple Beitrag anzeigenGuten 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:
Das sind die Werte, die man auch im Webinterface der Anlage unter "Aktualwerte" bekommt, z.B. Durchluss, Restkapazität, Restdauer Wartungsintervall etc.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')])
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
Hast du schon ein lauffähiges Plugin? Wäre zum Testen und auch mitentwickeln dabei.
Einen Kommentar schreiben:
-
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:
Das sind die Werte, die man auch im Webinterface der Anlage unter "Aktualwerte" bekommt, z.B. Durchluss, Restkapazität, Restdauer Wartungsintervall etc.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')])
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
Einen Kommentar schreiben:
-
Hab es geschnallt, hab ein Wert mit "D_Y_2_14" also hab ich es auf 10 gesetzt!! läuft!!Zitat von bmx Beitrag anzeigenDu 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.
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!! ;-)
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
Bist der Beste!!! Danke das wars!! Jetzt kann ich die restlichen Werte mit Login und ohne alle ein pflegen!!!Zitat von bmx Beitrag anzeigenstatt 7 musst Du da wohl 9 addieren ...
Einen Kommentar schreiben:
-
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)woher kommt das 1>Code:<data><code>ok</code><D_A_1_1>0.00</D_A_1_1></data> 1>0.00
Einen Kommentar schreiben:
-
Bei der nächsten Abfrage gibt er mir 1>0.00 raus und kann den Wert nicht ins Item schreiben:
Hier der Code:Code:Error 'could not convert string to float: '1>0.00'' while evaluating
der Wert ist grad tatsächlich 0.00Code: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)
Was kann da sein? Bin grad nicht Zuhause um mal es mit einem anderem Wert zu testen!
Einen Kommentar schreiben:
-
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)
Einen Kommentar schreiben:


Einen Kommentar schreiben: