Pekaway App Android

Hallo @Vincent
Die App macht ja erst mal eine guten Eindruck :+1:. Ich hätte da aber mal 3 Probleme.
1.Die Temperaturen werden nicht übertagen
2. Der Dimmer wird nicht übertragen
3. Wenn ich die 2 Tankanzeigen anwähle für den Home Screen erscheinen die dort nicht. Dort ist nur Restzeit und Betriebszeit. Natürlich habe ich noch nicht die V2.
Wie werden die Daten übermittelt??? Http?? MQTT??? Könnte bei mir mal suchen woran es liegt.
Mit dem neuen Systeme habt ihr euch echt übertroffen. Respekt :+1:
Wann erscheint die Version 2 im Download???
Gruß Arno

Moin Arno,

ich schreib grade ne Anleitung was alles geändert werden muss, damit die App funktioniert, kommt heute noch online (hier im Forum).

  1. Die Werte der Temperaturen müssen als String gesendet werden, weiß grad nicht mehr genau warum aber dafür gabs einen Grund in der App.
  2. Die Werte der Dimmer müssen wiederum Integer sein :smiley:
  3. Kann es auch (noch) nicht, dafür brauchst du einen neuen HTTP Endpunkt.

Lokal läuft alles über HTTP, Remote dann über MQTT.

Die v2 wird spätestens mit Start der Auslieferung der Cores zur Verfügung stehen.

Mensch das ging aber schnell. Deutlich unter 24 stunden :wink:
Danke schönes Wochenende euch allen
Gruß Arno

Ich habe mich mal ein wenig mit der App und den Neuen Flows beschäftigt.
Die Batterie Seite habe ich hin bekommen. Die Daten habe ich für mein QUCC BMS angepasst. Feinschliff mit 3 Stellen hinter dem Komma muss ich noch machen.
auf der Temperaturseite habeich jetzt 8 Temperaturen, und es gehen sicher noch mehr :wink:
Schalter und Dimmer gehen auch.
Mein vorhandenes GPS habe ich auch angepasst und funktioniert.
was ich nur komisch finde ist, ich übermittele die Zulu Zeit, die wird vom GPS geliefert,
angezeigt wird die MEZ. Ist aber nicht schlimm, das erspart die umrechnerei.:slight_smile:
Den Lage Sensor habe ich nicht hinbekommen. In einem Debug Node hinter der Exec-Node kommt folgende Meldung

23.3.2024, 14:34:31node: debug 348
msg : Object
object
_event: "node:d4b86279cba0e3a3"
payload: "Traceback (most recent call last):↵  File "pekaway/mpu_py/mpuAngle.py", line 56, in <module>↵    temp = get_temp()↵  File "pekaway/mpu_py/mpuAngle.py", line 32, in get_temp↵    raw_temp = read_raw_data(MPU6050_TEMP_OUT_H)↵  File "pekaway/mpu_py/mpuAngle.py", line 24, in read_raw_data↵    high = bus.read_byte_data(MPU6050_ADDR, addr)↵OSError: [Errno 121] Remote I/O error↵"
rc: object
code: 0
parts: object
id: "820942a66b2ec292"
type: "string"
ch: "↵"
index: 0
count: 3
_msgid: "6f7e8f33516691bf"

Den nginx Webserver habe ich auch nicht hinbekommen
systemctl status nginx.service
ergibt folgende Meldung

pi@pekaway:~$ systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2024-03-23 13:39:10 CET; 34s ago
     Docs: man:nginx(8)
  Process: 2014 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (c

Mar 23 13:39:10 pekaway systemd[1]: Starting A high performance web server and a rever
Mar 23 13:39:10 pekaway nginx[2014]: nginx: [emerg] a duplicate default server for 0.0
Mar 23 13:39:10 pekaway nginx[2014]: nginx: configuration file /etc/nginx/nginx.conf t
Mar 23 13:39:10 pekaway systemd[1]: nginx.service: Control process exited, code=exited
Mar 23 13:39:10 pekaway systemd[1]: nginx.service: Failed with result 'exit-code'.
Mar 23 13:39:10 pekaway systemd[1]: Failed to start A high performance web server and
lines 1-12/12 (END)
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2024-03-23 13:39:10 CET; 34s ago
     Docs: man:nginx(8)
  Process: 2014 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)

Mar 23 13:39:10 pekaway systemd[1]: Starting A high performance web server and a reverse proxy server...
Mar 23 13:39:10 pekaway nginx[2014]: nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/peka
Mar 23 13:39:10 pekaway nginx[2014]: nginx: configuration file /etc/nginx/nginx.conf test failed
Mar 23 13:39:10 pekaway systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
Mar 23 13:39:10 pekaway systemd[1]: nginx.service: Failed with result 'exit-code'.
Mar 23 13:39:10 pekaway systemd[1]: Failed to start A high performance web server and a reverse proxy server.
~
~
~
~
~
~
~

und den Home Screen bekomme ich auch nicht hin.
Aus der http-node “get app_home/” kommt zwar raus was in der App konfiguriert wurde.
aus der Function node “create response object” kommt der Text

23.3.2024, 15:26:12node: debug 353msg : Object
{ _msgid: "d58ae469c2d0570c", payload: object, req: object, res: object }
23.3.2024, 15:26:12node: debug 354msg : Object
{ _msgid: "d58ae469c2d0570c", payload: object, req: object, res: object }
23.3.2024, 15:26:12node: debug 355msg : Object
{ _msgid: "d58ae469c2d0570c", payload: object, req: object, res: object }
23.3.2024, 15:26:12node: debug 356msg : Object
object
_msgid: "d58ae469c2d0570c"
payload: object
temp: object
temp1: object
id: "temp1"
state: 20.6
name: "Boiler"
level: object
level3: object
id: "level3"
state: 68
name: "Wasser"
newObject: object
temp: object
temp1: object
id: "temp1"
state: 20.6
name: "Boiler"
level: object
level3: object
id: "level3"
state: 68
name: "Wasser"
req: object
_readableState: object
objectMode: false
highWaterMark: 16384
buffer: object
head: null
tail: null
length: 0
length: 0
pipes: array[0]
flowing: true
ended: true
endEmitted: true
reading: false
constructed: true
sync: true
needReadable: false
emittedReadable: false
readableListening: false
resumeScheduled: false
errorEmitted: false
emitClose: true
autoDestroy: true
destroyed: true
errored: null
closed: true
closeEmitted: true
defaultEncoding: "utf8"
awaitDrainWriters: null
multiAwaitDrain: false
readingMore: true
dataEmitted: false
decoder: null
encoding: null
_events: object
end: array[2]
0: function
1: function
_eventsCount: 1
_maxListeners: undefined
socket: "[internal]"
httpVersionMajor: 1
httpVersionMinor: 1
httpVersion: "1.1"
complete: true
rawHeaders: array[6]
0: "user-agent"
1: "Dart/3.3 (dart:io)"
2: "accept-encoding"
3: "gzip"
4: "host"
5: "pekaway.local:1880"
rawTrailers: array[0]
aborted: false
upgrade: false
url: "/app_home?t=1&l=3"
method: "GET"
statusCode: null
statusMessage: null
client: "[internal]"
_consuming: false
_dumped: true
next: function
baseUrl: ""
originalUrl: "/app_home?t=1&l=3"
_parsedUrl: object
protocol: null
slashes: null
auth: null
host: null
port: null
hostname: null
hash: null
search: "?t=1&l=3"
query: "t=1&l=3"
pathname: "/app_home"
path: "/app_home?t=1&l=3"
href: "/app_home?t=1&l=3"
_raw: "/app_home?t=1&l=3"
params: object
empty
query: object
t: "1"
l: "3"
res: "[internal]"
body: object
empty
_parsedOriginalUrl: object
protocol: null
slashes: null
auth: null
host: null
port: null
hostname: null
hash: null
search: "?t=1&l=3"
query: "t=1&l=3"
pathname: "/app_home"
path: "/app_home?t=1&l=3"
href: "/app_home?t=1&l=3"
_raw: "/app_home?t=1&l=3"
route: object
path: "/app_home/"
stack: array[6]
0: object
handle: function
name: "cookieParser"
params: undefined
path: undefined
keys: array[0]
regexp: /^\/?$/i
method: "get"
1: object
handle: function
name: "httpMiddleware"
params: undefined
path: undefined
keys: array[0]
regexp: /^\/?$/i
method: "get"
2: object
handle: function
name: "corsHandler"
params: undefined
path: undefined
keys: array[0]
regexp: /^\/?$/i
method: "get"
3: object
handle: function
name: "metricsHandler"
params: undefined
path: undefined
keys: array[0]
regexp: /^\/?$/i
method: "get"
4: object
handle: function
name: "<anonymous>"
params: undefined
path: undefined
keys: array[0]
regexp: /^\/?$/i
method: "get"
5: object
handle: function
name: "<anonymous>"
params: undefined
path: undefined
keys: array[0]
regexp: /^\/?$/i
method: "get"
methods: object
get: true
secret: undefined
cookies: object
empty
signedCookies: object
empty
res: object
_res: [internal]
append: function
attachment: function
cookie: function
clearCookie: function
download: function
end: function
format: function
get: function
json: function
jsonp: function
links: function
location: function
redirect: function
render: function
send: function
sendfile: function
sendFile: function
sendStatus: function
set: function
status: function
type: function
vary: function

Es sind nur Temp1 und Level 3 angeklickt, in der Debugnode werden die auch angezeigt, gehen aber nicht weiter.
@Vincent hast du da eine Lösung???

Der Error bei dem Mpu Sensor ist ein recht generischer mit “Remote I/O error”. Sind da vielleicht irgendwelche mehrfach belegt? Hilft ein Neustart?

Bei Nginx ist das Problem, dass jetzt in dem neuen Serverblock ein “default_server” dazukommen ist und den kann es nur einmal geben in Nginx. In

/etc/nginx/sites-available/default

Ist noch ein default_server für Port 80 deklariert, aus der atei kannst du einfach überall das “default_server” löschen und dann nginx neustarten.

Für den Homescreen, sieht ja eigentlich alles richtig aus. Die http response Node mit Statuscode 200 ist aber da?

Hallo Vincent,
danke für die Antwort,
ich habe nur den MPU6050 auf der 69, muss man noch eine “.lib” installieren???
Mit dem nginx hat geklappe ich habe vor die 2 Zeilen eine # gesetzt und jetzt ist alles gut.
So sieht das jetzt bei mir aus, wie immer 1000 Debugs :wink:


was da aus der letzten Debug node komm sieht ja auch plausibel aus, Temperatur und Füllstand sind ja auch da. ???
Gruß Arno

@Vincent
Kann das sein das es an der Android APP liegt.
Ich habe gestern noch mit Meik telefoniert der hat ein Iphone, bei ihm kommen die Daten vom Home Screen. wir wollen heute Abend mal den Bereich vom Flow von Ihm exportieren, und bei mir Inportieren. Mal schaun ob es dann funktioniert.
Gruß Arno

Eigentlich nicht, der Code ist derselbe für beide Apps und bei mir auf Android läufts.

Kannst du mal versuchen was passiert wenn die Temperatur Werte als String gesendet werden? Wird in der App so oder so in Double umgerechnet, also sollte eigentlich keinen Unterschied machen, aber man weiß ja nie…
In der “generate objects” Node in Zeile 79:

msg.payload.temp[i].state = global.get(temp[i]).toString();

Und kannst du mal die Adresse, die du bei dem anderen Pythonscript für den MPU6050 hattest vergleichen? Weil laut Fehlermeldung müsste da der Fehler liegen:

line 24, in read_raw_data↵ high = bus.read_byte_data(MPU6050_ADDR, addr)↵OSError: [Errno 121] Remote I/O error↵

Hey Vincent
Ich setze das System mit der letzten Datensicherung noch mal neu auf.
Der mpu ist vermutlich defekt. Mit der alten python datei empfange ich auch nur jedes xte mal die Temperatur.
Schönen Abend noch

@Vincent
Hallo Vincent
nachdem ich im Bereich get Info
// “cpu_temp”: global.get(“rpi_cpu_temp”),
// “cpu_usage”: global.get(“rpi_cpu_usage”),
ausgeklammert habe bekomme ich den Home Screen.
Ich muss mich mal darum kümmer warum da 0 drinne steht.
Aber ist erst mal eine Lösung


Gruß und schöne “Rest Ostern”
Arno

Stimmt, die Variablen sind auch neu dazugekommen im Monitor Flow.

image

die obere Function Node:

msg.payload = parseFloat(msg.payload).toFixed(1)
global.set(“rpi_cpu_temp”, msg.payload)
return msg;

und die untere:

msg.cpu = msg.payload.trim()
msg.cpu = Number(msg.cpu).toFixed(2) + “%”
msg.payload = {}
global.set(“rpi_cpu_usage”, msg.cpu)
return msg;

Danke prüfe ich heute Abend. :+1:

Hallo Vincent
ich habe die beiden Function Node geändert, und es funktioniert.
die Daten werden aber noch nirgends angezeigt. Oder???
Nur zur Info
Irgendwo habe ich gelesen, dass die APP ab Android Version 8 ist???
Bei meinem Tablet Android Version 8.1.0 funktioniert die untere Menüleiste nicht richtig.
Es wird Home bis Dimmer angezeigt ( obwohl etwas zusammengerückt würde alles drauf passen) bedienen lassensich nur die Taster Home, Water, Batterie, die Schaltfächen für Temperatur, Schalter, Dimmer und Pfeil nach rechts lassen sich nicht bedienen. Man kann zwar die Seiten wischen um zur nächsten Seite zu kommen, bleibt aber spätestens beim GPS hängen, und kommt nicht weiter, weil man dann nur die Karte verschiebt. Das ändert sich unwesentlich im senktechten Gebrauch, da komme ich dann noch auf die Temperatur und die Schalter, Dimmer lässt sich nicht betätigen, und Pfeil nach rechts ist keiner da, schieben wie beim Handy kann man die Menüleiste auch nicht.
Mit dem Tablet kommt man dann nicht auf die auf den Lagesensor, und in die Einstellungen. Ähnliche Probleme gibt es wohl auch bei Android Radios.
Gruß Arno

Die Daten werden bis jetzt nur in den Einstellungen unter “App Informationen” angezeigt.

Die Probleme mit der Navigationsleiste bei größeren Displays ist mir auch schon aufgefallen. Generell ist die App nicht für Tablets optimiert. Hab erstmal alles für Smartphones fertig gemacht für den Livestream :sweat_smile:
Bei Apple kann man zumindest angeben, dass die App nur für iPhones und nicht für iPads gemacht ist, bei Android geht das nicht.

Hab mir auch schon ein paar andere Probleme mit aufgeschrieben zur App, zum Beispiel dass die Schriftgröße bei kleineren Displays nicht angepasst wird, wie bei dem einen Screenshot von dir.

Wenn du die Karte in der App offen hast hast du ja unten rechts so eine Anzeige mit den Daten für lat & lon und von wann die letzten Daten stammen. Auf dem Feld kannst du wischen :smiley: Und draufklicken kannst du auch und dann die Position in deiner favorisierten Navigationsapp öffnen

Der Plan ist aktuell folgender:
Erstmal wird das neue VAN PI OS fertig gemacht, das hat oberste Priorität grade (dauert auch nicht mehr lange).
Gleichzeitig wird die neue Software für die Iot-Bridges geschrieben, sodass die dann auch ziemlich zügig danach fertig ist.
Dann hier und da noch ein paar Kleinigkeiten und kleinere Projekte… :smiley:
Und dann kann ich mich wieder an die App setzen und unter anderem die Unterstützung für Tablets einarbeiten.

Ich denke mir das ihr im Moment auf Hochtouren lauft, sollte nur ne info sein, das ihr nicht arbeitslos werdet :joy: :joy:.
Der Tipp mit der gps Kart funktioniert.
Danke!!
Schönes WE
Gruß Arno