Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. MCP3008 in IoBroker einbinden

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    249

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

MCP3008 in IoBroker einbinden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
5 Beiträge 2 Kommentatoren 380 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HasontH Offline
    HasontH Offline
    Hasont
    schrieb am zuletzt editiert von Hasont
    #1

    Hallo, nach über 5 Jahren habe ich meinen Raspie4 32bit auf Bookworm 64bit umgestellt und konnte IoBroker auch bis auf SPI MCP3008 wieder herstellen.

    Da ich 8 analoge Kanäle (Feuchtesensor u.s.w) einbinde hatte ich hierzu den MCP3008 über getrennte + 3,3V an Pin 23, 21, 19 und 24 (10Mosi, 9Miso, 11 SCLK 8CEO) am Raspi angeschlossen.
    In der Raspi-Config habe ich SPI eingeschaltet.
    Alle Schritte die ich mir damals aufgeschrieben hatte funktionieren scheinbar nicht mehr unter 64bit.
    z.B gpio readall.

    sudo gpio readall
    gpio: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
    

    mit gpioinfo bekomme ich folgende Liste

    pi@raspberrypi:~ $ gpioinfo
    gpiochip0 - 58 lines:
            line   0:     "ID_SDA"       unused   input  active-high
            line   1:     "ID_SCL"       unused   input  active-high
            line   2:      "GPIO2"       unused   input  active-high
            line   3:      "GPIO3"       unused   input  active-high
            line   4:      "GPIO4"       unused   input  active-high
            line   5:      "GPIO5"       unused   input  active-high
            line   6:      "GPIO6"       unused   input  active-high
            line   7:      "GPIO7"   "spi0 CS1"  output   active-low [used]
            line   8:      "GPIO8"   "spi0 CS0"  output   active-low [used]
            line   9:      "GPIO9"       unused   input  active-high
            line  10:     "GPIO10"       unused   input  active-high
            line  11:     "GPIO11"       unused   input  active-high
            line  12:     "GPIO12" "opengpio_0_12_output" output active-high [used]
            line  13:     "GPIO13" "opengpio_0_13_output" output active-high [used]
            line  14:     "GPIO14"       unused   input  active-high
            line  15:     "GPIO15"       unused   input  active-high
            line  16:     "GPIO16" "opengpio_0_16_output" output active-high [used]
            line  17:     "GPIO17" "opengpio_0_17_watch" input active-high [used]
            line  18:     "GPIO18" "opengpio_0_18_watch" input active-high [used]
            line  19:     "GPIO19" "opengpio_0_19_output" output active-high [used]
            line  20:     "GPIO20" "opengpio_0_20_output" output active-high [used]
            line  21:     "GPIO21" "opengpio_0_21_output" output active-high [used]
            line  22:     "GPIO22" "opengpio_0_22_watch" input active-high [used]
            line  23:     "GPIO23" "opengpio_0_23_watch" input active-high [used]
            line  24:     "GPIO24" "opengpio_0_24_watch" input active-high [used]
            line  25:     "GPIO25" "opengpio_0_25_output" output active-high [used]
            line  26:     "GPIO26" "opengpio_0_26_output" output active-high [used]
            line  27:     "GPIO27" "opengpio_0_27_watch" input active-high [used]
            line  28: "RGMII_MDIO"       unused   input  active-high
            line  29:  "RGMIO_MDC"       unused   input  active-high
            line  30:       "CTS0"       unused   input  active-high
            line  31:       "RTS0"       unused   input  active-high
            line  32:       "TXD0"       unused   input  active-high
            line  33:       "RXD0"       unused   input  active-high
            line  34:    "SD1_CLK"       unused   input  active-high
            line  35:    "SD1_CMD"       unused   input  active-high
            line  36:  "SD1_DATA0"       unused   input  active-high
            line  37:  "SD1_DATA1"       unused   input  active-high
            line  38:  "SD1_DATA2"       unused   input  active-high
            line  39:  "SD1_DATA3"       unused   input  active-high
            line  40:  "PWM0_MISO"       unused   input  active-high
            line  41:  "PWM1_MOSI"       unused   input  active-high
            line  42: "STATUS_LED_G_CLK" "ACT" output active-high [used]
            line  43: "SPIFLASH_CE_N" unused input active-high
            line  44:       "SDA0"       unused   input  active-high
            line  45:       "SCL0"       unused   input  active-high
            line  46: "RGMII_RXCLK" unused input active-high
            line  47: "RGMII_RXCTL" unused input active-high
            line  48: "RGMII_RXD0"       unused   input  active-high
            line  49: "RGMII_RXD1"       unused   input  active-high
            line  50: "RGMII_RXD2"       unused   input  active-high
            line  51: "RGMII_RXD3"       unused   input  active-high
            line  52: "RGMII_TXCLK" unused input active-high
            line  53: "RGMII_TXCTL" unused input active-high
            line  54: "RGMII_TXD0"       unused   input  active-high
            line  55: "RGMII_TXD1"       unused   input  active-high
            line  56: "RGMII_TXD2"       unused   input  active-high
            line  57: "RGMII_TXD3"       unused   input  active-high
    gpiochip1 - 8 lines:
            line   0:      "BT_ON"   "shutdown"  output  active-high [used]
            line   1:      "WL_ON"       unused  output  active-high
            line   2: "PWR_LED_OFF" "PWR" output active-low [used]
            line   3: "GLOBAL_RESET" unused output active-high
            line   4: "VDD_SD_IO_SEL" "vdd-sd-io" output active-high [used]
            line   5:   "CAM_GPIO" "cam1_regulator" output active-high [used]
            line   6:  "SD_PWR_ON" "regulator-sd-vcc" output active-high [used]
            line   7:    "SD_OC_N"       unused   input  active-high
    gpiochip2 - 4 lines:
            line   0:      unnamed       kernel   input  active-high [used]
            line   1:      unnamed       kernel   input  active-high [used]
            line   2:      unnamed       kernel   input  active-high [used]
            line   3:      unnamed       kernel   input  active-high [used]
    gpiochip0 - 58 lines:
            line   0:     "ID_SDA"       unused   input  active-high
            line   1:     "ID_SCL"       unused   input  active-high
            line   2:      "GPIO2"       unused   input  active-high
            line   3:      "GPIO3"       unused   input  active-high
            line   4:      "GPIO4"       unused   input  active-high
            line   5:      "GPIO5"       unused   input  active-high
            line   6:      "GPIO6"       unused   input  active-high
            line   7:      "GPIO7"   "spi0 CS1"  output   active-low [used]
            line   8:      "GPIO8"   "spi0 CS0"  output   active-low [used]
            line   9:      "GPIO9"       unused   input  active-high
            line  10:     "GPIO10"       unused   input  active-high
            line  11:     "GPIO11"       unused   input  active-high
            line  12:     "GPIO12" "opengpio_0_12_output" output active-high [used]
            line  13:     "GPIO13" "opengpio_0_13_output" output active-high [used]
            line  14:     "GPIO14"       unused   input  active-high
            line  15:     "GPIO15"       unused   input  active-high
            line  16:     "GPIO16" "opengpio_0_16_output" output active-high [used]
            line  17:     "GPIO17" "opengpio_0_17_watch" input active-high [used]
            line  18:     "GPIO18" "opengpio_0_18_watch" input active-high [used]
            line  19:     "GPIO19" "opengpio_0_19_output" output active-high [used]
            line  20:     "GPIO20" "opengpio_0_20_output" output active-high [used]
            line  21:     "GPIO21" "opengpio_0_21_output" output active-high [used]
            line  22:     "GPIO22" "opengpio_0_22_watch" input active-high [used]
            line  23:     "GPIO23" "opengpio_0_23_watch" input active-high [used]
            line  24:     "GPIO24" "opengpio_0_24_watch" input active-high [used]
            line  25:     "GPIO25" "opengpio_0_25_output" output active-high [used]
            line  26:     "GPIO26" "opengpio_0_26_output" output active-high [used]
            line  27:     "GPIO27" "opengpio_0_27_watch" input active-high [used]
            line  28: "RGMII_MDIO"       unused   input  active-high
            line  29:  "RGMIO_MDC"       unused   input  active-high
            line  30:       "CTS0"       unused   input  active-high
            line  31:       "RTS0"       unused   input  active-high
            line  32:       "TXD0"       unused   input  active-high
            line  33:       "RXD0"       unused   input  active-high
            line  34:    "SD1_CLK"       unused   input  active-high
            line  35:    "SD1_CMD"       unused   input  active-high
            line  36:  "SD1_DATA0"       unused   input  active-high
            line  37:  "SD1_DATA1"       unused   input  active-high
            line  38:  "SD1_DATA2"       unused   input  active-high
            line  39:  "SD1_DATA3"       unused   input  active-high
            line  40:  "PWM0_MISO"       unused   input  active-high
            line  41:  "PWM1_MOSI"       unused   input  active-high
            line  42: "STATUS_LED_G_CLK" "ACT" output active-high [used]
            line  43: "SPIFLASH_CE_N" unused input active-high
            line  44:       "SDA0"       unused   input  active-high
            line  45:       "SCL0"       unused   input  active-high
            line  46: "RGMII_RXCLK" unused input active-high
            line  47: "RGMII_RXCTL" unused input active-high
            line  48: "RGMII_RXD0"       unused   input  active-high
            line  49: "RGMII_RXD1"       unused   input  active-high
            line  50: "RGMII_RXD2"       unused   input  active-high
            line  51: "RGMII_RXD3"       unused   input  active-high
            line  52: "RGMII_TXCLK" unused input active-high
            line  53: "RGMII_TXCTL" unused input active-high
            line  54: "RGMII_TXD0"       unused   input  active-high
            line  55: "RGMII_TXD1"       unused   input  active-high
            line  56: "RGMII_TXD2"       unused   input  active-high
            line  57: "RGMII_TXD3"       unused   input  active-high
    

    spidev lief damals noch unter python 2.7 und wenn ich jetzt was dazu finde ist es für python3.
    Alle Pfade dazu sind unter bookworm komplett anders und sudo apt-get install -y python-spidev python3-spidev bring Fehler

    pi@raspberrypi:~ $ sudo apt-get install -y python-spidev python3-spidev
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Package python-spidev is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    
    E: Package 'python-spidev' has no installation candidate
    

    Ich bekomme es somit schon gar nicht am Raspi selbst zum laufen. Dort hatte ich früher einen Pfad py-spidev in dem ich den MCP3008.py angelegt hatte. Leider bin ich kein Profi und leg mir jetzt die Karten.

    Im IoBroker lief ein Script das jetzt beim Start viele Fehler bringt und Java in eine Bootschleife versetzt.

    2025-02-09 11:22:24.604	error	instance system.adapter.javascript.0 terminated with code 1 
     JS_CONTROLLER_STOPPED)
    host.raspberrypi
    	2025-02-09 11:22:24.604	error	Caught by controller[0]: }
    host.raspberrypi
    	2025-02-09 11:22:24.603	error	Caught by controller[0]: syscall: 'open'
    host.raspberrypi
    	2025-02-09 11:22:24.603	error	Caught by controller[0]: code: 'EACCES',
    host.raspberrypi
    	2025-02-09 11:22:24.602	error	Caught by controller[0]: errno: 13,
    host.raspberrypi
    	2025-02-09 11:22:24.596	error	Caught by controller[0]: [Error: EACCES, Permission denied] {
    javascript.0
    	2025-02-09 11:22:24.385	error	Error: EACCES, Permission denied
    javascript.0
    	2025-02-09 11:22:24.385	error	Error: EACCES, Permission denied
    javascript.0
    	2025-02-09 11:22:24.385	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
    

    SPI.Analogwerte.xml SPI.Analogwerte.txt

    Kann mir hier jemand etwas weiter helfen, ich bin jetzt schon die ganze Woche dran mit eBus, GPIOs u.s.w. Komme aber hier irgendwie gar nicht mehr weiter und hoffe nur ich hab mir nicht schon einiges versaut. Letzte SD Sicherung war Gott sei Dank noch vor der SPI Orgie.

    LG Horst

    Thomas BraunT 1 Antwort Letzte Antwort
    0
    • HasontH Hasont

      Hallo, nach über 5 Jahren habe ich meinen Raspie4 32bit auf Bookworm 64bit umgestellt und konnte IoBroker auch bis auf SPI MCP3008 wieder herstellen.

      Da ich 8 analoge Kanäle (Feuchtesensor u.s.w) einbinde hatte ich hierzu den MCP3008 über getrennte + 3,3V an Pin 23, 21, 19 und 24 (10Mosi, 9Miso, 11 SCLK 8CEO) am Raspi angeschlossen.
      In der Raspi-Config habe ich SPI eingeschaltet.
      Alle Schritte die ich mir damals aufgeschrieben hatte funktionieren scheinbar nicht mehr unter 64bit.
      z.B gpio readall.

      sudo gpio readall
      gpio: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
      

      mit gpioinfo bekomme ich folgende Liste

      pi@raspberrypi:~ $ gpioinfo
      gpiochip0 - 58 lines:
              line   0:     "ID_SDA"       unused   input  active-high
              line   1:     "ID_SCL"       unused   input  active-high
              line   2:      "GPIO2"       unused   input  active-high
              line   3:      "GPIO3"       unused   input  active-high
              line   4:      "GPIO4"       unused   input  active-high
              line   5:      "GPIO5"       unused   input  active-high
              line   6:      "GPIO6"       unused   input  active-high
              line   7:      "GPIO7"   "spi0 CS1"  output   active-low [used]
              line   8:      "GPIO8"   "spi0 CS0"  output   active-low [used]
              line   9:      "GPIO9"       unused   input  active-high
              line  10:     "GPIO10"       unused   input  active-high
              line  11:     "GPIO11"       unused   input  active-high
              line  12:     "GPIO12" "opengpio_0_12_output" output active-high [used]
              line  13:     "GPIO13" "opengpio_0_13_output" output active-high [used]
              line  14:     "GPIO14"       unused   input  active-high
              line  15:     "GPIO15"       unused   input  active-high
              line  16:     "GPIO16" "opengpio_0_16_output" output active-high [used]
              line  17:     "GPIO17" "opengpio_0_17_watch" input active-high [used]
              line  18:     "GPIO18" "opengpio_0_18_watch" input active-high [used]
              line  19:     "GPIO19" "opengpio_0_19_output" output active-high [used]
              line  20:     "GPIO20" "opengpio_0_20_output" output active-high [used]
              line  21:     "GPIO21" "opengpio_0_21_output" output active-high [used]
              line  22:     "GPIO22" "opengpio_0_22_watch" input active-high [used]
              line  23:     "GPIO23" "opengpio_0_23_watch" input active-high [used]
              line  24:     "GPIO24" "opengpio_0_24_watch" input active-high [used]
              line  25:     "GPIO25" "opengpio_0_25_output" output active-high [used]
              line  26:     "GPIO26" "opengpio_0_26_output" output active-high [used]
              line  27:     "GPIO27" "opengpio_0_27_watch" input active-high [used]
              line  28: "RGMII_MDIO"       unused   input  active-high
              line  29:  "RGMIO_MDC"       unused   input  active-high
              line  30:       "CTS0"       unused   input  active-high
              line  31:       "RTS0"       unused   input  active-high
              line  32:       "TXD0"       unused   input  active-high
              line  33:       "RXD0"       unused   input  active-high
              line  34:    "SD1_CLK"       unused   input  active-high
              line  35:    "SD1_CMD"       unused   input  active-high
              line  36:  "SD1_DATA0"       unused   input  active-high
              line  37:  "SD1_DATA1"       unused   input  active-high
              line  38:  "SD1_DATA2"       unused   input  active-high
              line  39:  "SD1_DATA3"       unused   input  active-high
              line  40:  "PWM0_MISO"       unused   input  active-high
              line  41:  "PWM1_MOSI"       unused   input  active-high
              line  42: "STATUS_LED_G_CLK" "ACT" output active-high [used]
              line  43: "SPIFLASH_CE_N" unused input active-high
              line  44:       "SDA0"       unused   input  active-high
              line  45:       "SCL0"       unused   input  active-high
              line  46: "RGMII_RXCLK" unused input active-high
              line  47: "RGMII_RXCTL" unused input active-high
              line  48: "RGMII_RXD0"       unused   input  active-high
              line  49: "RGMII_RXD1"       unused   input  active-high
              line  50: "RGMII_RXD2"       unused   input  active-high
              line  51: "RGMII_RXD3"       unused   input  active-high
              line  52: "RGMII_TXCLK" unused input active-high
              line  53: "RGMII_TXCTL" unused input active-high
              line  54: "RGMII_TXD0"       unused   input  active-high
              line  55: "RGMII_TXD1"       unused   input  active-high
              line  56: "RGMII_TXD2"       unused   input  active-high
              line  57: "RGMII_TXD3"       unused   input  active-high
      gpiochip1 - 8 lines:
              line   0:      "BT_ON"   "shutdown"  output  active-high [used]
              line   1:      "WL_ON"       unused  output  active-high
              line   2: "PWR_LED_OFF" "PWR" output active-low [used]
              line   3: "GLOBAL_RESET" unused output active-high
              line   4: "VDD_SD_IO_SEL" "vdd-sd-io" output active-high [used]
              line   5:   "CAM_GPIO" "cam1_regulator" output active-high [used]
              line   6:  "SD_PWR_ON" "regulator-sd-vcc" output active-high [used]
              line   7:    "SD_OC_N"       unused   input  active-high
      gpiochip2 - 4 lines:
              line   0:      unnamed       kernel   input  active-high [used]
              line   1:      unnamed       kernel   input  active-high [used]
              line   2:      unnamed       kernel   input  active-high [used]
              line   3:      unnamed       kernel   input  active-high [used]
      gpiochip0 - 58 lines:
              line   0:     "ID_SDA"       unused   input  active-high
              line   1:     "ID_SCL"       unused   input  active-high
              line   2:      "GPIO2"       unused   input  active-high
              line   3:      "GPIO3"       unused   input  active-high
              line   4:      "GPIO4"       unused   input  active-high
              line   5:      "GPIO5"       unused   input  active-high
              line   6:      "GPIO6"       unused   input  active-high
              line   7:      "GPIO7"   "spi0 CS1"  output   active-low [used]
              line   8:      "GPIO8"   "spi0 CS0"  output   active-low [used]
              line   9:      "GPIO9"       unused   input  active-high
              line  10:     "GPIO10"       unused   input  active-high
              line  11:     "GPIO11"       unused   input  active-high
              line  12:     "GPIO12" "opengpio_0_12_output" output active-high [used]
              line  13:     "GPIO13" "opengpio_0_13_output" output active-high [used]
              line  14:     "GPIO14"       unused   input  active-high
              line  15:     "GPIO15"       unused   input  active-high
              line  16:     "GPIO16" "opengpio_0_16_output" output active-high [used]
              line  17:     "GPIO17" "opengpio_0_17_watch" input active-high [used]
              line  18:     "GPIO18" "opengpio_0_18_watch" input active-high [used]
              line  19:     "GPIO19" "opengpio_0_19_output" output active-high [used]
              line  20:     "GPIO20" "opengpio_0_20_output" output active-high [used]
              line  21:     "GPIO21" "opengpio_0_21_output" output active-high [used]
              line  22:     "GPIO22" "opengpio_0_22_watch" input active-high [used]
              line  23:     "GPIO23" "opengpio_0_23_watch" input active-high [used]
              line  24:     "GPIO24" "opengpio_0_24_watch" input active-high [used]
              line  25:     "GPIO25" "opengpio_0_25_output" output active-high [used]
              line  26:     "GPIO26" "opengpio_0_26_output" output active-high [used]
              line  27:     "GPIO27" "opengpio_0_27_watch" input active-high [used]
              line  28: "RGMII_MDIO"       unused   input  active-high
              line  29:  "RGMIO_MDC"       unused   input  active-high
              line  30:       "CTS0"       unused   input  active-high
              line  31:       "RTS0"       unused   input  active-high
              line  32:       "TXD0"       unused   input  active-high
              line  33:       "RXD0"       unused   input  active-high
              line  34:    "SD1_CLK"       unused   input  active-high
              line  35:    "SD1_CMD"       unused   input  active-high
              line  36:  "SD1_DATA0"       unused   input  active-high
              line  37:  "SD1_DATA1"       unused   input  active-high
              line  38:  "SD1_DATA2"       unused   input  active-high
              line  39:  "SD1_DATA3"       unused   input  active-high
              line  40:  "PWM0_MISO"       unused   input  active-high
              line  41:  "PWM1_MOSI"       unused   input  active-high
              line  42: "STATUS_LED_G_CLK" "ACT" output active-high [used]
              line  43: "SPIFLASH_CE_N" unused input active-high
              line  44:       "SDA0"       unused   input  active-high
              line  45:       "SCL0"       unused   input  active-high
              line  46: "RGMII_RXCLK" unused input active-high
              line  47: "RGMII_RXCTL" unused input active-high
              line  48: "RGMII_RXD0"       unused   input  active-high
              line  49: "RGMII_RXD1"       unused   input  active-high
              line  50: "RGMII_RXD2"       unused   input  active-high
              line  51: "RGMII_RXD3"       unused   input  active-high
              line  52: "RGMII_TXCLK" unused input active-high
              line  53: "RGMII_TXCTL" unused input active-high
              line  54: "RGMII_TXD0"       unused   input  active-high
              line  55: "RGMII_TXD1"       unused   input  active-high
              line  56: "RGMII_TXD2"       unused   input  active-high
              line  57: "RGMII_TXD3"       unused   input  active-high
      

      spidev lief damals noch unter python 2.7 und wenn ich jetzt was dazu finde ist es für python3.
      Alle Pfade dazu sind unter bookworm komplett anders und sudo apt-get install -y python-spidev python3-spidev bring Fehler

      pi@raspberrypi:~ $ sudo apt-get install -y python-spidev python3-spidev
      Reading package lists... Done
      Building dependency tree... Done
      Reading state information... Done
      Package python-spidev is not available, but is referred to by another package.
      This may mean that the package is missing, has been obsoleted, or
      is only available from another source
      
      E: Package 'python-spidev' has no installation candidate
      

      Ich bekomme es somit schon gar nicht am Raspi selbst zum laufen. Dort hatte ich früher einen Pfad py-spidev in dem ich den MCP3008.py angelegt hatte. Leider bin ich kein Profi und leg mir jetzt die Karten.

      Im IoBroker lief ein Script das jetzt beim Start viele Fehler bringt und Java in eine Bootschleife versetzt.

      2025-02-09 11:22:24.604	error	instance system.adapter.javascript.0 terminated with code 1 
       JS_CONTROLLER_STOPPED)
      host.raspberrypi
      	2025-02-09 11:22:24.604	error	Caught by controller[0]: }
      host.raspberrypi
      	2025-02-09 11:22:24.603	error	Caught by controller[0]: syscall: 'open'
      host.raspberrypi
      	2025-02-09 11:22:24.603	error	Caught by controller[0]: code: 'EACCES',
      host.raspberrypi
      	2025-02-09 11:22:24.602	error	Caught by controller[0]: errno: 13,
      host.raspberrypi
      	2025-02-09 11:22:24.596	error	Caught by controller[0]: [Error: EACCES, Permission denied] {
      javascript.0
      	2025-02-09 11:22:24.385	error	Error: EACCES, Permission denied
      javascript.0
      	2025-02-09 11:22:24.385	error	Error: EACCES, Permission denied
      javascript.0
      	2025-02-09 11:22:24.385	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
      

      SPI.Analogwerte.xml SPI.Analogwerte.txt

      Kann mir hier jemand etwas weiter helfen, ich bin jetzt schon die ganze Woche dran mit eBus, GPIOs u.s.w. Komme aber hier irgendwie gar nicht mehr weiter und hoffe nur ich hab mir nicht schon einiges versaut. Letzte SD Sicherung war Gott sei Dank noch vor der SPI Orgie.

      LG Horst

      Thomas BraunT Online
      Thomas BraunT Online
      Thomas Braun
      Most Active
      schrieb am zuletzt editiert von Thomas Braun
      #2

      @hasont

      echad@chet:~ $ apt policy python3-spidev
      python3-spidev:
        Installed: 20200602~200721-1+bookworm
        Candidate: 20200602~200721-1+bookworm
        Version table:
       *** 20200602~200721-1+bookworm 500
              500 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages
              100 /var/lib/dpkg/status
           3.6-1+b1 500
              500 http://deb.debian.org/debian bookworm/main arm64 Packages
      echad@chet:~ $ 
      
      

      libcrypt.so.1: cannot open shared object file: No such file or directory

      echad@chet:~ $ apt policy libcrypt1
      libcrypt1:
        Installed: 1:4.4.33-2
        Candidate: 1:4.4.33-2
        Version table:
       *** 1:4.4.33-2 500
              500 http://deb.debian.org/debian bookworm/main arm64 Packages
              100 /var/lib/dpkg/status
      echad@chet:~ $ 
      

      Linux-Werkzeugkasten:
      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
      NodeJS Fixer Skript:
      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

      HasontH 1 Antwort Letzte Antwort
      0
      • Thomas BraunT Thomas Braun

        @hasont

        echad@chet:~ $ apt policy python3-spidev
        python3-spidev:
          Installed: 20200602~200721-1+bookworm
          Candidate: 20200602~200721-1+bookworm
          Version table:
         *** 20200602~200721-1+bookworm 500
                500 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages
                100 /var/lib/dpkg/status
             3.6-1+b1 500
                500 http://deb.debian.org/debian bookworm/main arm64 Packages
        echad@chet:~ $ 
        
        

        libcrypt.so.1: cannot open shared object file: No such file or directory

        echad@chet:~ $ apt policy libcrypt1
        libcrypt1:
          Installed: 1:4.4.33-2
          Candidate: 1:4.4.33-2
          Version table:
         *** 1:4.4.33-2 500
                500 http://deb.debian.org/debian bookworm/main arm64 Packages
                100 /var/lib/dpkg/status
        echad@chet:~ $ 
        
        HasontH Offline
        HasontH Offline
        Hasont
        schrieb am zuletzt editiert von Hasont
        #3

        @thomas-braun sagte in MCP3008 in IoBroker einbinden:

        apt policy libcrypt1

        Hallo Thomas, danke erstmal, es kommt die selbe Meldung wie bei dir!
        Komisch, dass das keiner im IoBroker braucht. Bin wahrscheinlich der letzte der noch löten kann;-).

        pi@raspberrypi:~ $ apt policy python3-spidev
        python3-spidev:
          Installed: 20200602~200721-1+bookworm
          Candidate: 20200602~200721-1+bookworm
          Version table:
         *** 20200602~200721-1+bookworm 500
                500 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages
                100 /var/lib/dpkg/status
             3.6-1+b1 500
                500 http://deb.debian.org/debian bookworm/main arm64 Packages
        
        pi@raspberrypi:~ $ apt policy libcrypt1
        libcrypt1:
          Installed: 1:4.4.33-2
          Candidate: 1:4.4.33-2
          Version table:
         *** 1:4.4.33-2 500
                500 http://deb.debian.org/debian bookworm/main arm64 Packages
                100 /var/lib/dpkg/status
        

        Ich hab das im Netz zum Thema gpio readall gefunden

        pi@raspberrypi:~ $ sudo gpio readall
        sudo: gpio: Befehl nicht gefunden
        pi@raspberrypi:~ $ wget https://project-downloads.drogon.net/wiringpi-latest.deb
        --2025-02-06 13:48:12--  https://project-downloads.drogon.net/wiringpi-latest.de
        
        pi@raspberrypi:~ $ sudo dpkg -i wiringpi-latest.deb
        Vormals nicht ausgewähltes Paket wiringpi:armhf wird gewählt.
        (Lese Datenbank ... 89919 Dateien und Verzeichnisse sind derzeit installiert.)
        Vorbereitung zum Entpacken von wiringpi-latest.deb ...
        Entpacken von wiringpi:armhf (2.52) ...
        wiringpi:armhf (2.52) wird eingerichtet ...
        /bin/chown: warning: '.' should be ':': „root.root“
        Trigger für man-db (2.11.2-2) werden verarbeitet ...
        pi@raspberrypi:~ $ sudo gpio readall
        gpio: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
        

        Ob ich gpio readall überhaupt brauche?
        Was ist gpizero? Hab dazu eine SPI Beschreibung im Netz gefunden https://github.com/pediehl
        Der verwendet aber halt ganz andere Pfade und ob das dann im IoBroker geht ist unklar. Ich schau mir das mal auf meiner alten SD Karte an und vergleiche das. Unter 32bit bookworm hat ja alles funktioniert.

        Thomas BraunT 1 Antwort Letzte Antwort
        0
        • HasontH Hasont

          @thomas-braun sagte in MCP3008 in IoBroker einbinden:

          apt policy libcrypt1

          Hallo Thomas, danke erstmal, es kommt die selbe Meldung wie bei dir!
          Komisch, dass das keiner im IoBroker braucht. Bin wahrscheinlich der letzte der noch löten kann;-).

          pi@raspberrypi:~ $ apt policy python3-spidev
          python3-spidev:
            Installed: 20200602~200721-1+bookworm
            Candidate: 20200602~200721-1+bookworm
            Version table:
           *** 20200602~200721-1+bookworm 500
                  500 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages
                  100 /var/lib/dpkg/status
               3.6-1+b1 500
                  500 http://deb.debian.org/debian bookworm/main arm64 Packages
          
          pi@raspberrypi:~ $ apt policy libcrypt1
          libcrypt1:
            Installed: 1:4.4.33-2
            Candidate: 1:4.4.33-2
            Version table:
           *** 1:4.4.33-2 500
                  500 http://deb.debian.org/debian bookworm/main arm64 Packages
                  100 /var/lib/dpkg/status
          

          Ich hab das im Netz zum Thema gpio readall gefunden

          pi@raspberrypi:~ $ sudo gpio readall
          sudo: gpio: Befehl nicht gefunden
          pi@raspberrypi:~ $ wget https://project-downloads.drogon.net/wiringpi-latest.deb
          --2025-02-06 13:48:12--  https://project-downloads.drogon.net/wiringpi-latest.de
          
          pi@raspberrypi:~ $ sudo dpkg -i wiringpi-latest.deb
          Vormals nicht ausgewähltes Paket wiringpi:armhf wird gewählt.
          (Lese Datenbank ... 89919 Dateien und Verzeichnisse sind derzeit installiert.)
          Vorbereitung zum Entpacken von wiringpi-latest.deb ...
          Entpacken von wiringpi:armhf (2.52) ...
          wiringpi:armhf (2.52) wird eingerichtet ...
          /bin/chown: warning: '.' should be ':': „root.root“
          Trigger für man-db (2.11.2-2) werden verarbeitet ...
          pi@raspberrypi:~ $ sudo gpio readall
          gpio: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
          

          Ob ich gpio readall überhaupt brauche?
          Was ist gpizero? Hab dazu eine SPI Beschreibung im Netz gefunden https://github.com/pediehl
          Der verwendet aber halt ganz andere Pfade und ob das dann im IoBroker geht ist unklar. Ich schau mir das mal auf meiner alten SD Karte an und vergleiche das. Unter 32bit bookworm hat ja alles funktioniert.

          Thomas BraunT Online
          Thomas BraunT Online
          Thomas Braun
          Most Active
          schrieb am zuletzt editiert von
          #4

          @hasont

          wiringpi ist veraltet und wird nicht mehr verwendet.
          Du knallst dir da nur deine Kiste mit noch mehr veraltetem Code zu.
          Auch python 2.7 ist ein Ding aus der Vergangenheit.

          Linux-Werkzeugkasten:
          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
          NodeJS Fixer Skript:
          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

          HasontH 1 Antwort Letzte Antwort
          0
          • Thomas BraunT Thomas Braun

            @hasont

            wiringpi ist veraltet und wird nicht mehr verwendet.
            Du knallst dir da nur deine Kiste mit noch mehr veraltetem Code zu.
            Auch python 2.7 ist ein Ding aus der Vergangenheit.

            HasontH Offline
            HasontH Offline
            Hasont
            schrieb am zuletzt editiert von Hasont
            #5

            Ich komme einfach nicht weiter, im Raspi ist SPI ist eingeschaltet und für IoBroker freigegeben.
            Gibt es einen Befehl der gpio readall in der 64bit Version ersetzt ?

            pi@raspberrypi:~ $ sudo adduser iobroker spi
            adduser: The user `iobroker' is already a member of `spi'.
            
            

            Sobald ich vom IoBroker das mit IoBroker Backup übernommene Skript einschalte kommen die o.g. Fehler.
            Wie gesagt hatte ich vorher Bookworm 32bit und jetzt Bookworm 64bit und ein Backup des IoBroker gemacht.
            Was das Read_8AI_Modul und mcpadc genau bedeutet ist mir nach 5 Jahren leider ein Rätsel

            b26449d2-eeb6-4c2a-ac51-fa19fadb865f-image.png

            Hier mal das Script

            var busNumber, deviceNumber, Interval, dreisatz_zwischenwert, Einheit, dreisatz_zwischenwert_Garten, dreisatz_endwert, Einheit_Garten, Bodenfeuche_Prozent, dreisatz_endwert_Garten, Bodenfeuchte_Prozent_Garten;
            
            // Liest die Werte des 4-Kanal-Analogmoduls.busNumber
            // > Nr. des SPI-Busses (RasPi 1= 0, RasPi2/3=1, Tinker
            // Board=2deviceNumber > genutzte CS-Leitung (0 oder1)
            async function Read_8AI_Modul(busNumber, deviceNumber, Interval) {
                createState('Analogmodul.Channel0',0,read1);
                createState('Analogmodul.Channel0_in_%',{name: "Channel0_in_%"});
                createState('Analogmodul.Channel1',0,read2);
                createState('Analogmodul.Channel1_in_%',{name: "Channel1_in_%"});
                createState('Analogmodul.Channel2',0,read3);
                createState('Analogmodul.Channel3',0,read4);
                createState('Analogmodul.Channel4',0,read5);
                createState('Analogmodul.Channel5',0,read6);
                createState('Analogmodul.Channel6',0,read7);
                createState('Analogmodul.Channel7',0,read8);
            
                const mcpadc = require('mcp-spi-adc');
            
            
            
                function read1(){
                const input1 = mcpadc.openMcp3008(0, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                  if (err) throw err;
            
                  setInterval(() => {
                    input1.read((err, reading) => {
                      if (err) throw err;
            
                      setState("Analogmodul.Channel0",(reading.rawValue)),true;
                    });
                  }, Interval);
                });
                }
            
                function read2(){
                const input2 = mcpadc.openMcp3008(1, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                  if (err) throw err;
            
                  setInterval(() => {
                    input2.read((err, reading) => {
                      if (err) throw err;
            
                      setState("Analogmodul.Channel1",(reading.rawValue)),true;
                    });
                  }, Interval);
                });
                }
            
                function read3(){
                const input3 = mcpadc.openMcp3008(2, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                  if (err) throw err;
            
                  setInterval(() => {
                    input3.read((err, reading) => {
                      if (err) throw err;
            
                      setState("Analogmodul.Channel2",(reading.rawValue)),true;
                    });
                  }, Interval);
                });
                }
            
                function read4(){
                const input4 = mcpadc.openMcp3008(3, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                  if (err) throw err;
            
                  setInterval(() => {
                    input4.read((err, reading) => {
                      if (err) throw err;
            
                      setState("Analogmodul.Channel3",(reading.rawValue)),true;
                    });
                  }, Interval);
                });
                }
            
                function read5(){
                const input5 = mcpadc.openMcp3008(4, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                  if (err) throw err;
            
                  setInterval(() => {
                    input5.read((err, reading) => {
                      if (err) throw err;
            
                      setState("Analogmodul.Channel4",(reading.rawValue)),true;
                    });
                  }, Interval);
                });
                }
            
                function read6(){
                const input6 = mcpadc.openMcp3008(5, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                  if (err) throw err;
            
                  setInterval(() => {
                    input6.read((err, reading) => {
                      if (err) throw err;
            
                      setState("Analogmodul.Channel5",(reading.rawValue)),true;
                    });
                  }, Interval);
                });
                }
            
                function read7(){
                const input7 = mcpadc.openMcp3008(6, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                  if (err) throw err;
            
                  setInterval(() => {
                    input7.read((err, reading) => {
                      if (err) throw err;
            
                      setState("Analogmodul.Channel6",(reading.rawValue)),true;
                    });
                  }, Interval);
                });
                }
            
                function read8(){
                const input8 = mcpadc.openMcp3008(7, {busNumber: busNumber, deviceNumber:deviceNumber,  speedHz: 20000}, (err) => {
                  if (err) throw err;
            
                  setInterval(() => {
                    input8.read((err, reading) => {
                      if (err) throw err;
            
                      setState("Analogmodul.Channel7",(reading.rawValue)),true;
                    });
                  }, Interval);
                });
                }
            
            }
            
            
            // 10000 = 10 sec   300000 = 5 min
            await Read_8AI_Modul(0, 0, 60000);
            
            on({ id: 'javascript.0.Analogmodul.Channel0' /* AM_C0_Carport */, change: 'any' }, async (obj) => {
              let value = obj.state.val;
              let oldValue = obj.oldState.val;
              if (getState('javascript.0.Analogmodul.Channel0').val > 230 && getState('javascript.0.Analogmodul.Channel0').val < 600) {
                dreisatz_zwischenwert = 100 / 320;
                Einheit = getState('javascript.0.Analogmodul.Channel0').val - 255;
                dreisatz_endwert = dreisatz_zwischenwert * Einheit;
                Bodenfeuche_Prozent = Math.round(dreisatz_endwert);
                setState('javascript.0.Analogmodul.Channel0_in_%' /* AM_C0_%_Carport */, (100 - Bodenfeuche_Prozent));
              }
            });
            on({ id: 'javascript.0.Analogmodul.Channel1' /* AM_C1_Garten */, change: 'any' }, async (obj) => {
              let value = obj.state.val;
              let oldValue = obj.oldState.val;
              if (getState('javascript.0.Analogmodul.Channel1').val > 230 && getState('javascript.0.Analogmodul.Channel1').val < 600) {
                dreisatz_zwischenwert_Garten = 100 / 320;
                Einheit_Garten = getState('javascript.0.Analogmodul.Channel1').val - 255;
                dreisatz_endwert_Garten = dreisatz_zwischenwert_Garten * Einheit_Garten;
                Bodenfeuchte_Prozent_Garten = Math.round(dreisatz_endwert_Garten);
                setState('javascript.0.Analogmodul.Channel1_in_%' /* AM_C1_%_Garten */, (100 - Bodenfeuchte_Prozent_Garten));
              }
            });
            
            // Kleinster Wert -20 in nasser Erde
            
            // Größter Wert Trocken +30
            
            // + 20 mehr als delta Trocken/Nass
            // +5 mehr als Wert in ganz nasser Erde
            
            //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyS35+ZUt2VW0lN0JkZSU2MHFSMVklM0FGTHYlMjIlM0VidXNOdW1iZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJIKUhKeCUzRC5XZnRhbiUyQ3hfSjZ3VUYlMjIlM0VkZXZpY2VOdW1iZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJUNzQlN0NOeUpvZDRHdkIoLjNSREMtJTIyJTNFSW50ZXJ2YWwlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIqNCU1RVNOciUyNTglN0NuJTNGcShZSUEyJTVEMiUyQiUyMiUzRWRyZWlzYXR6X3p3aXNjaGVud2VydCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMiUyNUMlNUI3V0ElN0JBdCUzRjNKYkhHJTI1MyUyNCU0MCElMjIlM0VFaW5oZWl0JTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIybTUlMkJCeXYlMkNmJTdCUkZYRDBwR1piaFElMjIlM0VkcmVpc2F0el96d2lzY2hlbndlcnRfR2FydGVuJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyY0xaTzElMjVSdSUyQiUzQTRtJTJDRlIlMkNLcjdzJTIyJTNFZHJlaXNhdHpfZW5kd2VydCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMjFJXyo2Z2IlM0EoZyUyMyp+MURNNXhoJTJDJTIyJTNFRWluaGVpdF9HYXJ0ZW4lM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIlN0IzZ1AlMjVQdko0JTYwWGslMkNFRGowIXlXJTIyJTNFQm9kZW5mZXVjaGVfUHJvemVudCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMkUlNUR3MkxYUkY4QyU2MEx0Sm4lNUUlN0JvQzAlMjIlM0VkcmVpc2F0el9lbmR3ZXJ0X0dhcnRlbiUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMiUyNSl3cjIlNUJkdnAlMkYlMkZCUyU3Qn5lc3VvdCUyMiUzRUJvZGVuZmV1Y2h0ZV9Qcm96ZW50X0dhcnRlbiUzQyUyRnZhcmlhYmxlJTNFJTNDJTJGdmFyaWFibGVzJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19kZWZjdXN0b21ub3JldHVybiUyMiUyMGlkJTNEJTIyJTJCTXclNURZMiUzRi45M29CZihnZSU3Qmp0fiUyMiUyMHglM0QlMjI4OCUyMiUyMHklM0QlMjItMTYyJTIyJTNFJTNDbXV0YXRpb24lMjBzdGF0ZW1lbnRzJTNEJTIyZmFsc2UlMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyYnVzTnVtYmVyJTIyJTIwdmFyaWQlM0QlMjJLfn5lS3ZVbSU3QmRlJTYwcVIxWSUzQUZMdiUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJkZXZpY2VOdW1iZXIlMjIlMjB2YXJpZCUzRCUyMkgpSEp4JTNELldmdGFuJTJDeF9KNndVRiUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJJbnRlcnZhbCUyMiUyMHZhcmlkJTNEJTIyVDc0JTdDTnlKb2Q0R3ZCKC4zUkRDLSUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRVJlYWRfOEFJX01vZHVsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTQ1JJUFQlMjIlM0VZM0psWVhSbFUzUmhkR1VvSjBGdVlXeHZaMjF2WkhWc0xrTm9ZVzV1Wld3d0p5d3dMSEpsWVdReEtUc0tZM0psWVhSbFUzUmhkR1VvSjBGdVlXeHZaMjF2WkhWc0xrTm9ZVzV1Wld3d1gybHVYeVVuTEh0dVlXMWxPaUFpUTJoaGJtNWxiREJmYVc1ZkpTSjlLVHNLWTNKbFlYUmxVM1JoZEdVb0owRnVZV3h2WjIxdlpIVnNMa05vWVc1dVpXd3hKeXd3TEhKbFlXUXlLVHNLWTNKbFlYUmxVM1JoZEdVb0owRnVZV3h2WjIxdlpIVnNMa05vWVc1dVpXd3hYMmx1WHlVbkxIdHVZVzFsT2lBaVEyaGhibTVsYkRGZmFXNWZKU0o5S1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3d5Snl3d0xISmxZV1F6S1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3d6Snl3d0xISmxZV1EwS1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3cwSnl3d0xISmxZV1ExS1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3cxSnl3d0xISmxZV1EyS1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3cySnl3d0xISmxZV1EzS1RzS1kzSmxZWFJsVTNSaGRHVW9KMEZ1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3czSnl3d0xISmxZV1E0S1RzS0NtTnZibk4wSUcxamNHRmtZeUE5SUhKbGNYVnBjbVVvSjIxamNDMXpjR2t0WVdSakp5azdDZ29LQ21aMWJtTjBhVzl1SUhKbFlXUXhLQ2w3Q21OdmJuTjBJR2x1Y0hWME1TQTlJRzFqY0dGa1l5NXZjR1Z1VFdOd016QXdPQ2d3TENCN1luVnpUblZ0WW1WeU9pQmlkWE5PZFcxaVpYSXNJR1JsZG1salpVNTFiV0psY2pwa1pYWnBZMlZPZFcxaVpYSXNJQ0J6Y0dWbFpFaDZPaUF5TURBd01IMHNJQ2hsY25JcElEMCUyQklIc0tJQ0JwWmlBb1pYSnlLU0IwYUhKdmR5Qmxjbkk3Q2dvZ0lITmxkRWx1ZEdWeWRtRnNLQ2dwSUQwJTJCSUhzS0lDQWdJR2x1Y0hWME1TNXlaV0ZrS0NobGNuSXNJSEpsWVdScGJtY3BJRDAlMkJJSHNLSUNBZ0lDQWdhV1lnS0dWeWNpa2dkR2h5YjNjZ1pYSnlPd29LSUNBZ0lDQWdjMlYwVTNSaGRHVW9Ja0Z1WVd4dloyMXZaSFZzTGtOb1lXNXVaV3d3SWl3b2NtVmhaR2x1Wnk1eVlYZFdZV3gxWlNrcExIUnlkV1U3Q2lBZ0lDQjlLVHNLSUNCOUxDQkpiblJsY25aaGJDazdDbjBwT3dwOUNncG1kVzVqZEdsdmJpQnlaV0ZrTWlncGV3cGpiMjV6ZENCcGJuQjFkRElnUFNCdFkzQmhaR011YjNCbGJrMWpjRE13TURnb01Td2dlMkoxYzA1MWJXSmxjam9nWW5WelRuVnRZbVZ5TENCa1pYWnBZMlZPZFcxaVpYSTZaR1YyYVdObFRuVnRZbVZ5TENBZ2MzQmxaV1JJZWpvZ01qQXdNREI5TENBb1pYSnlLU0E5UGlCN0NpQWdhV1lnS0dWeWNpa2dkR2h5YjNjZ1pYSnlPd29LSUNCelpYUkpiblJsY25aaGJDZ29LU0E5UGlCN0NpQWdJQ0JwYm5CMWRESXVjbVZoWkNnb1pYSnlMQ0J5WldGa2FXNW5LU0E5UGlCN0NpQWdJQ0FnSUdsbUlDaGxjbklwSUhSb2NtOTNJR1Z5Y2pzS0NpQWdJQ0FnSUhObGRGTjBZWFJsS0NKQmJtRnNiMmR0YjJSMWJDNURhR0Z1Ym1Wc01TSXNLSEpsWVdScGJtY3VjbUYzVm1Gc2RXVXBLU3gwY25WbE93b2dJQ0FnZlNrN0NpQWdmU3dnU1c1MFpYSjJZV3dwT3dwOUtUc0tmUW9LWm5WdVkzUnBiMjRnY21WaFpETW9LWHNLWTI5dWMzUWdhVzV3ZFhReklEMGdiV053WVdSakxtOXdaVzVOWTNBek1EQTRLRElzSUh0aWRYTk9kVzFpWlhJNklHSjFjMDUxYldKbGNpd2daR1YyYVdObFRuVnRZbVZ5T21SbGRtbGpaVTUxYldKbGNpd2dJSE53WldWa1NIbzZJREl3TURBd2ZTd2dLR1Z5Y2lrZ1BUNGdld29nSUdsbUlDaGxjbklwSUhSb2NtOTNJR1Z5Y2pzS0NpQWdjMlYwU1c1MFpYSjJZV3dvS0NrZ1BUNGdld29nSUNBZ2FXNXdkWFF6TG5KbFlXUW9LR1Z5Y2l3Z2NtVmhaR2x1WnlrZ1BUNGdld29nSUNBZ0lDQnBaaUFvWlhKeUtTQjBhSEp2ZHlCbGNuSTdDZ29nSUNBZ0lDQnpaWFJUZEdGMFpTZ2lRVzVoYkc5bmJXOWtkV3d1UTJoaGJtNWxiRElpTENoeVpXRmthVzVuTG5KaGQxWmhiSFZsS1Nrc2RISjFaVHNLSUNBZ0lIMHBPd29nSUgwc0lFbHVkR1Z5ZG1Gc0tUc0tmU2s3Q24wS0NtWjFibU4wYVc5dUlISmxZV1EwS0NsN0NtTnZibk4wSUdsdWNIVjBOQ0E5SUcxamNHRmtZeTV2Y0dWdVRXTndNekF3T0NnekxDQjdZblZ6VG5WdFltVnlPaUJpZFhOT2RXMWlaWElzSUdSbGRtbGpaVTUxYldKbGNqcGtaWFpwWTJWT2RXMWlaWElzSUNCemNHVmxaRWg2T2lBeU1EQXdNSDBzSUNobGNuSXBJRDAlMkJJSHNLSUNCcFppQW9aWEp5S1NCMGFISnZkeUJsY25JN0Nnb2dJSE5sZEVsdWRHVnlkbUZzS0NncElEMCUyQklIc0tJQ0FnSUdsdWNIVjBOQzV5WldGa0tDaGxjbklzSUhKbFlXUnBibWNwSUQwJTJCSUhzS0lDQWdJQ0FnYVdZZ0tHVnljaWtnZEdoeWIzY2daWEp5T3dvS0lDQWdJQ0FnYzJWMFUzUmhkR1VvSWtGdVlXeHZaMjF2WkhWc0xrTm9ZVzV1Wld3eklpd29jbVZoWkdsdVp5NXlZWGRXWVd4MVpTa3BMSFJ5ZFdVN0NpQWdJQ0I5S1RzS0lDQjlMQ0JKYm5SbGNuWmhiQ2s3Q24wcE93cDlDZ3BtZFc1amRHbHZiaUJ5WldGa05TZ3Bld3BqYjI1emRDQnBibkIxZERVZ1BTQnRZM0JoWkdNdWIzQmxiazFqY0RNd01EZ29OQ3dnZTJKMWMwNTFiV0psY2pvZ1luVnpUblZ0WW1WeUxDQmtaWFpwWTJWT2RXMWlaWEk2WkdWMmFXTmxUblZ0WW1WeUxDQWdjM0JsWldSSWVqb2dNakF3TURCOUxDQW9aWEp5S1NBOVBpQjdDaUFnYVdZZ0tHVnljaWtnZEdoeWIzY2daWEp5T3dvS0lDQnpaWFJKYm5SbGNuWmhiQ2dvS1NBOVBpQjdDaUFnSUNCcGJuQjFkRFV1Y21WaFpDZ29aWEp5TENCeVpXRmthVzVuS1NBOVBpQjdDaUFnSUNBZ0lHbG1JQ2hsY25JcElIUm9jbTkzSUdWeWNqc0tDaUFnSUNBZ0lITmxkRk4wWVhSbEtDSkJibUZzYjJkdGIyUjFiQzVEYUdGdWJtVnNOQ0lzS0hKbFlXUnBibWN1Y21GM1ZtRnNkV1VwS1N4MGNuVmxPd29nSUNBZ2ZTazdDaUFnZlN3Z1NXNTBaWEoyWVd3cE93cDlLVHNLZlFvS1puVnVZM1JwYjI0Z2NtVmhaRFlvS1hzS1kyOXVjM1FnYVc1d2RYUTJJRDBnYldOd1lXUmpMbTl3Wlc1TlkzQXpNREE0S0RVc0lIdGlkWE5PZFcxaVpYSTZJR0oxYzA1MWJXSmxjaXdnWkdWMmFXTmxUblZ0WW1WeU9tUmxkbWxqWlU1MWJXSmxjaXdnSUhOd1pXVmtTSG82SURJd01EQXdmU3dnS0dWeWNpa2dQVDRnZXdvZ0lHbG1JQ2hsY25JcElIUm9jbTkzSUdWeWNqc0tDaUFnYzJWMFNXNTBaWEoyWVd3b0tDa2dQVDRnZXdvZ0lDQWdhVzV3ZFhRMkxuSmxZV1FvS0dWeWNpd2djbVZoWkdsdVp5a2dQVDRnZXdvZ0lDQWdJQ0JwWmlBb1pYSnlLU0IwYUhKdmR5Qmxjbkk3Q2dvZ0lDQWdJQ0J6WlhSVGRHRjBaU2dpUVc1aGJHOW5iVzlrZFd3dVEyaGhibTVsYkRVaUxDaHlaV0ZrYVc1bkxuSmhkMVpoYkhWbEtTa3NkSEoxWlRzS0lDQWdJSDBwT3dvZ0lIMHNJRWx1ZEdWeWRtRnNLVHNLZlNrN0NuMEtDbVoxYm1OMGFXOXVJSEpsWVdRM0tDbDdDbU52Ym5OMElHbHVjSFYwTnlBOUlHMWpjR0ZrWXk1dmNHVnVUV053TXpBd09DZzJMQ0I3WW5WelRuVnRZbVZ5T2lCaWRYTk9kVzFpWlhJc0lHUmxkbWxqWlU1MWJXSmxjanBrWlhacFkyVk9kVzFpWlhJc0lDQnpjR1ZsWkVoNk9pQXlNREF3TUgwc0lDaGxjbklwSUQwJTJCSUhzS0lDQnBaaUFvWlhKeUtTQjBhSEp2ZHlCbGNuSTdDZ29nSUhObGRFbHVkR1Z5ZG1Gc0tDZ3BJRDAlMkJJSHNLSUNBZ0lHbHVjSFYwTnk1eVpXRmtLQ2hsY25Jc0lISmxZV1JwYm1jcElEMCUyQklIc0tJQ0FnSUNBZ2FXWWdLR1Z5Y2lrZ2RHaHliM2NnWlhKeU93b0tJQ0FnSUNBZ2MyVjBVM1JoZEdVb0lrRnVZV3h2WjIxdlpIVnNMa05vWVc1dVpXdzJJaXdvY21WaFpHbHVaeTV5WVhkV1lXeDFaU2twTEhSeWRXVTdDaUFnSUNCOUtUc0tJQ0I5TENCSmJuUmxjblpoYkNrN0NuMHBPd3A5Q2dwbWRXNWpkR2x2YmlCeVpXRmtPQ2dwZXdwamIyNXpkQ0JwYm5CMWREZ2dQU0J0WTNCaFpHTXViM0JsYmsxamNETXdNRGdvTnl3Z2UySjFjMDUxYldKbGNqb2dZblZ6VG5WdFltVnlMQ0JrWlhacFkyVk9kVzFpWlhJNlpHVjJhV05sVG5WdFltVnlMQ0FnYzNCbFpXUkllam9nTWpBd01EQjlMQ0FvWlhKeUtTQTlQaUI3Q2lBZ2FXWWdLR1Z5Y2lrZ2RHaHliM2NnWlhKeU93b0tJQ0J6WlhSSmJuUmxjblpoYkNnb0tTQTlQaUI3Q2lBZ0lDQnBibkIxZERndWNtVmhaQ2dvWlhKeUxDQnlaV0ZrYVc1bktTQTlQaUI3Q2lBZ0lDQWdJR2xtSUNobGNuSXBJSFJvY205M0lHVnljanNLQ2lBZ0lDQWdJSE5sZEZOMFlYUmxLQ0pCYm1Gc2IyZHRiMlIxYkM1RGFHRnVibVZzTnlJc0tISmxZV1JwYm1jdWNtRjNWbUZzZFdVcEtTeDBjblZsT3dvZ0lDQWdmU2s3Q2lBZ2ZTd2dTVzUwWlhKMllXd3BPd3A5S1RzS2ZRbyUzRCUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRUxpZXN0JTIwZGllJTIwV2VydGUlMjBkZXMlMjA0LUthbmFsLUFuYWxvZ21vZHVscy5idXNOdW1iZXIlMjAlMjZndCUzQiUyME5yLiUyMGRlcyUyMFNQSS1CdXNzZXMlMjAoUmFzUGklMjAxJTNEJTIwMCUyQyUyMFJhc1BpMiUyRjMlM0QxJTJDJTIwVGlua2VyJTIwQm9hcmQlM0QyZGV2aWNlTnVtYmVyJTIwJTI2Z3QlM0IlMjBnZW51dHp0ZSUyMENTLUxlaXR1bmclMjAoMCUyMG9kZXIxKSUyMCUyMCUyMCUyMCUzQyUyRmNvbW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMiU1QkhhWVolMjUlNUIqSmVZJTYweFAlM0EhWEVIUiUyMiUyMHglM0QlMjI4OCUyMiUyMHklM0QlMjItMTEyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRTEwMDAwJTIwJTNEJTIwMTAlMjBzZWMlMjAlMjAlMjAzMDAwMDAlMjAlM0QlMjA1JTIwbWluJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsY3VzdG9tbm9yZXR1cm4lMjIlMjBpZCUzRCUyMllhb1dHUkx5TSUyQ3VERiU1RTMlMkIlMkNMJTNEbCUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMlJlYWRfOEFJX01vZHVsJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMmJ1c051bWJlciUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJkZXZpY2VOdW1iZXIlMjIlM0UlM0MlMkZhcmclM0UlM0NhcmclMjBuYW1lJTNEJTIySW50ZXJ2YWwlMjIlM0UlM0MlMkZhcmclM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFSRzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyWFF3JTdDOHRjcShWNkdyJTVEWThtKiUyNHYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJ5ZCU0MGtyWXJHWml+JTVFJTNBcSUzRCUzRFAlNDBDRyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjZoQWNJJTIzNlhtJTVFJTI0TnNZQ21MKiU0MCglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U2MDAwMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb24lMjIlMjBpZCUzRCUyMn5TLSlZJTQwWFFLdmVnLWJKbTB+JTNGbyUyMiUyMHglM0QlMjI4OCUyMiUyMHklM0QlMjI2MyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbmFsb2dtb2R1bC5DaGFubmVsMCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFYW55JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMiUzQmpqVm9kdSU3RE4lN0JLSCUyMyFGMnYzaWMlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19vcGVyYXRpb24lMjIlMjBpZCUzRCUyMiU1QiU1RSUzQWJlJTNCJTNBUn5YJTYwRSUyQjdGX1ZpMCElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiUzRHF1bFdFJTIzUyUzQWJKSi0hWG9iZHY4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIydFg0dCFmN1pSZSUzRiUyQ0NVYSgxMVVHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLkFuYWxvZ21vZHVsLkNoYW5uZWwwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJfY25JOSFwU1FIMjBWdDNGOEElNjAlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyMzAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMihGV3UhfnElNUQlNUVQfmZfdiU3RCUyQldqJTVEJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIydWZpLi0lNUJFQiU3RHZzcyUyQlp1JTI1YipOISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbmFsb2dtb2R1bC5DaGFubmVsMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIycyUyNEgpJTdEUnhmJTI1JTYwcmtMcWMlNUJGVSUzQkclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U2MDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJlJTYwVUgxVCU1RE9IJTJCcmxUb3JfKCUyNDFUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIqNCU1RVNOciUyNTglN0NuJTNGcShZSUEyJTVEMiUyQiUyMiUzRWRyZWlzYXR6X3p3aXNjaGVud2VydCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMkluZlViN29YQ05aWEYtXyU3Q0k1RkglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRURJVklERSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyaWIlMjNOKSUzRCUyQmQlNUJGOXMlMkJkJTVCZyU1RSUyQ0d2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMi5Rb0glMkM3TiUyNU4lN0QlNDBaTXctJTJCM0VidyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTMyMCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMk4zOSUyM1R4Q2UxZms0SG8lM0F5JTdCVzMyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjVDJTVCN1dBJTdCQXQlM0YzSmJIRyUyNTMlMjQlNDAhJTIyJTNFRWluaGVpdCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMkhTJTNGb2glNjApT1l+b3E5dkElMjRkcSU1QkUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIpNmQlMjV2JTI0ZE5lTlZIWSUzQlFOWVclMkZvJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ0JTJCJTQwRyUzRHJTdilRLUhJJTIzTi1nJTNBR28lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIhTyoqdyU1QlFhTSUyRlZrJTNERyklNjBKYzAlNUIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyNTUlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJHTiUyRm9LUm8xJTI1JTQwdmglM0ElN0JTLTRMcGolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmNMWk8xJTI1UnUlMkIlM0E0bSUyQ0ZSJTJDS3I3cyUyMiUzRWRyZWlzYXR6X2VuZHdlcnQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjJZKWMyZ2MlNUJvYSUyNGNVaSkxJTdCM2JmJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNVUxUSVBMWSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIycyU2MFVSRDRZJTIzdjl+YjRrUSUzRCpDRCklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJ0NzdQWk9YISU0MEpiJTdCJTYwZUx1Z2hQYiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyKjQlNUVTTnIlMjU4JTdDbiUzRnEoWUlBMiU1RDIlMkIlMjIlM0VkcmVpc2F0el96d2lzY2hlbndlcnQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJaTkklNURCJTVEJTNGa1h+bHZIUDkxQ1h0dyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMkQlNjBVNGNLQkN6JTJDZ3dvdmJCIUluUCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1QyU1QjdXQSU3QkF0JTNGM0piSEclMjUzJTI0JTQwISUyMiUzRUVpbmhlaXQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMjJCJTNGNkJrOWtFRXU1JTI0OW1Xb050UiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTdCM2dQJTI1UHZKNCU2MFhrJTJDRURqMCF5VyUyMiUzRUJvZGVuZmV1Y2hlX1Byb3plbnQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9yb3VuZCUyMiUyMGlkJTNEJTIyOUQlM0R0JTQwamdnd08zaCU1REwlM0JTUDFtciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFUk9VTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk5VTSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTNCJTNBb0R5WlZWSiUyQ19JcVpDc2RyJTNGNiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTMuMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTI1JTYwUWlwVyUzQkYlNDBoNyUzRE1CJTJCJTIzWiUyMyl5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJjTFpPMSUyNVJ1JTJCJTNBNG0lMkNGUiUyQ0tyN3MlMjIlM0VkcmVpc2F0el9lbmR3ZXJ0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJIWE1mMEtBdXBtWU8lNUUlMjVWKEMxciglMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDBfaW5fJTI1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjI4aSUyQ1klMjQ0QXIlM0YlMjQtTihPJTJGa3JKKWclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlM0ZuTyUyRnRrbnhRLkFRSyUyNUMlN0QucnFzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkM2b3UlNjBDeSUyM00lMkIlM0QlM0JoJTNBNGpfZTYzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyciUzRnpxQjBkbSh2QyU1RVcwJTNEaSU1QiUyNUthJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlN0IzZ1AlMjVQdko0JTYwWGslMkNFRGowIXlXJTIyJTNFQm9kZW5mZXVjaGVfUHJvemVudCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uJTIyJTIwaWQlM0QlMjJ3JTVCNSU2MGclNUQxTUwlMjR3dUxMKnludWUlMjQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDElM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRWFueSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJIZCUzQX4lMjVVKXZiMCUyMyUyRiUyMzQlN0R2VTElN0NoJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjIlMjRUQSElN0QlMjQlN0JRb1hGJTdEWSUyNG4lNDBUcFJOJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJjckY2JTYwV20wY08lMjNpTyExJTNGLkNHJTQwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTIzZHNKa0IlNURGKDhJaW82bFclMkNHJTJCMiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbmFsb2dtb2R1bC5DaGFubmVsMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTdESSUzRnVpJTJDJTdEJTI1aSg2NzR6MUMxZUElN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyMzAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiU2MENJJTJCUypEUFRTdChKeUNXJTQwRWdqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIydTJ+TSU1QnYlMkIwTCUzQjFHQzk5JTJDaCUyMyUyM0wlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMlQteHolM0FsZyo5eiklM0IlM0E1MzNqY0JSJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNjAwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIydUxpdyUzRDFGX2NCJTdEc09+U0tVbUdqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJtNSUyQkJ5diUyQ2YlN0JSRlhEMHBHWmJoUSUyMiUzRWRyZWlzYXR6X3p3aXNjaGVud2VydF9HYXJ0ZW4lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjIlNDBvTUolM0IlN0RXJTQwcF9ETSU1RTNOS3ZPTHclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRURJVklERSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyRmwzR0VzJTdCJTJCaFNqJTI0KSUyQiUyQ1Q5b0FhJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkJhSyUyQ1klMkN1eHhHRkpzYiUyQlglNUUlM0IlN0MqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMzIwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIydShNSXRQbXklNjAlMjMlNDBVISUzRkJpLUF4JTVCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIxSV8qNmdiJTNBKGclMjMqfjFETTV4aCUyQyUyMiUzRUVpbmhlaXRfR2FydGVuJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyTmhHR3ElNUJzUTkoJTNEJTNGJTJGNlElMkJNa2wlMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlM0YzcDNuaEgqRG1JUXBmNyU1QjhSRF8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmJ4QnRnJTNCKSU1RWVpJTQwNSUyNCpFdFNlLW8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJ2dikyJTIzRDhiTyUzRG9jWUpCZFBxa1YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyNTUlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJGR19iJTNEJTVCa3p6V2xsKE8zbmlCVHElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkUlNUR3MkxYUkY4QyU2MEx0Sm4lNUUlN0JvQzAlMjIlM0VkcmVpc2F0el9lbmR3ZXJ0X0dhcnRlbiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMjNpcyUyRlBRJTNEfnZRNShoSCElMkY3YyUyMy4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1VTFRJUExZJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJOJTI0dnlsc19JJTdENWJsJTNEVyUzQSFWZS54JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyYTBBWiU1QjN+JTVEVXRQVkV1SyUyMypYJTNBcSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIybTUlMkJCeXYlMkNmJTdCUkZYRDBwR1piaFElMjIlM0VkcmVpc2F0el96d2lzY2hlbndlcnRfR2FydGVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTVEb0IqJTdEZVBWJTYwUEJhT0UzKG4pUCglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJ1NHZLJTI0JTVFa3BpMTVCJTI1fiUzRClOcWZyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIxSV8qNmdiJTNBKGclMjMqfjFETTV4aCUyQyUyMiUzRUVpbmhlaXRfR2FydGVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJvYXcuTFpmKms1JTJGIXclNUQzfmdLITYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNSl3cjIlNUJkdnAlMkYlMkZCUyU3Qn5lc3VvdCUyMiUzRUJvZGVuZmV1Y2h0ZV9Qcm96ZW50X0dhcnRlbiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX3JvdW5kJTIyJTIwaWQlM0QlMjIlM0ElM0QlNURJN2UlMkIlN0J4JTIzeG9SY0RYZyElNUJWJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VST1VORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTlVNJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlM0ZYZ3NTVkFWJTNGckFxQU4lMkIuU0pRSSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTMuMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIya1R5JTI1JTNCbGU0JTJDakNZTnh0cnF6OFYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkUlNUR3MkxYUkY4QyU2MEx0Sm4lNUUlN0JvQzAlMjIlM0VkcmVpc2F0el9lbmR3ZXJ0X0dhcnRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyRjF2WGslMkJMJTdCSGIlMjNwTVo1Wn53WFklMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQW5hbG9nbW9kdWwuQ2hhbm5lbDFfaW5fJTI1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjIlM0E2JTJDQWNvLSE0WVNBRyU1RTBzbi4lNUR+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNSU5VUyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyKG5rNkVBJTI0RTRWSjd5JTQwcSp2dUFjJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUyNSU1Qi4lM0E0JTI0SSU3RCU3QiU1RCU1RWJwLkZHZE1jVSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMmFKKClYTWclM0RkY0J1OSU3RCUyRm1qXyU1QiglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNSl3cjIlNUJkdnAlMkYlMkZCUyU3Qn5lc3VvdCUyMiUzRUJvZGVuZmV1Y2h0ZV9Qcm96ZW50X0dhcnRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJRY00lMjMyfjhkajEtYyUyNU5Na0t0ViU0MCUyMiUyMHglM0QlMjI1NjMlMjIlMjB5JTNEJTIyMTM4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUtsZWluc3RlciUyMFdlcnQlMjAtMjAlMjBpbiUyMG5hc3NlciUyMEVyZGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyZXh5JTNENVklM0IlM0FGUE5TJTNCM1NaJTNEdm1zJTIyJTIweCUzRCUyMjEwNjIlMjIlMjB5JTNEJTIyMTM3JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUdyJUMzJUI2JUMzJTlGdGVyJTIwV2VydCUyMFRyb2NrZW4lMjAlMkIzMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJVZmNOS1hFJTQwX3gpTlF+JTJGNEhuayU3QyUyMiUyMHglM0QlMjI3ODglMjIlMjB5JTNEJTIyMjM4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRSUyQiUyMDIwJTIwbWVociUyMGFscyUyMGRlbHRhJTIwVHJvY2tlbiUyRk5hc3MlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJCaiFvNiUzRDglNUROJTNCQk1TbHNvJTJDciUyRi0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFJTJCNSUyMG1laHIlMjBhbHMlMjBXZXJ0JTIwaW4lMjBnYW56JTIwbmFzc2VyJTIwRXJkZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=
            

            Brauche hier weiterhin eure Hilfe.

            Edit 13.02.2025: Es funktioniert!!! Leider kann ich aber nicht nachvollziehen warum. Aus lauter Frust hab ich nochmals
            https://www.raspilc.de/Tutorials/4-Kanal-Analog-Modul-in-ioBroker-nutzen über die Katze im IoBroker eingespielt. Ging ohne Fehler und ich hatte im Objekt 8 Kanäle und 1 und 5 hatten auch etwas angezeigt. Hab dann mein Java Script aufgerufen und auch das ging ohne Fehler. Was jetzt anders war als in den letzten Tagen kann ich leider nicht sagen. Falls jemand eine nachvollziehbare Idee hat kann das ja nicht schaden die hier zu posten.
            LG Horst

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            450

            Online

            32.7k

            Benutzer

            82.5k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe