Open Oderik opened 3 years ago
Also bei einem ESP hätte ich an Arduino IDE gedacht. PlatformIO hört sich auch interessant an (Open Source ;-) ).
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/
Ich starte einfach mal mit PlatformIO. Im Rahmen anderer Projekte spiele ich parallel mit ESP Home rum.
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. 😅
@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.
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.