Ankündigung

Einklappen
Keine Ankündigung bisher.

Trying to build an HS Baustein: AskColor(r,g,b) = 14byte text (eg.: "blue")

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

    Trying to build an HS Baustein: AskColor(r,g,b) = 14byte text (eg.: "blue")

    Hello,

    I am trying to build a HS Baustein for asking a colorNAME.

    Input1: R (0-255)
    Input2: G (0-255)
    Input3: B (0-255)

    Output: 14byte text


    Using Python Pynche (See: http://svn.python.org/projects/pytho.../pynche/README )
    Or Google: https://www.google.nl/search?espv=2&...71.fqEQu1YtKuE


    Purpose is for example: A tastsensor to switch the light On/Off and with a button below you can < > walk through the colors. The colorname is then displayed at the TS3+ display, within the QC or on a InfoDisplay2.

    I probably also need an "Input4: Trigger (1bit)"
    Otherwise when you change colors (all 3 values are transmitted in serial and you get 3 output names, only the last one is valid)


    Are any other people intrested or have any feedback/comments/ideas?










    #2
    Does it make sense to see the name of a predefined color when you cycle through RBG-Color?

    The other way round makes sense in my opinion:

    Cycling through a (text-)list of predefined colors and setting the RGB outputs accordingly.
    Gruß Matthias
    EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
    - PN nur für PERSÖNLICHES!

    Kommentar


      #3
      i would put all color names with their hexvalue converted to decimal values as a key in a python dict.

      Code:
      def convert(inputtext):
          return dict(sorted([(int(v,16),k) for (k,v) in re.findall("^([\w-]+)\s*?#([a-f\d]{6})",inputtext,re.MULTILINE)]))
      
      
      def findcolor(colordict,search_color):
          if not colordict:
              return ""
          return colordict.values()[min(xrange(len(colordict)),key=lambda x: abs(colordict.keys()[x]-search_color))]
      with theses functions you can convert http://svn.python.org/projects/pytho...amedcolors.txt to the dict

      the other function will take an integer from your rgb values and find the nearest match in the colorname dict
      Nils

      aktuelle Bausteine:
      BusAufsicht - ServiceCheck - Pushover - HS-Insight

      Kommentar


        #4
        was a little bored ;-)

        here you go.

        Code:
        #5000|"Text"|Remanent(1/0)|Anz.Eingänge|.n.|Anzahl Ausgänge|.n.|.n.
        #5001|Anzahl Eingänge|Ausgänge|Offset|Speicher|Berechnung bei Start
        #5002|Index Eingang|Default Wert|0=numerisch 1=alphanummerisch
        #5003|Speicher|Initwert|Remanent
        #5004|ausgang|Initwert|runden binär (0/1)|typ (1-send/2-sbc)|0=numerisch 1=alphanummerisch
        #5012|abbruch bei bed. (0/1)|bedingung|formel|zeit|pin-ausgang|pin-offset|pin-speicher|pin-neg.ausgang
        
        5000|"Colornames"|0|3|"E1 R"|"E2 G"|"E3 B"|1|"A1 Name"|1.0
        5001|3|1|0|2|1
        
        5002|1|0|0 # R
        5002|2|0|0 # G
        5002|3|0|0 # B
        
        5003|1||0
        5003|2||0
        
        5004|1|""|0|2|1
        
        5012|0|"EI"|"[(0, 'Black'), (32768, 'Green'), (8421376, 'Olive'), (12092939, 'DarkGoldenrod'), (16719022, 'Spicy'), (8388608, 'Maroon'), (2186785, 'Hunter'), (11674146, 'FireBrick'), (7048739, 'OliveDrab'), (7029286, 'Semi-Sweet'), (10824234, 'Brown'), (10506797, 'Sienna'), (16729344, 'OrangeRed'), (10079282, 'Yellow'), (6045747, 'Very'), (9180951, 'Scarlet'), (14423100, 'Crimson'), (16445670, 'Linen'), (7291458, 'Salmon'), (9205843, 'Bronze'), (5526612, 'Dim'), (13458524, 'IndianRed'), (16032864, 'SandyBrown'), (10911844, 'Medium'), (9109643, 'DarkMagenta'), (16747520, 'DarkOrange'), (2330216, 'Sea'), (4879982, 'Dark'), (4342383, 'Corn'), (16416882, 'Salmon'), (13734517, 'Feldspar'), (15308410, 'DarkSalmon'), (128, 'Navy'), (15761536, 'LightCoral'), (4915330, 'Indigo'), (12433259, 'DarkKhaki'), (14596231, 'BurlyWood'), (139, 'DarkBlue'), (13808780, 'Tan'), (9419919, 'Pale'), (7372944, 'SlateGray'), (9922895, 'Dark'), (14381203, 'PaleVioletRed'), (14276889, 'Bright'), (7833753, 'LightSlateGray'), (64154, 'MediumSpringGreen'), (156, 'New'), (6266528, 'CadetBlue'), (9689968, 'Green'), (15319718, 'Light'), (13467442, 'Gold'), (11053224, 'Light'), (16643558, 'OldLace'), (2142890, 'LightSeaGreen'),(16768685, 'NavajoWhite'), (15395502, 'Medium'), (15794175, 'Azure'), (16113331, 'Wheat'), (4620980, 'SteelBlue'), (16770229, 'Moccasin'), (15132922, 'Silver'), (16767673, 'PeachPuff'), (16766720, 'Gold'), (14211263, 'Wheat'), (12632256, 'Silver'), (16758465, 'LightPink'), (3092303, 'Midnight'), (16770244, 'Bisque'), (16740039, 'Neon'), (3316172, 'Sky'), (16761035, 'Pink'), (10040012, 'DarkOrchid'), (3289805, 'Medium'), (205, 'MediumBlue'), (4251856, 'Turquoise'), (52945, 'DarkTurquoise'), (16448210, 'LightGoldenrodYellow'), (2330147, 'Forest'), (14315734, 'Orchid'), (16752762, 'LightSalmon'), (9662683, 'MediumPurple'), (14474460, 'Gainsboro'), (14524637, 'Plum'), (3715294, 'Summer'), (9109504, 'DarkRed'), (5597999, 'DarkOliveGreen'), (6970061, 'SlateBlue'), (11393254, 'LightBlue'), (11397866, 'Turquoise'), (8900331, 'SkyBlue'), (16775930, 'Snow'), (8087790, 'MediumSlateBlue'), (16775920, 'FloralWhite'), (9699539, 'DarkViolet'), (11904578, 'Brass'), (16773365, 'LavenderBlush'), (2321294, 'Steel'), (8900346, 'LightSkyBlue'), (14408560, 'Goldenrod'), (10889770, 'Brown'), (8323327, 'Medium'), (8388352, 'Medium'), (8388736, 'Purple'), (12638681, 'Light'), (32896, 'Teal'), (16775885, 'LemonChiffon'), (9127187, 'SaddleBrown'), (6042391, 'Baker'), (14255897, 'Cool'), (3100463, 'Dark'), (13789470, 'Chocolate'), (14329120, 'Goldenrod'), (2263842, 'ForestGreen'), (7377883, 'Dark'), (25600, 'DarkGreen'), (16775388, 'Cornsilk'), (10145074, 'YellowGreen'), (16753920, 'Orange'), (5123887, 'Indian'), (3329330, 'LimeGreen'), (12088115, 'Copper'), (11584734, 'LightSteelBlue'), (14381275, 'Orchid'), (9315107, 'Firebrick'), (13612347, 'Old'), (10911037, 'Bronze'), (13468991, 'Peru'), (4353858, 'Medium'), (4734347, 'DarkSlateBlue'), (16316671, 'GhostWhite'), (16737095, 'Tomato'), (15787660, 'Khaki'), (5189455, 'Violet'), (16744272, 'Coral'), (8421504, 'Gray'), (7021454, 'Dark'), (3050327, 'SeaGreen'), (13882323, 'LightGrey'), (10461023, 'Khaki'), (9498256, 'LightGreen'), (8741731, 'Dusty'), (11591910, 'PowderBlue'), (6908265, 'DimGray'), (16772045, 'BlanchedAlmond'), (9315179, 'Maroon'), (16711935, 'Magenta'), (1644912, 'MidnightBlue'), (3978097, 'MediumSeaGreen'), (16716947, 'DeepPink'), (5406582, 'Green'), (8855416, 'Dark'), (9333539, 'Sienna'), (65407, 'SpringGreen'), (11403055, 'GreenYellow'), (16777215, 'White'), (13047173, 'MediumVioletRed'), (16720896, 'Orange'), (35723, 'DarkCyan'), (8740418, 'Dark'), (2302862, 'Navy'), (12357519, 'RosyBrown'), (7396243, 'Aquamarine'), (11529966, 'PaleTurquoise'), (13382297, 'Violet'), (10025880, 'PaleGreen'), (3329433, 'Medium'), (15452062, 'New'), (6266783, 'Cadet'), (16777200, 'Ivory'), (10040013, 'Dark'), (15631086, 'Violet'), (11119017, 'DarkGray'), (6737322, 'MediumAquamarine'), (5855659, 'Rich'), (15792383, 'AliceBlue'),(16770273, 'MistyRose'), (49151, 'DeepSkyBlue'), (16738740, 'HotPink'), (10444703, 'Blue'), (9408445, 'Light'), (14390128, 'Tan'), (3100495, 'DarkSlateGray'), (14745599, 'LightCyan'), (4772300, 'MediumTurquoise'), (13487565, 'Very'), (2003199, 'DodgerBlue'), (12211667, 'MediumOrchid'), (8388564, 'Aquamarine'), (16773077, 'PapayaWhip'), (16744192, 'Orange'), (16444375, 'AntiqueWhite'), (14204888, 'Thistle'), (5197615, 'Dark'), (7396315, 'Medium'), (16119260, 'Beige'), (15132410, 'Lavender'), (16711680, 'Red'), (16777184, 'LightYellow'), (4286945, 'RoyalBlue'), (9055202, 'BlueViolet'), (14972979, 'Mandarian'), (8190976, 'LawnGreen'), (65535, 'Cyan'), (15379946, 'Plum'), (6591981, 'CornflowerBlue'), (16774638, 'Seashell'), (255, 'Blue'), (15794160, 'Honeydew'), (14277107, 'Quartz'), (16119285, 'WhiteSmoke'), (16776960, 'Yellow'), (16121850, 'MintCream'), (32767, 'Slate'), (15657130, 'PaleGoldenrod'), (65280, 'Lime'), (5066239, 'Neon')]"|""|0|0|1|0
        5012|0|"1 in EC[1:4]"|"min(enumerate(SN[1]),key=lambda x,EN=EN: abs(x[1][0]-((int(EN[1])<<16)+(int(EN[2])<<8)+int(EN[3]))))"|""|0|0|2|0
        5012|0|"SC[2] and len(SN[2]) > 0"|"SN[2][1][1]"|""|1|0|0|0

        PS: only tested in LogikDebugger not on HS
        Nils

        aktuelle Bausteine:
        BusAufsicht - ServiceCheck - Pushover - HS-Insight

        Kommentar


          #5
          optimizied finding the nearest color, as it is not allways the nearest decimal value.


          http://service.knx-user-forum.de/?co...nload&id=12727

          available as soon as download is approoved

          Code:
          # -*- coding: iso8859-1 -*-
          ## -----------------------------------------------------
          ## Colornames   ### V1.00
          ##
          ## erstellt am: 2017-01-27 14:22
          ## -----------------------------------------------------
          ## Copyright © 2017, knx-user-forum e.V, All rights reserved.
          ##
          ## This program is free software; you can redistribute it and/or modify it under the terms
          ## of the GNU General Public License as published by the Free Software Foundation; either
          ## version 3 of the License, or (at your option) any later version.
          ##
          ## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
          ## without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
          ## See the GNU General Public License for more details.
          ##
          ## You should have received a copy of the GNU General Public License along with this program;
          ## if not, see <http://www.gnu.de/documents/gpl-3.0.de.html>.
          
          #5000|"Text"|Remanent(1/0)|Anz.Eingänge|.n.|Anzahl Ausgänge|.n.|.n.
          #5001|Anzahl Eingänge|Ausgänge|Offset|Speicher|Berechnung bei Start
          #5002|Index Eingang|Default Wert|0=numerisch 1=alphanummerisch
          #5003|Speicher|Initwert|Remanent
          #5004|ausgang|Initwert|runden binär (0/1)|typ (1-send/2-sbc)|0=numerisch 1=alphanummerisch
          #5012|abbruch bei bed. (0/1)|bedingung|formel|zeit|pin-ausgang|pin-offset|pin-speicher|pin-neg.ausgang
          
          5000|"knx-user-forum.de\Colorname"|0|3|"E1 R"|"E2 G"|"E3 B"|1|"A1 Name"|"1.0"
          5001|3|1|0|2|1
          
          5002|1|0|0 # R
          5002|2|0|0 # G
          5002|3|0|0 # B
          
          5003|1||0
          5003|2||0
          
          5004|1|""|0|2|1
          
          5012|0|"EI"|"[((0, 0, 0), 'Black'), ((0, 0, 128), 'Navy'), ((0, 0, 139), 'DarkBlue'), ((0, 0, 156), 'New'), ((0, 0, 205), 'MediumBlue'), ((0, 0, 255), 'Blue'), ((0, 100, 0), 'DarkGreen'), ((0, 127, 255), 'Slate'), ((0, 128, 0), 'Green'), ((0, 128, 128), 'Teal'), ((0, 139, 139), 'DarkCyan'), ((0, 191, 255), 'DeepSkyBlue'), ((0, 206, 209), 'DarkTurquoise'), ((0, 250, 154), 'MediumSpringGreen'), ((0, 255, 0), 'Lime'), ((0, 255, 127), 'SpringGreen'), ((0, 255, 255), 'Cyan'), ((25, 25, 112), 'MidnightBlue'), ((30, 144, 255), 'DodgerBlue'), ((32, 178, 170), 'LightSeaGreen'), ((33, 94, 33), 'Hunter'), ((34, 139,34), 'ForestGreen'), ((35, 35, 142), 'Navy'), ((35, 107, 142), 'Steel'), ((35, 142, 35), 'Forest'), ((35, 142, 104), 'Sea'), ((46, 139, 87), 'SeaGreen'), ((47, 47, 79), 'Midnight'), ((47, 79, 47), 'Dark'), ((47, 79, 79), 'DarkSlateGray'), ((50, 50, 205), 'Medium'), ((50, 153, 204), 'Sky'), ((50, 205, 50), 'LimeGreen'), ((50, 205, 153), 'Medium'), ((56, 176, 222), 'Summer'), ((60, 179, 113), 'MediumSeaGreen'), ((64, 224, 208), 'Turquoise'), ((65, 105, 225), 'RoyalBlue'), ((66, 66, 111), 'Corn'), ((66, 111, 66), 'Medium'), ((70, 130, 180), 'SteelBlue'), ((72, 61, 139), 'DarkSlateBlue'), ((72, 209, 204), 'MediumTurquoise'), ((74, 118, 110), 'Dark'), ((75, 0, 130), 'Indigo'), ((77, 77, 255), 'Neon'), ((78, 47, 47), 'Indian'), ((79, 47, 79), 'Violet'), ((79, 79, 47), 'Dark'), ((82, 127, 118), 'Green'), ((84, 84, 84), 'Dim'), ((85, 107, 47), 'DarkOliveGreen'), ((89, 89, 171), 'Rich'), ((92, 51, 23), 'Baker'), ((92, 64, 51), 'Very'), ((95, 158, 160), 'CadetBlue'), ((95, 159, 159), 'Cadet'), ((100, 149, 237), 'CornflowerBlue'), ((102, 205, 170), 'MediumAquamarine'), ((105, 105, 105), 'DimGray'), ((106, 90, 205), 'SlateBlue'), ((107, 35, 142), 'Dark'), ((107, 66, 38), 'Semi-Sweet'), ((107,142, 35), 'OliveDrab'), ((111, 66, 66), 'Salmon'), ((112, 128, 144), 'SlateGray'), ((112, 147, 219), 'Dark'), ((112, 219, 147), 'Aquamarine'), ((112, 219, 219), 'Medium'), ((119, 136, 153), 'LightSlateGray'), ((123, 104, 238), 'MediumSlateBlue'), ((124, 252, 0), 'LawnGreen'), ((127, 0, 255), 'Medium'), ((127, 255, 0), 'Medium'), ((127, 255, 212), 'Aquamarine'), ((128, 0, 0), 'Maroon'), ((128, 0, 128), 'Purple'), ((128, 128, 0), 'Olive'), ((128, 128, 128), 'Gray'), ((133, 94, 66), 'Dark'), ((133, 99, 99), 'Dusty'), ((135, 31, 120), 'Dark'), ((135, 206, 235), 'SkyBlue'), ((135, 206, 250), 'LightSkyBlue'), ((138, 43, 226), 'BlueViolet'), ((139, 0, 0), 'DarkRed'), ((139, 0, 139), 'DarkMagenta'), ((139, 69, 19), 'SaddleBrown'), ((140, 23, 23), 'Scarlet'), ((140, 120, 83), 'Bronze'), ((142, 35,35), 'Firebrick'), ((142, 35, 107), 'Maroon'), ((142, 107, 35), 'Sienna'), ((143, 143, 189), 'Light'), ((143, 188, 143), 'Pale'), ((144, 238, 144), 'LightGreen'), ((147, 112, 219), 'MediumPurple'), ((147, 219, 112), 'Green'), ((148, 0, 211), 'DarkViolet'), ((151, 105, 79), 'Dark'), ((152, 251, 152), 'PaleGreen'), ((153, 50, 204), 'DarkOrchid'), ((153, 50, 205), 'Dark'), ((153, 204, 50), 'Yellow'), ((154, 205, 50), 'YellowGreen'), ((159, 95, 159), 'Blue'), ((159, 159, 95), 'Khaki'), ((160, 82, 45), 'Sienna'), ((165, 42, 42), 'Brown'), ((166, 42, 42), 'Brown'), ((166, 125, 61), 'Bronze'), ((166, 128, 100), 'Medium'), ((168, 168, 168), 'Light'), ((169, 169, 169), 'DarkGray'), ((173, 216, 230), 'LightBlue'), ((173, 234, 234), 'Turquoise'), ((173, 255, 47), 'GreenYellow'), ((175, 238, 238), 'PaleTurquoise'), ((176, 196, 222), 'LightSteelBlue'), ((176, 224, 230), 'PowderBlue'), ((178, 34, 34), 'FireBrick'), ((181, 166, 66), 'Brass'), ((184, 115, 51), 'Copper'), ((184, 134, 11), 'DarkGoldenrod'), ((186, 85, 211), 'MediumOrchid'), ((188, 143, 143), 'RosyBrown'), ((189, 183, 107), 'DarkKhaki'), ((192, 192, 192), 'Silver'), ((192, 217, 217), 'Light'), ((199, 21, 133), 'MediumVioletRed'), ((204, 50, 153), 'Violet'), ((205, 92, 92), 'IndianRed'), ((205, 127, 50), 'Gold'), ((205, 133, 63), 'Peru'), ((205, 205, 205), 'Very'), ((207, 181, 59), 'Old'), ((209, 146, 117), 'Feldspar'), ((210, 105, 30), 'Chocolate'), ((210, 180, 140), 'Tan'), ((211, 211, 211), 'LightGrey'), ((216, 191, 216), 'Thistle'), ((216, 216, 191), 'Wheat'), ((217, 135, 25), 'Cool'), ((217, 217, 25), 'Bright'), ((217, 217, 243), 'Quartz'), ((218, 112, 214), 'Orchid'), ((218, 165, 32), 'Goldenrod'), ((219, 112, 147), 'PaleVioletRed'), ((219, 112, 219), 'Orchid'), ((219, 147, 112), 'Tan'), ((219, 219, 112), 'Goldenrod'), ((220, 20, 60), 'Crimson'), ((220, 220, 220), 'Gainsboro'), ((221, 160, 221), 'Plum'), ((222, 184, 135), 'BurlyWood'), ((224, 255, 255), 'LightCyan'), ((228, 120, 51), 'Mandarian'), ((230, 230, 250), 'Lavender'), ((230, 232, 250), 'Silver'), ((233, 150, 122), 'DarkSalmon'), ((233, 194, 166), 'Light'), ((234, 173, 234), 'Plum'), ((234, 234, 174), 'Medium'), ((235, 199, 158), 'New'), ((238, 130,238), 'Violet'), ((238, 232, 170), 'PaleGoldenrod'), ((240, 128, 128), 'LightCoral'), ((240, 230, 140), 'Khaki'), ((240, 248, 255), 'AliceBlue'), ((240, 255, 240), 'Honeydew'), ((240, 255, 255), 'Azure'), ((244, 164, 96), 'SandyBrown'), ((245, 222, 179), 'Wheat'), ((245, 245, 220), 'Beige'), ((245, 245, 245), 'WhiteSmoke'), ((245, 255, 250), 'MintCream'), ((248, 248, 255), 'GhostWhite'), ((250, 128, 114), 'Salmon'), ((250, 235, 215), 'AntiqueWhite'), ((250, 240, 230), 'Linen'), ((250, 250, 210), 'LightGoldenrodYellow'), ((253, 245, 230), 'OldLace'), ((255, 0, 0), 'Red'), ((255, 0, 255), 'Magenta'), ((255, 20, 147), 'DeepPink'), ((255, 28, 174), 'Spicy'), ((255, 36, 0), 'Orange'), ((255, 69, 0), 'OrangeRed'), ((255, 99, 71), 'Tomato'), ((255, 105, 180), 'HotPink'), ((255, 110, 199), 'Neon'), ((255, 127, 0), 'Orange'), ((255, 127, 80), 'Coral'), ((255, 140, 0), 'DarkOrange'), ((255, 160, 122), 'LightSalmon'), ((255, 165, 0), 'Orange'), ((255, 182, 193), 'LightPink'), ((255, 192, 203), 'Pink'), ((255, 215, 0), 'Gold'), ((255, 218, 185), 'PeachPuff'), ((255, 222, 173), 'NavajoWhite'), ((255, 228, 181), 'Moccasin'), ((255, 228, 196), 'Bisque'), ((255, 228, 225), 'MistyRose'), ((255, 235, 205), 'BlanchedAlmond'), ((255, 239, 213), 'PapayaWhip'), ((255, 240, 245), 'LavenderBlush'), ((255, 245, 238), 'Seashell'), ((255, 248, 220), 'Cornsilk'), ((255, 250, 205), 'LemonChiffon'), ((255,250, 240), 'FloralWhite'), ((255, 250, 250), 'Snow'), ((255, 255, 0), 'Yellow'), ((255, 255, 224), 'LightYellow'), ((255, 255, 240), 'Ivory'), ((255, 255, 255), 'White')]"|""|0|0|1|0
          5012|0|"1 in EC[1:4]"|"min(enumerate(SN[1]),key=lambda x,EN=EN: (abs(x[1][0][0]-int(min(EN[1],255))) , abs(x[1][0][1] -int(min(EN[2],255))), abs(x[1][0][2] - int(min(EN[3],255))) ) )"|""|0|0|2|0
          5012|0|"SC[2] and len(SN[2]) > 0"|"SN[2][1][1]"|""|1|0|0|0
          Nils

          aktuelle Bausteine:
          BusAufsicht - ServiceCheck - Pushover - HS-Insight

          Kommentar


            #6
            Zitat von NilsS Beitrag anzeigen


            http://service.knx-user-forum.de/?co...nload&id=12727

            available as soon as download is approoved
            Done!

            Kommentar


              #7
              Habe ich das richtig verstanden, dass der Baustein für Männer ist, die eigentlich nur die Grundfarben beim Namen benennen können um zu lernen?

              Wenn ja ich mag Bausteine die die Welt nicht unbedingt braucht

              Kommentar


                #8
                Seit wann geht es bei sowas darum was man braucht ;-) es geht um die Herausforderung es zu machen.
                Nils

                aktuelle Bausteine:
                BusAufsicht - ServiceCheck - Pushover - HS-Insight

                Kommentar

                Lädt...
                X