μμ μ±μ μν΄ λΉνΈ μ°μ°μλ₯Ό νμ©ν΄μΌ ν©λλ€. νμ¬ μ μμ λν μννΈλ₯Ό μννλ €λ©΄ λ€μμ μνν΄μΌ ν©λλ€.
{{ (12).__rshift__(other) }}
λΉνΈ μ°μ°μ ν νλ¦Ώμμ μ¬μ©νλ©΄ μ λ©λλ€. νμν κ²½μ° κΈ°λ₯μ λ ΈμΆν©λλ€.
μμ° μ£Όκ΄μ μΈ μ μ₯μ΄λ€μ.
μ λ ν μ΄μμ€ν΄νΈμ ν¨κ» jinjaλ₯Ό μ¬μ©νκ³ RGB μμμ μ‘°μνκ³ μμ΅λλ€. {'r': 255, 'g': 255, 'b': 255}
μ 0xRRGGBB
νμμΌλ‘ λ λλ§νκ³ μΆμ§λ§ jinjaμλ μ΄λ¬ν νΈλ¦¬ν κΈ°λ₯μ΄ μκΈ° λλ¬Έμ μ΄μ΄ μμ΅λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν μ μ μ¬νμ 무μμ
λκΉ? κΈ°λ₯μ ꡬννλ©΄ μ€μ λ‘ μλνμ§λ§ λκ΅°κ°κ° 0xBBGGRR
λ₯Ό μνλ©΄ μ΄λ»κ² λ κΉμ? λ λλ§μ μ μ κ° κ²°μ νκ² νλ κ²μ΄ μ§μμ λͺ«μ΄ μλκΉμ?
λλ μ΄μ κ°μ κΈ°λ₯μ΄ λ¨μ©λμ΄μλ μ λλ€λ λ° λμνμ§λ§ μ΄μ λν μ¬μ© μ¬λ‘κ° μμ΅λλ€.
μ΄ λκΈμ΄ κ°νΉνλ€κ³ λλΌμ ¨λ€λ©΄ μ£μ‘ν©λλ€. μ΄κ²μ μ μλκ° μλλλ€. λλ μ§μ ν μ λ§μ μ§λ©΄ν΄ μμ΅λλ€ :cry:
μ΄λ₯Ό μν΄ λΉνΈ μ°μ°μκ° νμνμ§ μμ΅λλ€. λ¬Έμμ΄ νμμ μ¬μ©νμμμ€.
{{ '0x{r:02X}{g:02X}{b:02X}'.format(**color) }}
κ°μ¬ν©λλ€, μμ§μλ‘ λ€μ λ³ννλ λ°©λ²μ μΆκ°νμ΅λλ€
{{ '0x{r:02X}{g:02X}{b:02X}'.format(**color) | int(base=16) }}
format
νν° λμ .format
λ₯Ό μ¬μ©νλ κ²μΌλ‘ λνλ¬μ΅λλ€. jinja ν
νλ¦Ώμμ 무μμ΄ νμ©λκ³ λ¬΄μμ΄ νμ©λμ§ μλμ§ μκΈ°κ° μ½κ° νΌλμ€λ½μ΅λλ€. μ΄ μμ
μ μννλ λ° μ νΈλλ λ°©λ²μ 무μμ
λκΉ? μΈμ λ μ€ νλλ₯Ό μ¬μ©ν΄μΌν©λκΉ?
Pythonμ zen μΈμ©: There should be one-- and preferably only one --obvious way to do it.
μ΄λ° μ’ λ₯μ ν λ‘ μ μν΄μλ IRCλ λ©μΌλ§ 리μ€νΈλ₯Ό μ¬μ©νμμμ€.
format
νν°λ₯Ό μ¬μ©νλ κ²λ κ°λ₯ν©λλ€.
{{ '0x%(r)02X%(g)02X%(b)02X'|format(**color) }}
format
νν° λ κΈ°λ³Έμ μΌλ‘ λͺ¨λλ‘ μ°μ°μλ₯Ό λννμ¬ Pythonμ μ΄μ λ¬Έμμ΄ νμ μ§μ λ©μ»€λμ¦ μ νμ±νν©λλ€. λ°λ©΄μ format
λ©μλ λ jinja2μμλ λμ€μ§ μμ§λ§ Pythonμμ str
λ° unicode
κ°μ²΄μ λ΄μ₯ λ©μλμ΄λ©° λ€μμ μν΄ μ¬μ©λ©λλ€. μλ‘μ΄ λ¬Έμμ΄ νμν λ©μ»€λμ¦ .
Pythonμμλ μ λ©μ»€λμ¦μ΄ μ΄μ λ©μ»€λμ¦λ³΄λ€ μ νΈλμ§λ§ jinja2μμλ μμ μ μΈ APIλ₯Ό μ μ§νλ κ²μ μ’μν©λλ€. μ΄μ λ²μ κ³Όμ νΈνμ±μ μν κ²μ΄ μλλΌλ©΄ format
νν°λ₯Ό μ κ±°νκ±°λ λ³κ²½νμ μ μμ΅λλ€. μ¬κΈ°μ 무μμ μ μν΄μΌ ν μ§ μ λͺ¨λ₯΄κ² μ΅λλ€. μνλ κ²μ μ¬μ©νμΈμ.
κ·Έλ¬λ μ, μ΄ ν λ‘ μ μ£Όμ μμ λ²μ΄λκ³ μμΌλ©°, μ΄κ²μ μλ§λ κ³μνκΈ°μ μ μ ν μ₯μκ° μλ κ²μ λλ€.
λλ λν λΉνΈ μ°μ°μ΄ νμν©λλ€. μ μ΄λ λΉκ΅λ νμν©λλ€. νλμ κ°μΌλ‘ μ¬λ¬ μνλ₯Ό λνλ΄κΈ° μν΄ λΉνΈλ§μ€ν¬ κ°μ μ¬μ©νλ HomeAssistantμ μΌμκ° μμ΅λλ€. HomeAssistantμμ μ΄ λΉνΈλ§μ€ν¬ κ°μ λ΄ μΌμμ κ° ν
νλ¦ΏμΌλ‘ κ°λ¨ν {{ state(sensor.with_bitmaskvalue) & 1 }}
λ‘ μ½κ² μνν μ μλ κ°λ³ μΌμ κ°μΌλ‘ λΆν νκ³ μΆμ΅λλ€. μ μ΄λ λ΄ μ°κ΅¬μ λ°λ₯΄λ©΄ μ§κΈμ Jinja ν
νλ¦Ώμ ν΅ν΄ μ΄ μμ
μ μννλ κ²μ΄ κ±°μ λΆκ°λ₯ν©λλ€.
state(sensor.with_bitmaskvalue) is bitmask 1
μ κ°μ μ¬μ©μ μ§μ ν
μ€νΈλ₯Ό λ
ΈμΆν΄μΌ νλ κ² κ°μ΅λλ€.
μμμ λν΄ μ£μ‘ν©λλ€. λ°©κΈ κ·Έλ€μ΄ λλ₯Ό μν΄ νΈλ¦μ μννλ μ¬μ©μ μ μ νν° bitwise_and()
λ₯Ό μΆκ°νμμ λ°κ²¬νμ΅λλ€.