Ankündigung

Einklappen
Keine Ankündigung bisher.

Technische Alternative UVR16x2 mit CMI Temperaturen zum Bus übertragen

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

    Technische Alternative UVR16x2 mit CMI Temperaturen zum Bus übertragen

    Ich möchte erstmal Danke sagen für die Weiterentwicklung von smarthoneNG, einfach Klasse das es und wie es weitergeht.
    Aber zu meinem Problem: ich brauche Hilfe bzw einen Anstoß wie ich ein plugin zum Auslesen der Temperaturen aus dem CMI schreiben kann.
    Im Prinzip erhalte ich nachdem ich eine passende Seite für das CMI erstellt habe und diese aufrufe eine html://......cgi Antwort und möchte diese auswerten.
    Ich bin über diese beiden Threads
    https://knx-user-forum.de/forum/supp...-logik-uvr1611
    und
    https://knx-user-forum.de/forum/supp...1611-interesse
    auf die Idee gekommen.
    Die Vorbereitung ist ähnlich wie im ersten Thread:
    mit dem TA- Designer eine Seite erstellen und an den CMI übertragen, dann aber nicht die Seite aufrufen sondern
    http://user:password@cmi/schematic_files/3.cgi
    die Seite sieht dann so aus
    Code:
    Speicher unten 25.9 °C
    Speicher mitte unten 33.9 °C
    Speicher mitte oben 47.3 °C
    Speicher oben 51.6 °C
    Brauchwasser 40.4 °C
    Vorlauf 25.0 °C
    Ruecklauf 24.0 °C
    aussen 19.5 °C
    Kaminofen 23.3 °C
    Kollektor 9999.9 °C
    bzw aus dem Editor
    Code:
    Speicher unten
    26.0 °C</div>
    <div id="pos1">
    Speicher mitte unten
    33.9 °C</div>
    <div id="pos2">
    Speicher mitte oben
    43.9 °C</div>
    <div id="pos3">
    Speicher oben
    48.2 °C</div>
    <div id="pos4">
    Brauchwasser
    42.9 °C</div>
    <div id="pos5">
    Vorlauf
    26.1 °C</div>
    <div id="pos6">
    Ruecklauf
    24.6 °C</div>
    <div id="pos7">
    aussen
    21.1 °C</div>
    <div id="pos8">
    Kaminofen
    23.3 °C</div>
    <div id="pos9">
    Kollektor
    9999.9 °C</div>
    Ich habe keine große Ahnung von programmieren, ich bin im Prinzip ein Sucher und Bastler, wenn ich eine einigermaßen passende Vorlage finde kann ich mir die Umarbeiten. Ich habe über parsen versucht einen Weg zu finden, glaube aber das das in diesem Fall zu kompliziert ist, da die passenden Werte im Prinzip vorliegen. Was ich brauche ist ein Hinweis auf den richtigen Weg wie ich weitermache oder eine Vorlage z.B. ein Plugin das ich Umarbeiten kann.
    Danke schonmal für eure Hilfe.

    und noch eine Frage: wie starte ich in der interaktiven shell ein script zum Testen?
    Zuletzt geändert von element; 07.09.2016, 19:04.

    #2
    Hi, Ich kann dir leider mit der Webabfrage auch nicht weiterhelfen,
    aber ich hab die UVR-1611 Regelung in verbindung mit dem Bootloader, dort bestand immer das problem, wenn man sich zyklisch im Minutentakt die Werte abholt, dass sich der Bootloader gerne mal aufhängt und blockiert. Dadurch war die Webabfrage leider sehr anfällig.
    Wie sich da der neue Datenlogger verhält kann ich nicht sagen, aber vom Hersteller der UVR gibt es einen CAN - KNX Adapter für ca. 150€, den kann ich nur empfehlen.
    Dadurch kannst du dir die Webabfrage-Bastelei sparen.
    Ich hab mir vor ca. einem Jahr den CAN-BC/E gekauft, dieser sendet mir im Minutentakt alle Werte der Regelung auf den KNX. die Werte lassen sich dann in Smarthome weiterverarbeiten. Der Adapter arbeitet auch bidirektional, somit lassen sich auch vom KNX Werte und Zustände zur Regelung senden.

    Gruß, Mike

    Kommentar


      #3
      Den CAN -BC/E kenne ich, das wäre meine zweite Wahl,mir geht's in erster Linie darum zu lernen wie man mit smarthome ein Script oder eine Seite ausliest und weitergibt. Ich glaube auch das das CMI stabiler läuft. Die Hoffnung stirbt ja zuletzt.
      Hinbekommen habeich schonmal den Aufruf des html...cgi Scripts im interaktiven Modus, als nächstes möchte ich ein eigenes Script laden und ausführen, eine Idee die ich hatte waren copy and Paste, dann hab ich gelesen das man Scripte laden kann,weiß aber noch nicht wie.

      Kommentar


        #4
        Es gibt doch meine logic für die 1611

        Kommentar


          #5
          Ich hatte den Thread mit deiner Logik oben verlinkt. Ich bekomme vom CMI wenn ich

          aufrufe definierte Werte ohne das ich die xml Datei brauche. Im Prinzip viel einfacher. Ich kann sogar die Werte so benennen wie ich möchte
          und das " °C " weglassen.
          Ich bekomme mittlerweile über fetch_url die Daten in smarthome frei Haus geliefert, mit user und password Eingabe wenn ich smarthome mit -i starte.
          Code:
          sh.lsh.tools.fetch_url('http://192.168.178.3/schematic_files/3.cgi', 'user', 'pass')
          b'<div id="pos0" >\nsp_u\n26.4</div>\n<div id="pos1" >\nsp_mu\n34.1</div>\n<div id="pos2" >\nsp_mo\n40.9</div>\n<div id="pos3" >\nsp_o\n45.2</div>\n<div id="pos4" >\nbw\n41.3</div>\n<div id="pos5" >\nvl\n26.1</div>\n<div id="pos6" >\nrl\n25.9</div>\n<div id="pos7" >\naus\n32.4</div>\n<div id="pos8" >\nkmo\n26.1</div>\n<div id="pos9" >\nkol\n9999.9</div>\n<div id="pos10" >\n26.4</div>\n'
          Wenn ich wieder Zeit habe werde ich mich weiter daran setzen.
          Fragen die ich hätte wären:
          - wie bekomme ich im interaktiven Modus ein script geladen und führe es aus
          - wie parse ich die Ausgabe
          Ich bin was python angeht blutiger Anfänger, wie gesagt bin für jeden Tip dankbar.

          Kommentar


            #6
            ich mache es immer erst mal hier:
            http://www.tutorialspoint.com/execut...on3_online.php

            erst mal würde ich das ergebnis decoden und dann versuchen str mit split (http://www.tutorialspoint.com/python/string_split.htm) zu zerhacken (das ist jetzt sehr grob):
            PHP-Code:
            str b'<div id="pos0" >\nsp_u\n26.4</div>\n<div id="pos1" >\nsp_mu\n34.1</div>\n<div id="pos2" >\nsp_mo\n40.9</div>\n<div id="pos3" >\nsp_o\n45.2</div>\n<div id="pos4" >\nbw\n41.3</div>\n<div id="pos5" >\nvl\n26.1</div>\n<div id="pos6" >\nrl\n25.9</div>\n<div id="pos7" >\naus\n32.4</div>\n<div id="pos8" >\nkmo\n26.1</div>\n<div id="pos9" >\nkol\n9999.9</div>\n<div id="pos10" >\n26.4</div>\n'
            strstr.decode(encoding='UTF-8',errors='strict')
            str str.split('<div id="pos')
            print (
            str[1]); 

            Kommentar


              #7
              PHP-Code:
              str b'<div id="pos0" >\nsp_u\n26.4</div>\n<div id="pos1" >\nsp_mu\n34.1</div>\n<div id="pos2" >\nsp_mo\n40.9</div>\n<div id="pos3" >\nsp_o\n45.2</div>\n<div id="pos4" >\nbw\n41.3</div>\n<div id="pos5" >\nvl\n26.1</div>\n<div id="pos6" >\nrl\n25.9</div>\n<div id="pos7" >\naus\n32.4</div>\n<div id="pos8" >\nkmo\n26.1</div>\n<div id="pos9" >\nkol\n9999.9</div>\n<div id="pos10" >\n26.4</div>\n'
              strstr.decode(encoding='UTF-8',errors='strict').replace('</div>','')
              str str.split('<div id="pos')
              sp_u str[1].splitlines()[2]
              sp_mu str[2].splitlines()[2]
              sp_mo str[3].splitlines()[2]
              print (
              sp_u);
              print (
              sp_mu);
              print (
              sp_mo); 

              Kommentar


                #8
                es läuft, Danke, besonders an Marcov
                ich lese die Werte aus der UVR16x2 über das CMI mittels einer logic in Smarthome ein.
                Hier die Zusammenfassung, falls es mal einer brauchen kann:
                - So wie Henfri erstelle ich mittels dem TA-Designer im CMI eine Seite mit den Werten die ich auslesen möchte. Diese Seite enthält keinerlei Hydraulikschema - nur die Werte die ich benötige. Der "normale Aufruf sieht folgendermaßen aus: http://userass@cmi/schema.html#3
                CMI-3.jpg
                - der Aufruf der verarbeitet wird so: http://userass@cmi/schematic_files/3.cgi (siehe logic)
                - die logic dazu
                Code:
                #!/usr/bin/env python
                
                str = sh.tools.fetch_url('http://cmi/schematic_files/3.cgi', 'user', 'pass')
                str = str.decode(encoding='UTF-8',errors='strict').replace('</div>','')
                str = str.split('<div id="pos')
                sp_u = str[1].splitlines()[2]
                sp_mu = str[2].splitlines()[2]
                sp_mo = str[3].splitlines()[2]
                sp_o = str[4].splitlines()[2]
                bw = str[5].splitlines()[2]
                vl = str[6].splitlines()[2]
                rl = str[7].splitlines()[2]
                aus = str[8].splitlines()[2]
                kmo = str[9].splitlines()[2]
                kol = str[10].splitlines()[2]
                sh.uvr.speicher_unten(sp_u)
                sh.uvr.speicher_mitte_unten(sp_mu)
                sh.uvr.speicher_mitte_oben(sp_mo)
                sh.uvr.speicher_oben(sp_o)
                sh.uvr.brauchwasser(bw)
                sh.uvr.vorlauf(vl)
                sh.uvr.ruecklauf(rl)
                sh.uvr.aussen(aus)
                sh.uvr.kamin(kmo)
                sh.uvr.kollektor(kol)
                Es läuft mittlerweile 3 Tage ohne das sich das CMI aufgehangen hat. Die logic läuft im 5 min Intervall.
                Visu.jpg

                Kommentar

                Lädt...
                X