Ankündigung

Einklappen

Aufruf

Bitte helft bei unserer Spendenaktion: Spendenaktion Helmut Lintschinger
Mehr anzeigen
Weniger anzeigen

HSV Steuerung Dali Gateway

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

    HSV Steuerung Dali Gateway

    Hallo ihr Lieben,

    ich habe leider wieder ein kleines Problem.

    Ich versuche meine LED anzusteuern ... leider klappt das ganze nicht so richtig. Die Visu zeigt mir nie den IST Zustand an und die Regelung ist sehr verlangsamt.

    Folgende Einstellungen habe ich vorgenommen:

    Code:
    Wohnzimmer:
        Licht:
            Decke_Highboard:
                schalten:
                    type: num
                    visu_acl: rw
                    knx_dpt: 1
                    knx_listen: 2/0/1
                    knx_send: 2/0/0
                    knx_init: 2/0/1
    
                sperren:
                    type: num
                    visu_acl: rw
                    knx_dpt: 1
                    knx_listen: 2/0/7
                    knx_send: 2/0/5
                    knx_init: 2/0/7
    
                Dimmwert:
                    type: num
                    visu_acl: rw
                    knx_dpt: '5.001'
                    knx_listen: 2/0/4
                    knx_send: 2/0/3
                    knx_init: 2/0/4
    
                Farbton:
                    type: num
                    visu_acl: rw
                    knx_dpt: '5'
                    knx_listen: 6/0/4
                    knx_send: 6/0/0
                    knx_init: 6/0/4
    
                Saettigung:
                    type: num
                    visu_acl: rw
                    knx_dpt: '5.001'
                    knx_listen: 6/0/5
                    knx_send: 6/0/1
                    knx_init: 6/0/5
    und in der HTML:
    Code:
    <td align="left" width="55%">
    LED Fenster
    </td>
    <td>
    {{ basic.color('Decke_Fenster.Farbton', 'UG.Wohnzimmer.Decke_Fenster.Farbton', 'UG.Wohnzimmer.Licht.Decke_Fenster.Saettigung', 'UG.Wohnzimmer.Licht.Decke_Fenster.Dimmwert', '', '', '128', '19', 'slider', 'hsv') }}
    Zuletzt geändert von bmx; 20.05.2020, 07:37. Grund: Einrückung prüfen!

    #2
    1. Bitte bringe die Struktur des Codes in Ordnung, so dass man die Einrückungen sehen kann. Die sind wichtig für die richtige Definition der Items. Es gibt viele Hinweise hier im Forum, wie man das macht. z.B. hier.
    2. Die Anführungszeichen bei den dpts sind überflüssig
    3. knx_listen ist in knx_init enthalten. Es macht keinen Sinn, beides zu definieren.
    4. Die Items, die Du gepostet hast, passen nicht zum html-code ("Highboard" vs "Fenster", "ug" fehlt)
    5. Prüfe, ob Dein Aktor auf den Gruppenadressen 2/0/4, 6/0/4 und 6/0/5 die Istwerte zurück meldet, oder nur den Status.

    Kommentar


      #3
      wie immer hast du völlig recht!

      1. das muss ich morgen in Ruhe machen, me culpa
      2. ok nehme ich raus, ist das ein Problem?
      3. ok DANKE!
      4. richtig dieser war gemeint, ist aber die gleich Struktur

      Code:
      {{ basic.color('Decke_Highboard.Farbton', 'UG.Wohnzimmer.Licht.Decke_Highboard.Farbton', 'UG.Wohnzimmer.Licht.Decke_Highboard.Saettigung', 'UG.Wohnzimmer.Licht.Decke_Highboard.Dimmwert', '0' ,'360.100.100' , '7', '10', 'slider', 'hsv') }}
      5. Wie um himmelswillen mache ich das ohne ETS?

      Kommentar


        #4
        Das Attribut "max" darf zwar eine Liste sein, aber die Listelemente werden mit Kommas getrennt, also '[360, 0, 0]'.

        ohne ETS kannst Du das Handbuch des Aktors befragen, welche GA's dieser hat. Und dann mit den knx-Tools Adressen abfragen bzw. auf dem Bus mithören.

        Kommentar


          #5
          Die Doku sagt Dir aber nur, welche Kommunikationsobjekte der Aktor hat. Welche davon an Gruppenadressen und wenn ja an welche verbunden worden sind, verrät Dir nur die ETS.

          Wenn Du keine ETS hast, hat Dir also jemand anders die Installation eingerichtet. Derjenige müsste (wenn er proffessionell gearbeitet hat) Dir eine Projektdoku hinterlassen haben, in der Du die Information auch finden kannst.
          Viele Grüße
          Martin

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

          Kommentar


            #6
            Projektdoku ist natürlich noch besser. Wenn die nicht vorhanden ist, kann man mit etwas detektivischem Spürsinn um die bereits bekannten Adressen herum forschen - sicherheitshalber nur lesend! Ich würde dabei erstmal davon ausgehen, dass der Elektriker die GAs in der Reihenfolge vergeben hat, die in der Doku des Aktors geschrieben steht. Mithören auf dem Bus, während man die Werte an den installierten Tastern manuell verstellt, kann auch eine gute Informationsquelle sein

            Kommentar


              #7
              Zitat von wvhn Beitrag anzeigen
              Und dann mit den knx-Tools Adressen abfragen bzw. auf dem Bus mithören.
              Welche knx-Tools (außer der ETS) kann ich zum mithören verwenden?

              Ich habe die Projektdatei der ETS vom Errichter erhalten, die nützt mir aber nur was mit der ETS oder mit einem Programm welches diese auslesen kann, ODER?

              Kommentar


                #8
                Du kannst den Errichter doch um einen Bericht und einen Export der Gruppenadressen bitten. Wenn das nicht geht ist bestimmt jemand aus dem Forum so nett und importiert Dein Projekt um einen Bericht und eine Export zu generieren...

                Kommentar


                  #9
                  Zitat von bmx Beitrag anzeigen
                  Du kannst den Errichter doch um einen Bericht und einen Export der Gruppenadressen bitten. Wenn das nicht geht ist bestimmt jemand aus dem Forum so nett und importiert Dein Projekt um einen Bericht und eine Export zu generieren...
                  Perfekt, heißt die ETS generiert eine solche Dokumentation automatisch!?

                  Ich gehe mal davon aus, dass ich dies nicht mit der ETS-Testversion machen kann!?

                  Sobald er aus dem Urlaub ist werde ich ihn fragen, oder jemand ist so nett und erstellt diese Doku für mich. ...mal ganz unauffällig nach Bremen schaue
                  Zuletzt geändert von Medicusi; 20.05.2020, 18:52.

                  Kommentar


                    #10
                    Hast Du schon mal die oben genannten Fehler korrigiert und das Ergebnis getestet?
                    Das kntool gehört zum knxd und ist dort im github Wiki beschrieben. Kommt bei einer Google-Suche gleich nach der Werbung.

                    Auf dem Bus mithören geht z.B. mit
                    Code:
                    knxtool groupsocketlisten ip:localhost 
                    Zuletzt geändert von wvhn; 20.05.2020, 21:36.

                    Kommentar


                      #11
                      Zitat von wvhn Beitrag anzeigen
                      3. knx_listen ist in knx_init enthalten. Es macht keinen Sinn, beides zu definieren.
                      ist es nicht so dass

                      listen = hört während der smartVisu hoch gefahren ist immer auf die GA
                      init = wenn ich einmal neu starte, wird die Adresse abgefragt!?

                      Dann würde ich doch zum Beispiel beim hochfahren die Wetterdaten so lange nicht bekommen, bis sich die Temp. verändert hat

                      Also wenn nur init und listen kann ich weglassen?

                      ODER?
                      Zuletzt geändert von Medicusi; 22.05.2020, 20:18.

                      Kommentar


                        #12
                        knx_listen funktioniert so wie Du es beschreibst.
                        knx_init fragt beim Hochfahren von smarthomeNG die Adresse auf dem Bus ab und verhält sich dann wie knx_listen.
                        knx_cache holt sich beim Hochfahren den letzten gespeicherten Wert und verhält sich dann wie knx_listen.
                        Zuletzt geändert von bmx; 23.05.2020, 06:47.

                        Kommentar


                          #13
                          Ich habe jetzt mit einem Freund die halbe Nacht probiert ... kann es sein das bisher niemand diese HSV Steuerung mit der
                          "basic.color" zum laufen gebracht hat?

                          Die Widges scheint eine Fehler zu haben ... der erste Befehl am Slider wird übernommen und dann passiert nichts mehr und werden nur Fehler ausgeworfen.

                          Das gleiche Fehlerbild wurde hier im Forum 2017 schon mal beschrieben.

                          Die Visu der HSV Slider ist wunderbar ... nur scheint sich ein Fehler eingeschlichen zu haben.

                          Kommentar


                            #14
                            Kannst Du etwas spezifischer werden?
                            Wenn Fehler geschmissen werden, dann kopiere bitte die Meldungen und poste die hier. Sonst kommen wir ja nicht weiter.
                            Den Link zu dem Thread aus 2017 kannst Du bitte auch hier posten.

                            Kommentar


                              #15
                              Hallo zusammen,

                              ich habe den "Fehler" gefunden.

                              Korrektur in der basic.js Zeile "474" die -1 darf dort nicht hin, da er sonst die Änderung von Zeile "477" >0 nicht versteht.

                              Habe die -1 in die 475 genommen und nun läuft es!

                              DANKE FÜR DEINE EURE HILFE!

                              Code:
                              // type = slider
                              $.widget("sv.basic_color_slider", $.sv.basic_color, {
                              
                              	initSelector: 'div[data-style="slider"][data-widget="basic.color"]',
                              
                              	_timer: false,
                              
                              	_events: {
                              
                              		'slidestop input': function (event) {
                              			this._timer = false;
                              			this._change();
                              		},
                              
                              		'change input': function (event) {
                              			this._change();
                              		},
                              
                              	},
                              
                              	_change: function() {
                              		if (!this._timer) {
                                          this._timer = true;
                              
                              			var widget = this.element.closest('div[data-style="slider"]');
                              			var colormodel = this.options.colormodel;
                              			var max = String(this.options.max).explode();
                              			var min = String(this.options.min).explode();
                              			// ensure max and min as array of 3 floats (fill by last value if array is shorter)
                              			for(var i = 0; i <= 2; i++) {
                              				max[i] = parseFloat(max[Math.min(i, max.length-1)])
                              				min[i] = parseFloat(min[Math.min(i, min.length-1)])
                              			}
                              
                              			// get value of all 3 sliders
                              			var values = widget.find('input').map(function(){ return $(this).val(); }).get();
                              			switch(colormodel) {
                              				case 'rgb':
                              					values = fx.hsv2rgb(values[0],values[1],values[2]);
                              					values = [
                              						Math.round(values[0] / 255 * (max[0] - min[0])) + min[0],
                              						Math.round(values[1] / 255 * (max[1] - min[1])) + min[1],
                              						Math.round(values[2] / 255 * (max[2] - min[2])) + min[2]
                              					];
                              					break;
                              				case 'hsl':
                              					values = fx.hsv2hsl(values[0],values[1],values[2]);
                              					values = [
                              						Math.round(values[0] / 360 * (max[0] - min[0])) + min[0],
                              						Math.round(values[1] / 100 * (max[1] - min[1])) + min[1],
                              						Math.round(values[2] / 100 * (max[2] - min[2])) + min[2]
                              					];
                              					break;
                              				case 'hsv':
                              					values = [
                              						Math.round(values[0] / 360 * (max[0] - min[0])) + min[0],
                              						Math.round(values[1] / 100 * (max[1] - min[1])) + min[1],
                              						Math.round(values[2] / 100 * (max[2] - min[2])) + min[2]
                              					];
                              					break;
                              			}
                              
                              			var oldColors = this._mem;
                              			var diffCount = oldColors == null ? 3 : (values[0] != oldColors[0]) + (values[1] != oldColors[1]) + (values[2] != oldColors[2]);
                              			this._lockfor = diffCount -1; // lock widget to ignore next 2 updates
                              
                              			if(diffCount > 0) {
                              				var items = String(this.options.item).explode();
                              				if(items[1] == '') { // all values as list in one item
                              					io.write(items[0], values);
                              				}
                              				else {
                              					io.write(items[0], values[0]);
                              					io.write(items[1], values[1]);
                              					io.write(items[2], values[2]);
                              				}
                              				this._mem = values;
                              
                              				this._delay(function() { if(this._timer) { this._timer = false; this._change(); } }, 400);
                              			}
                              		}
                              	}
                              });
                              Zuletzt geändert von Medicusi; 24.05.2020, 18:41.

                              Kommentar

                              Lädt...
                              X