• SHOP-INFO: Kurze Pause!

    Im Zeitraum vom Mo. 25.03.2024 bis Di. 02.04.2024 erfolgt kein Versand. Shop-Bestellungen, welche in diesem Zeitraum getätigt werden, werden voraussichtlich erst wieder ab Mi. 03.04.2024 bearbeitet und verschickt.

    Euer WLANThermo Team wünscht euch schöne Ostertage!

Nano Cloud Service

Lemmy

New member
Moin Moin,

ich versuche auch gerade den Nano an meine eigene Cloud anzubinden.

Um die Beta-Firmware zu installieren bin ich dieser Doku gefolgt.

Leider bekomme ich beim Kompilieren diesen Fehler.
core_esp8266_si2c.c: No such file or directory

Jemand eine Idee was hier fehlt?

Besten Dank
Lemmy
 
Zuletzt bearbeitet:

Phantomias2006

Entwickler
Teammitglied
Admin
Moin Moin,

ich versuche auch gerade den Nano an meine eigene Cloud anzubinden.

Um die Beta-Firmware zu installieren bin ich dieser Doku gefolgt.

Leider bekomme ich beim Kompilieren diesen Fehler.
core_esp8266_si2c.c: No such file or directory

Jemand eine Idee was hier fehlt?

Besten Dank
Lemmy
Hi Lemmy,
Master branch? Nimm den develop und installiere dir Visual Studio Code und PlatformIO. Dann brauchst du dir das ganze nicht antun mit libs etc.

Edit:
Mit "Dann brauchst du dir das ganze nicht antun mit libs etc." meine ich du sollst die komplette Wiki Seite ignorieren! Es werden in PlatformIO alle libs/core etc. automatisch geladen anhand des Projektfiles. Du brauchst weder Arduino IDE noch sonst was.....
 

s.ochs

BOFH
Teammitglied
Admin
Um die Beta-Firmware zu installieren bin ich dieser Doku gefolgt.
Was genau willst du da installieren? Hast du am Code was geändert? Ansonsten kannst du die BINs nämlich auch per esptool oder esp easy installieren. Aber auch mit Arduino IDE geht. Allerdings bräuchte ich dann mehr Infos: Welche Arduino Version, welcher ESP-Core, welche Libs installiert etc. Der Fehler sieht mir nach inkompatiklem Core/Libs aus. Oder du machst es wie Flo es beschrieben hat und wechselst wie wir auf PlatformIO.
 

s.ochs

BOFH
Teammitglied
Admin
Ok, für die Anpassung brauchst du die Beta gar nicht, dass kannst du bei v1.0.6 auch ohne Änderung im Code machen. Wenn es um das "Connection:close" von weiter vorne hier im Fred geht, dann solltest du den develop Branch nehmen, nur da ist das drin, dafür brauchst du aber PlatformIO.
 

Lemmy

New member
Mein Plan ist es die Aufzeichnungen länger als 24 Stunden zu behalten.
Ein Root-Server mit Apache2 / MariaDB usw. ist vorhanden.
Also eigentlich muss das WlanThermo nur an die neue Cloudadresse die Updates senden.
Irgendwie habe ich nur hier was dazu gefunden.
Ein richtiges HowTo finde ich nicht.
 

s.ochs

BOFH
Teammitglied
Admin
Ein richtiges HowTo finde ich nicht.
Weil es aktuell zwar möglich ist die Cloud quasi 1:1 auf einen lokalen Server unterzubringen, die Programmierung aber noch ein Zwischenstatus ist, welcher am Ende vermutlich nicht so in dieser Form bleiben wird. Uns war damals nicht bewusst, dass das Interesse dran so hoch ist.

Will man die Cloud 1:1 lokal kopieren, muss zum einen die Cloud am eigenen Server aufgebaut werden und zum anderen muss der Sendepfad im Nano geändert werden. Das hatte ich weiter vorne schonmal beschrieben. Dafür muss du IPdesNano/url.json aufrufen und das ausgegebene JSON Array zwischenspeichern. Dann im JSON das Objekt "cloud" bearbeitet, indem man "host" und "page" korrekt an seinen lokalen Server anpasst. Wichtig ist hier, das "host" wirklich nur die Adresse zum Host beinhaltet. Beispiele dazu findet man hier im Fred weiter vorne. Ist das JSON angepasst, muss es zurück ins Nano gespielt werden. Hierfür muss ein POST-Request abgesetzt werden, das geht z. B. mit Postman. Der Request geht an IPdesNano/setapi und enthält als Body das angepasste JSON. Nach der Änderung am besten nochmal IPdesNano/url.json aufrufen und kontrollieren, ob die Änderung eingetragen ist. Danach sollte das Nano mit der Cloud-Funktion an die neue Adresse senden. Man kann das im Log an der Seriellen Schnittstelle auch kontrollieren, indem man im laufenden Betrieb IP/clientlog im Browser ausführt. Daraufhin wird der Log um den Request und die Antwort vom Server bei jedem Cloudaufruf erweitert. Das gilt aber nur bis zum nächsten Restart des ESP. Somit kann neben der richtigen URL auch die Antwort vom Server überprüft werden.

Diese Umleitung der Cloud-Funktion ist aktuell aber nur so lange stabil, wie kein Update der Firmware per Online-Update durchgeführt wird. In dem Fall wird aktuell die url.json im Speicher nämlich überschrieben. D.h. nach einem Update muss man das geänderte JSON erneut übermitteln.

Will man die Daten vom Nano weiterverarbeiten, ist dabei aber nicht an "unsere" Cloud-Optik gebunden, dann ist der Weg über die API immer sinnvoller. Also die Daten einfach per http/mqtt API selbst vom Nano abrufen und dann eigenständig weiterverarbeiten. Der Weg wird immer funktionieren, auch ohne Anpassung an der Firmware.
 

Lemmy

New member
Moin Moin,

ich habe den Nano-Server bei mir auf den Root-Server gepackt.
Das Nano meldet sich auch schon.

PHP Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 1364 Field 'amazon_token' doesn't have a default value in /var/www/api.u.de/index.php on line 204

Hat wer eine Idee wie ich diese Meldung weg bekomme?
Es wird leider noch nichts in die DB geschrieben

im Client-Log sehe ich

User-Agent: WLANThermo nano
SN: 31xxxx
Host: api.u.de

{"device":{"device":"nano","serial":"31bdce","item":"n2E03oC19a0","cpu":"esp82xx","flash_size":4194304,"hw_version":"v2","sw_version":"v1.1.0c3pu","api_version":"1","language":"de"},"cloud":{"task":"save","api_token":"31bdce5e4ae5b3d","data":[{"system":{"time":"1581968542","unit":"C","soc":100,"charge":false,"rssi":-45,"online":0},"channel":[{"number":1,"name":"Ebene 2","typ":0,"temp":999.00,"min":130.00,"max":170.00,"alarm":0,"color":"#FFC100"},{"number":2,"name":"Ebene 1","typ":0,"temp":999.00,"min":90.00,"max":140.00,"alarm":0,"color":"#22B14C"},{"number":3,"name":"PP Kamado","typ":0,"temp":999.00,"min":10.00,"max":93.00,"alarm":0,"color":"#EF562D"},{"number":4,"name":"PP Gas ","typ":0,"temp":18.70,"min":115.00,"max":220.00,"alarm":0,"color":"#804000"},{"number":5,"name":"PP Gas 2","typ":0,"temp":999.00,"min":10.00,"max":220.00,"alarm":0,"color":"#A349A4"},{"number":6,"name":"PP Gas 3","typ":0,"temp":999.00,"min":10.00,"max":93.00,"alarm":0,"color":"#FFC100"},{"number":7,"name":"Kanal 7","typ":0,"temp":999.00,"min":10.00,"max":140.00,"alarm":0,"color":"#5587A2"},{"number":8,"name":"Kanal 8","typ":0,"temp":999.00,"min":10.00,"max":93.00,"alarm":0,"color":"#5C7148"}],"pitmaster":[{"id":0,"channel":1,"pid":2,"value":0,"set":150.00,"typ":"off","set_color":"#ff0000","value_color":"#000000"}]}]}}
HTTP/1.1 200 OK
Date: Mon, 17 Feb 2020 19:42:23 GMT
Server: Apache/2.4.38 (Debian)
Upgrade: h2,h2c
Connection: Upgrade
Content-Length: 0
Content-Type: text/html; charset=UTF-8



Viele Grüße
Lemmy
 
Zuletzt bearbeitet:

Lemmy

New member
1581971915085.png

Ja gibt es
[automerge]1581972275[/automerge]
Ich habe das Feld entfernt und siehe da es werden Daten in die Datenbank geschrieben.

Danke für die Tipps
Lemmy
 
Zuletzt bearbeitet:
Oben Unten