FHEMSync (Alternative zu FHEM2FHEM/RFHEM)

Begonnen von dominik, 18 März 2020, 21:55:46

Vorheriges Thema - Nächstes Thema

GreenFHEMfan

#120
Hallo bei mir ist FHEMSync gestoppt - folgendes gibt die LOG aus:

[MAIN   ] Starting FHEMSync version 2.0.3...
[MAIN   ] Options: {"version":"2.0.3","fhem":true,"port":true,"webname":true,"device":true,"ssl":true,"selfSignedCert":true}
(node:17373) UnhandledPromiseRejectionWarning: StatusCodeError: 401 - undefined
    at new StatusCodeError (/usr/lib/node_modules/fhemsync/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/usr/lib/node_modules/fhemsync/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/usr/lib/node_modules/fhemsync/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at Request.self.callback (/usr/lib/node_modules/fhemsync/node_modules/request/request.js:185:22)
    at Request.emit (events.js:315:20)
    at Request.<anonymous> (/usr/lib/node_modules/fhemsync/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:315:20)
    at IncomingMessage.<anonymous> (/usr/lib/node_modules/fhemsync/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:421:28)
    at IncomingMessage.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1201:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
(node:17373) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:17373) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.


Wo liegt bei mir der Fehler? Meine beiden Raspis sind beide über https zu erreichen!

Hier noch die Attribute die gesetzt sind:

FHEMSync-filter:         room=FHEMSync
FHEMSync-log:            ./log/fhemsync-%Y-%m-%d.log
FHEMSync-port:           8083
FHEMSync-selfsignedcert: false
FHEMSync-server:         127.0.0.1
FHEMSync-ssl:            false
FHEMSync-webname:        fhem
devStateIcon:            stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
nrarchive:               10
remote-server:           xxx.xxx.xxx.xxx
room:                    FHEMSync
stateFormat:             fhemsync
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

dominik

Hi,

401 ist eigentlich "Unauthorized". Ist Username und Password vielleicht falsch hinterlegt worden?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

GreenFHEMfan

#122
Hallo, also ehrlich gesagt habe ich kein Username und Passwort verliehen. Attribut auth habe ich nicht gesetzt.

Mal eine Frage zu deiner Einrichtung...

- In der Haupt-FHEM Instanz:
     - define fhemsync FHEMSYNC
     - attr fhemsync remote-server IP-VON-REMOTE-FHEM
     - Folgende weitere Werte koennen gesetzt werden wenn diese von Default abweichen, default:
            server: MUSS GESETZT WERDEN
            port: 8083
            webname: fhem
            filter: room=FHEMSync
            auth: ""
            ssl: false,
            selfsignedcert: false
       - FHEMSync-* Werte setzen wenn diese von Default abweichen, default:
            server: 127.0.0.1
            port: 8083
            webname: fhem
            auth: ""
            ssl: false,
            selfsignedcert: false


...was ist mit - FHEMSync-* gemeint? Ist das etwas in der Remote-Instanz? oder in der Haupt-Instanz? aber über die Attribute der Haupt-Instanz hast du schon schon kurz darüber geschrieben - also es ist nicht klar was man hier genau einrichten soll!
Ich hab in der Remote-Instanz auch nur die Devices in das FHEMSync-Verzeichnis gelegt und vorher die 2 xxx.pm Dateien ins FHEM Verzeichnis kopiert und reloaded!
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

dominik

Hi,

alle FHEMSync-* Attribute beziehen sich auf den FHEMSync Server, also dort wo FHEMSync drauf laeuft. remote-* ist dann die Remote Instanz.

Verwendest du vielleicht ssl? Wenn ja, sollte FHEMSync-ssl true sein und wahrscheinlich auch -selfsignedcert true.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

GreenFHEMfan

#124
Ich habe auf der Haupt Instanz SSL und Cert auf true gesetzt -> ohne Erfolg
Nochmal zur Einrichtung - ich habe auf beiden Instanzen 10_FHEMSYNC und 10_FHEMSYNC_DEVICE kopiert und geladen.
War das richtig?

Außerdem wie setze ich Attribut FHEMSync-auth bzw. remote-auth richtig?
<Username> <Passwort>
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

dominik

Du brauchst nur am Master FHEMSync installieren, am Remote FHEM musst du nichts installieren.

Fuer den Master muss man im Normalfall auch nichts an Attributen definieren, solange man Standard und kein https nutzt.
*-auth Attribut Format: user:password
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

GreenFHEMfan

#126
Danke es funktioniert jetzt!

Folgendes habe ich gemacht - die *.pm-Dateien aus dem FHEM Verzeichnis des Remote gelöscht und neu gestartet.
In der Haupt-Instanz habe ich remoteSSL und ServerSSL auf true gesetzt, habe remote-auth und Server-auth gesetzt.
Remot-cert und Server-cert habe ich gesetzt.

Gruß
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

Maista

Hallo @dominik,

ich habe heute dein Modul getestet. Obs stabil läuft wird sich zeigen ;)
Mir war das Zusammenspiel anfangs auch nicht ganz klar.
Zum Glück hatte ich dann gelesen das FHEMSync nur auf dem Master laufen muss.
Auf meinem Uralt RPi-(Client) lies sich das npm schon gar nicht mehr installieren.

Der Hinweis für das Passwort des Remote-FHEM, das man User:Passwort schreiben muss, habe ich erst beim dritten mal lesen war genommen ;=)

Wie schaut es mit SVG-Grafiken aus?
Die Devices werden zwar angelegt aber Mangels Log-Dateien ja nicht gezeichnet. Die Logs werden zwar als Device angelegt, aber gibt es auf dem Master-System nicht.
Daher auch keine Daten für die SVGs.

Das Sonderzeichen "°" von Grad-Celsius wird im Master als "�" dargestellt. Die anderen Umlaute werden ebenso als "�" angezeigt.
Ist das ein Einstellungs/UTF8-Problem ?

Danke derweil für dein Modul

Gruss Gerd

dominik

Hi Gerd,

danke fuer das Feedback!

Das mit den Umlauten ist mir gestern auch aufgefallen, werde das noch korrigieren, genauso wie die Anleitung erweitern und in der commandref aufnehmen.

Bzgl. FileLog, du kannst am Master Device das FileLog anlegen statt am Remote Device. Weil alle Events aus dem Device werden sowieso am Master auch ausgeloest. Lass mich wissen ob das fuer dich eine passende Loesung ist.

Gruss Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Maista

Moin Dominik

Werd ich eventuell heute Abend dazu kommen.
Danke!

Gruß Gerd

Maista

Zitat von: dominik am 04 April 2020, 09:34:39
Umlaute gefixed, Update im 1. Post.
Hallo Dominik
Umlaute und Sonderzeichen sind jetzt ok.
Danke

Maista

@dominik

soweit Funktionieren deine Module.
Was mir jetzt noch aufgefallen ist,
meine Device-Definitionen habe ich in diverse CFG-Dateien ausgelagert die ich mit z.B.include /opt/fhem/FHEM/Firmata_Arduino-Mega_USB.cfg aus der fhem.cfg lade.
Diese Configurations-Info steht mit im Device des Slaves.

Nun wirft mir das Master-FHEM bei jedem neu starten die Meldungen wie folgt:
ZitatMessages collected while initializing FHEM:
./log/fhem.save: Please define FA_26_A2D984000007 first
Please define FA_26_A2D984000007 first
Please define FA_26_A2D984000007 first
Please define FA_26_A2D984000007 first
Please define FA_26_A2D984000007 first
Please define FA_26_A2D984000007 first
Please define FA_26_A2D984000007 first
Please define FA_26_A2D984000007 first
Please define FA_26_A2D984000007 first
Please define FIRMATA first
Please define FI_26_A3D984001605 first
Please define FI_26_A3D984001605 first
Please define FI_26_A3D984001605 first
Please define FI_26_A3D984001605 first
Please define FI_26_A3D984001605 first
Please define FI_26_A3D984001605 first
Please define FI_26_A3D984001605 first
Please define FI_26_A3D984001605 first
Please define FI_26_A3D984001605 first
Please define HI_28_A2D984001677 first
Please define HI_28_A2D984001677 first
Please define HI_28_A2D984001677 first
Please define HI_28_A2D984001677 first
usw....

Das sind 1Wire-Sensoren mit dem Firmata-Master.

Ist das verhalten so normal/bekannt/vorgesehen?  ;)

Wenn ich in der fhem.cfg des Masters, include /opt/fhem/FHEM/Firmata_Arduino-Mega_USB.cfg einfüge, versucht er nun natürlich auf dem Master den USB-Port anzusprechen.

Das syncronisierte Device auf dem Master hat im Device den Verweis auf die CFG stehen.
ZitatCFGFN /opt/fhem/FHEM/Firmata_Arduino-Mega_USB.cfg

Die Informationen stehen nun natürlich nach dem Neustart nicht dort. Das syncronisierte Device wird ja erst nach dem Start des Masters beim Slave abgefragt.

Schönes WE

Gruss Gerd

dominik

Hi,

liegt das am CFGFN Internal? Wenn ja, kann ich das von der Synchronisation ausnehmen, damit sollte es dann klappen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Maista

Moin
Ich vermute mal.
Eventl. per Attribut irgendwie einstellbar?