M5Stack Core2 mit homee nutzen

Aktuell noch nicht, da ich hier noch Geräte anlegen muss. Aktuell habe ich nur den Type 1 als unterstützte Variante drin.

Sensorik bedarf ja keine Rückmeldung an den homee und muss ja nur dargestellt werden.
Ich schau mal ob ich über die Profile der Geräte was machen kann.
Also einfach nur die node Id eingeben und der M5 erkennt dann welches Profil er nutzen muss.
Aber das ist verdammt viel Arbeit.

2 „Gefällt mir“

Das kann ich Dir natürlich nicht abverlangen - aber falls Du gelegentlich noch nach neuen Ideen/Herausforderungen suchst - ich denke, Deine paper-Lösung als homee-Dashboard wäre schon für viele eine super Sache.

Oder wie sieht das die community? :thinking:

2 „Gefällt mir“

Das sind jetzt nur Ideen, keine Aufforderungen und schon gar kein Zwang zur Umsetzung durch dich, @Micha . Du hattest ja gefragt :slight_smile:

Vielleicht könnte man eine Art Baukasten machen, wo man sich gewünschte Module und Funktionen in der WebUI anclickt.

Seite 1:
(X) Innen/Außen Temperatur
( ) Homee Status
( ) Buttons
( ) Debug
( ) …

Seite 2:
() Innen/Außen Temperatur
(X) Homee Status
( ) Buttons
( ) Debug
( ) …

Seite 3:
( ) Innen/Außen Temperatur
( ) Homee Status
( ) Buttons
( ) Debug
(X) …

Dann Modulkonfig:
Buttons:
Wieviele? Welche? Usw?

Temperaturen:
Sensor innen? Sensor Außen?

Usw

Ich hoffe, das ist verständlich?

homee heute mal im Stressmodus :open_mouth::crazy_face:

4 „Gefällt mir“

:mechanical_arm:

:flushed: :thinking:

@Micha
Hab alles nach Anleitung gemacht und denke soweit auch alles richtig gemacht.
Hab die homee IP und den Token eingetragen und einem Button eine ID zugewiesen.
Habe auch eine Fat32 formartierte SD-Karte drinnen auf der es den Ordner Icons gibt in dem die Symbole liegen.
Leider schaut der Bildschirm des M5Stack jetzt so aus:

Probleme:
– Wie bekomme ich die Symbole angezeigt?
– Die Seite 3 ist leer

Hast du den Ordner Icon klein geschrieben ?

Das muss er sein.

Hat jetzt funktioniert. Hatte den Ordner „icons“ benannt anstatt richtiger weise „icon“.
Danke!

Wichtig ist wirklich darauf zu achten im homee einen eignen User dafür anzulegen, da sonst die Verbindung getrennt wird wenn sich das ursprünglich Token gebende Geräte anmeldet.

So in der nächsten Version werden dann Luftdaten vonLuftdata.info mit eingebunden.

9 „Gefällt mir“

Ich sitze gerade daran die Anmeldung per Zugangsdaten umzusetzen.
Wenn mir da jemand helfen kann und möchte würde ich mich freuen.
Ich wollte diese Lib einsetzen rweather/arduinolibs: Arduino Cryptography Library (github.com).
Die ist für die Verschlüsselung verantwortlich (Sha512).
Den Tokenabruf über Node Red habe ich soweit hinbekommen und das ganze muss jetzt nur noch auf den M5 geschrieben werden.
Nur die Umwandlung für das Password ist noch etwas in der Schwebe.

Freiwillige vor :grinning:

2 „Gefällt mir“

Hallo @Micha, mein M5paper ist jetzt angekommen und ich bin am „spielen“.
Beim kompilieren bekomme ich Meldungen wie zB

device1:123:44: error: ‚G15‘ was not declared in this scope
canvas.drawRoundRect(0, 0, 200, 200, 20, G15);

Ich vermute mal, dass ich evtl. noch nicht die richtigen Board-Informationen im Board-Verwalter geladen habe (habe die „M5Stack-CoreInk“ genommen).
Welches Board muss geladen werden?

Wo muss ich denn SSID, Token, homee-IP… eingeben?
Ich habe das im Reiter [index_html.h] gemacht.

Du benutzt ganz normal wieder die webui.
G15 ist hier die Farbe und da ist die Frage ob du die Bibliothek auch installiert hast.

Aber bedenke das hier noch nichts fertiggestellt ist und du selber weiter daran arbeiten musst.
Bin gerade beim M5Stack dran und daher liegt das Paper aktuell nur rum.

Wenn du Hilfe benötigst dann schreib mir ruhig ne PM

1 „Gefällt mir“

Danke für die schnelle Antwort, dann warte ich vielleicht doch noch etwas mit „spielen“.
Aktuell hat sich das paper ohnehin aufgehangen und reagiert auf nichts mehr :expressionless:
Meinen M5Stack hattest Du via TeamViewer und Arduino mal „resettet“ - welchen Befehl muss ich denn da im Terminal eingeben?

Ist dein Paper in der Rebootschleife ?

Ja, im seriellen Monitor steht „Rebooting“

Ich nehme an, ich habe ihn damit „verwirrt“:
grafik

Das ganz normale m5stack Core esp32 als Board wählen

#include <Arduino.h>

#include <Crypto.h>
#include <SHA512.h>
#include <Base64.h>

#define HASH_SIZE 64

SHA512 sha512;

void array_to_string(uint8_t array[], unsigned int len, char buffer[])
{
    for (unsigned int i = 0; i < len; i++)
    {
        byte nib1 = (array[i] >> 4) & 0x0F;
        byte nib2 = (array[i] >> 0) & 0x0F;
        buffer[i*2+0] = nib1  < 0xA ? '0' + nib1  : 'a' + nib1  - 0xA;
        buffer[i*2+1] = nib2  < 0xA ? '0' + nib2  : 'a' + nib2  - 0xA;
    }
    buffer[len*2] = '\0';
}

void hashPassword(char* password, size_t size, char* hash) {
  uint8_t value[HASH_SIZE];
  sha512.reset();
  sha512.update(password, size);
  sha512.finalize(value, sizeof(value));
  array_to_string(value, HASH_SIZE , hash);
}

void setup() {
  Serial.begin(115200);
  Serial.println("Setup");

  char username[] = "test";
  char password[] = "abcde1234";
  char hash[HASH_SIZE*2 + 1];

  //9bc0cda063391a6d8304a250d59ef008f301797e2359e72464d5f1c9eb2d12d5d47e01f56a5317d5b0e1f7284d5d3101f282791363235cddcd262799e2a19fe7
  hashPassword(password, strlen(password), hash);
  Serial.println(hash);  

  char authBuffer[strlen(username) + strlen(hash) + 1 ] = {'\0'};
  sprintf(authBuffer, "%s:%s", username, hash);

  Serial.println(authBuffer);

  int encodedLength = Base64.encodedLength(strlen(authBuffer));
  char encodedString[encodedLength];
  Base64.encode(encodedString, authBuffer, strlen(authBuffer));

  Serial.println(encodedString);
}

void loop() {
  // put your main code here, to run repeatedly:


  sleep(5);
}

Evtl. hilft es etwas, ich hab nur bis dahin getestet :slight_smile: Ob der Hash richtig ist welchen ich da raus bekomme weiß ich nicht. Hab damit keinen Post-Request Richtung homee gemacht.
Aber wenn du die richtigen Werte in Node-Red schon bekommst könnte man ja schnell vergleichen.

Achse, die platformio.ini:

[env:esp32doit-devkit-v1]
platform = espressif32
board = esp32doit-devkit-v1
framework = arduino
lib_deps = 
	operatorfoundation/Crypto@^0.2.0
	agdl/Base64@^1.0.0
monitor_speed = 115200

Einen m5… hab ich nicht.

2 „Gefällt mir“