nerdshop / asinello-client

Client software of the asinello project
Apache License 2.0
1 stars 0 forks source link

Recherche: Geeignete Basis #1

Open Oderik opened 3 years ago

Oderik commented 3 years ago

Voraussichtlich werden wir unter Verwendung von Libraries selbst programmieren und dafür VS Code / Platform IO verwenden.

Gibt es bessere Optionen? Eine fertige Plattform, die für unsere Zwecke konfiguriert oder angepasst werden kann? Das sollten wir möglichst früh klären.

avanc commented 3 years ago

Also bei einem ESP hätte ich an Arduino IDE gedacht. PlatformIO hört sich auch interessant an (Open Source ;-) ).

Oderik commented 3 years ago

PlatformIO ist wie Arduino IDE mit mehr Komfort. Wie neulich schon in der Brettspielerunde angedeutet bin ich ziemlich faul beim Programmieren und werde über kurz oder lang aggressiv, wenn ich Code-Zeilen bis zum Semikolon austippen muss. ;)

Ich dachte eher an andere Grundlagen wie Tasmota (wohl eher nicht) oder eine dieser anderen konfigurierbaren Allround-ESP-Firmwares. (Espressiv selbst hat doch glaube ich so ein Betriebssystem, das dann LUA-Scripts ausführt. Und dann gab's da noch was, das ich als Thema für den Workshop eingetragen habe. Ich schau nochmal.)

EDIT: Das hier meinte ich: https://mongoose-os.com/

EDIT2: https://github.com/nodemcu/nodemcu-firmware

Oderik commented 3 years ago

Ich starte einfach mal mit PlatformIO. Im Rahmen anderer Projekte spiele ich parallel mit ESP Home rum.

Oderik commented 3 years ago

Um mit der Hardware zu spielen, experimentiere ich mit ESPHome. Ich strebe aber weiterhin die direkte Verwendung von PlatformIO an.

esphome:
  name: coronampel
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: !secret ssid
  password: !secret wifi

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "***"
    password: "***"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: !secret common

ota:
  password: !secret common

light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: D4
    num_leds: 30
    rgb_order: GRB
    name: Coronampel
    effects:
      - addressable_rainbow:
      - addressable_fireworks:
      - addressable_lambda:
          name: "Rotary"
          update_interval: 16ms
          lambda: |-
            int current = (int) id(rotary).state;
            while (current < 0) {
              current += it.size();
            }
            current = current % it.size();
            for (int i = it.size() - 1; i >= 0; i--) {
              if (i == current) {
                it[i] = ESPColor::WHITE;
              } else {
                it[i] = ESPColor::BLACK;
              }
            }

sensor:
  - platform: homeassistant
    name: "7-Tage-Inzidenz Hildesheim"
    entity_id: sensor.covid_hildesheim_niedersachsen
  - platform: rotary_encoder
    name: "Rotary Encoder"
    id: rotary
    pin_a:
      number: D5
      mode: INPUT_PULLUP
      inverted: True
    pin_b:
      number: D6
      mode: INPUT_PULLUP
      inverted: True

binary_sensor:
  - platform: gpio
    name: "Button"
    id: button
    pin:
      number: D7
      mode: INPUT_PULLUP
      inverted: True

PS: Nicht wundern, das sollte ursprünglich eine Corona-Inzidenz-Ampel werden - und wird es vielleicht noch. 😅

Oderik commented 3 years ago

@LarsPotratz vielleicht hast Du Lust, Alternativen zum bisherigen Ansatz zu finden und zu evaluieren. Weiter oben sind zwei Beispiele verlinkt - es gibt sicher noch mehr. Ansonsten würde ich sagen wir schließen dieses Ticket und bleiben bis auf weiteres bei der direkten Verwendung von PlatformIO.