Ankündigung

Einklappen
Keine Ankündigung bisher.

8 Byte Objekte

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

    #16

    djskydriver änder mal den eintrag auf dpt:9 log das ganze mal und las uns mal sehen. soll: type: list visu_acl: rw knx_dpt : '275.100' knx_dpt :9 knx_init : 2/7/22 knx_send : 2/7/26 knx_listen : 2/7/22

    Kommentar


      #17
      Schau doch mal im Backend, was da für das Soll Item drin steht.
      solange noch nichts zugewiesen ist, ist das Item auch nicht belegt. Man könnte das Item mit einem Array vorgelegen.

      Kommentar


        #18
        am besten soll mit initial_value: [0,0,0,0] vorbelegen oder in einer Logik die Länge des Arrays abfragen bevor man direkt spezielle Einträge des abfragt.

        Standardmäßig wäre beim Start das soll Item ein Array mit der Länge 0 (also []). Wenn Du nun mit sh.bath.temperature.soll()[0] das erste Element abfragst, muss das einen Fehler liefern.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #19
          Oh man, ja klar, darum kommt die Meldung auch nur einmal beim Start von SH, Danke
          Zuletzt geändert von djskydriver; 10.04.2019, 19:03.

          Kommentar


            #20
            So, Anzeige funktioniert jetzt TOP, nur wird beim Klicken auf die Schaltflächen (+-) intern auf die unhandliche Sollwertliste zugegriffen.
            Ich habs widget nun abgeändert auf:

            Code:
            // ----- device.rtr -----------------------------------------------------------
                $.mobile.activePage.find('div[data-widget="device.rtr"] > div > a[data-icon="minus"]').on( {
                    'click': function (event, response) {
                        var uid = $(this).parent().parent().attr('id');
                        var step = $('#' + uid).attr('data-step');
                        var item = $('#' + uid + 'set').attr('data-item');
                        
                        var temp1 = (Math.round((widget.get(item)[0] - step) * 10) / 10).toFixed(1);
                        widget.get(item)[0] = temp1;
            
                        io.write(item, widget.get(item));
                        
                    }
                });
            Leider wird der Sollwert nicht auf der Oberfläche aktualisiert, erst nach F5 im Browser. Hat jemand von euch ne elegantere Lösung?

            Nachtrag, es wird gar nichts auf den Bus geschrieben:

            Code:
            Item bath.temperature.soll: problem running <bound method KNX.update_item of <plugins.knx.KNX object at 0x682f41b0>>: unorderable types: str() < int()
            Traceback (most recent call last):
              File "/usr/local/smarthome/lib/item.py", line 1039, in __update
                method(self, caller, source, dest)
              File "/usr/local/smarthome/plugins/knx/__init__.py", line 562, in update_item
                self.groupwrite(ga, item(), self.get_iattr_value(item.conf, KNX_DPT))
              File "/usr/local/smarthome/plugins/knx/__init__.py", line 154, in groupwrite
                pkt.extend(self.encode(payload, dpt))
              File "/usr/local/smarthome/plugins/knx/__init__.py", line 266, in encode
                return dpts.encode[str(dpt)](data)
              File "/usr/local/smarthome/plugins/knx/dpts.py", line 366, in en275100
                payload = en9(value[v])
              File "/usr/local/smarthome/plugins/knx/dpts.py", line 161, in en9
                if value < 0:
            TypeError: unorderable types: str() < int()
            Zuletzt geändert von djskydriver; 11.04.2019, 12:14.

            Kommentar


              #21
              Hast Du den Wert mal im Backend geändert? Also z.B. statt [] dann [20,17,11,7] eingeben und in der ETS schauen?
              Sonst sehe ich mir das mal am Wochenende an.

              Kommentar


                #22
                So Jungs, mein Morgen is im A**** aber es hat sich gelohnt:

                Wichtig im Heizungsaktor müssen absolute Sollwerte eingestellt sein!

                Code:
                var uid = $(this).parent().parent().attr('id');
                            var step = $('#' + uid).attr('data-step');
                            var item = $('#' + uid + 'set').attr('data-item');
                
                            var temp1 = (Math.round((widget.get(item)[0] * 1 - step * 1) * 10) / 10).toFixed(2);
                            widget.get(item)[0] = temp1;
                            
                            var temp2 = (Math.round((widget.get(item)[1] * 1 - step * 1) * 10) / 10).toFixed(2);
                            widget.get(item)[1] = temp2;
                            
                            var temp3 = (Math.round((widget.get(item)[2] * 1 - step * 1) * 10) / 10).toFixed(2);
                            widget.get(item)[2] = temp3;
                            
                            var temp4 = (Math.round((widget.get(item)[3] * 1 - step * 1) * 10) / 10).toFixed(2);
                            widget.get(item)[3] = temp4;
                            
                            io.write(item, [parseFloat(temp1), parseFloat(temp2), parseFloat(temp3), parseFloat(temp4)]);
                Für den Codeblock "plus" dasselbe...

                Code:
                temperature:
                            name: Temperatur
                            type: num
                            visu_acl : rw
                            sqlite : yes
                            knx_dpt : 9
                            knx_listen : 2/7/21
                            knx_init : 2/7/21
                            sv_widget: 
                            - "{{ device.rtr('item', 'item.name', 'item', 'item.soll.comfort', 'item.mode', 'item.night', 'item.frost', 'item.state', '', 0.5) }}"
                            - "{{ plot.period('item-plot', 'item', 'avg','24h') }}"
                
                            soll:
                                type: list
                                visu_acl: rw
                                knx_dpt : '275.100'
                                initial_value: [0,0,0,0]
                                knx_init : 2/7/22
                                knx_send : 2/7/26
                                knx_listen : 2/7/22
                                comfort:
                                      visu_acl: rw
                                      eval_trigger: bath.temperature.soll
                                      eval: sh.bath.temperature.soll()[0]
                
                            sollwertverschiebung:
                                type : num
                                visu_acl : rw
                                knx_dpt : 9
                                knx_init : 2/7/25
                                knx_listen : 2/7/25
                                knx_send : 2/7/23

                Kommentar


                  #23
                  Heißt das jetzt er sendet wie gewollt oder gibt es noch Probleme? Welche ETS Version setzt Du ein? Ich habe derzeit die 5.6.6 und die kennt den Datenpunkt Typ 275.x nicht...

                  Kommentar


                    #24
                    Ich hab auch die 5.6.6 Build 1119.
                    Im Gruppenmonitor erkennt er es bei mir halt als 19.001 8-byte Datum/Zeitwert.

                    Er sendet jetzt wie gewollt, man muss eben nur drauf achten, dass beide Nachkommastellen befüllt sind, sonst gibts den letzten Fehler beim Codieren.

                    Kommentar


                      #25
                      Hab jetzt ne Komplette Neuinstallation von SmartVisu+SmarthomeNG hinter mir.
                      Kann mir jeamdn sagen, was das ist, wenn man beim RTR auf + und - Klickt aber keine Daten an den Bus gesendet werden, hab mal die verwendet und bekomme die Ausgabe in der Konsole:

                      Code:
                      [io.smarthome.py] sending data:  {"cmd":"item","id":"living.temperature.soll.comfort","val":"23.0"}
                      In der ETS kommen aber keine Pakete an.
                      Ist aber nur beim RTR so, Dimmer und Schalter funktionieren.

                      Kommentar


                        #26
                        Zitat von djskydriver Beitrag anzeigen
                        ... man muss eben nur drauf achten, dass beide Nachkommastellen befüllt sind, sonst gibts den letzten Fehler beim Codieren.
                        Nur der Vollständigkeit halber nochmal:
                        Beim Attribut knx_dpt muß zwingend der Datentyp string verwendet werden für die Angabe des Datenpunktes, besonders, wenn daran 0 angeschlossen sind (16.000, 275.100)
                        Ein knx_dpt: 275.100 wird eingelesen aus der yaml Datei als 275.1 und daraus entsteht der Datenpunkttyp 275.1 für das knx Plugin. Natürlich findet dann der Encoder/Decoder das dann nicht mehr in seiner Liste als gültigen Datenpunkt.
                        Daher ist die Angabe knx_dpt: '275.100' notwendig.

                        Kommentar


                          #27
                          Du solltest zunächst schauen, ob beim RTR + / - in SmartHomeNG überhaupt was ankommt. (Item Anzeige im Backend ist Dein Freund)

                          Kommentar


                            #28
                            Jo, das habe ich bei den Items.yaml auch überall in Hochkommas angegeben.

                            Kommentar


                              #29
                              Im Backend unter Items sehe ich keine Aktualisierung des Sollwerts aber im Browser kann ich verfolgen, dass über den Websocket die korrekten Daten verschickt werden, dass kann doch nicht sein!?!

                              Gibts noch ne Möglichkeit die Kommunikation zwischen knxd und javascript zu loggen?
                              Zuletzt geändert von djskydriver; 13.04.2019, 10:58.

                              Kommentar


                                #30
                                Die Kommunikation läuft vom Websocket an SmartHomeNG, nicht an den knxd. Wenn also beim SmartHomeNG nichts ankommt, dann wird auch von SmartHomeNG nichts an den knxd weitergeschickt. Du mußt also zunächst schauen, warum bei SmartHomeNG nichts ankommt.
                                Dazu müßtest Du Dich mal mit Logging beschäftigen und dir anzeigen lassen, was das visu_websocket plugin an Infos bekommt...

                                Kommentar

                                Lädt...
                                X