[Neues Modul] Xiaomi Smart Home ohne Gateway direkt an FHEM

Begonnen von neumann, 22 Februar 2018, 18:00:22

Vorheriges Thema - Nächstes Thema

venuel79

#60
wer muss der besitzer von xiaomi.service sein?? ist im Augenblick bei mir root ,(gruppe root[0] ),Eigentümer root[0])

ich versuche jetzt mal mit deinen Infos weiter zu machen, kann doch nicht so schwer sein ....
Danke mark79!

edit: funktioniert leider auch nicht,
aber jetzt steht gleich nach dem restart des brix, online in fhem bei state von xBridge
aber sensoren werden wieder nicht mehr erkant,pairing geht aus fhem herraus nicht,
erst wenn ich die konsole aufmache und die index anstosse per hand,kann ich wieder pairen,und die bereit gepirten sensoren muss ich erst unpairen,dann neu pairen , das sie wieder reagieren

mark79

#61
Der Dienst muss schon laufen und wenn du neustartest, wird der node Dienst wegen irgendeinen Fehler in systemctl nicht mit gestartet.
Also den Fehler musst du finden und ich würde den Dienst am besten erstmal mit root Rechten starten, dann hast du weniger Probleme mit den Berechtigungen...

Ansonsten könntest du das auch auch über Crontab beim Systemstart starten lassen.

sudo crontab -e

darin das einfügen und die beiden Pfade anpassen:
@reboot /pfad/zur/node /pfad/zur/index.js &

und dann den Rechner rebooten...
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

venuel79

wie sieht der pfad zur node aus ungefär ?? den zur index kenne ich ja schon ;)
wie kann ich raus bekommen ob der node dienst gestartet ist?
Gruß

mark79

Die liegt denke ich mal im /home verzeichniss... suchen geht mit:
find /home -name index.js

ob der Dienst gestartet ist mit: ps aux
oder ps aux | grep node
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

venuel79

wenn ich find /home -name index.js eigebe findet er sich tod ....10000 sachen,
mach ich einen denkfehler?

brix@ubuntu-Server:~$ ps aux | grep node
brix      2248  0.0  0.0  15796   936 pts/0    S+   12:37   0:00 grep --color=auto node
brix@ubuntu-Server:~$

heist dann wohl das er aus ist.

mark79

#65
Das kann nicht sein, es sei den du hast 10000 index.js Datein. :D
Ich vermute mal eher du hast das index.js beim find weggelassen..

Laut deinen Logs auf Seite 4 liegt die hier: /home/brix/xiaomi-zb2mqtt/index.js

Aber keine Ahnung ob das die richtige ist... Du musst die nehmen, wo du auch den Dienst über die Console gestartet hat.
Die Datei sollte im selben Verzeichniss liegen.

EDIT: und am besten testet du das erstmal ob der Dienst auch so auf der Console startet, also z.B.
/home/brix/.nvm/versions/node/v8.11.1/bin/node /home/brix/xiaomi-zb2mqtt/index.js

Wenn das geht in die crontab rein... crontab -e
@reboot /home/brix/.nvm/versions/node/v8.11.1/bin/node  /home/brix/xiaomi-zb2mqtt/index.js
und speichern nicht vergessen... :D


>>heist dann wohl das er aus ist.
Ja
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

venuel79

#66
@reboot /pfad/zur/node /home/brix/xiaomi-zb2mqtt/index.js &

sollte richtig sein  aber pfad zur node ist mir unklar!? die index.js ist die richtiege.

so schwer war das noch nie, seit fast 3 jahren mit Fhem ... :(

ich verstehe auch nicht ,warum ich die "sensoren" wieder unpairen muss,dann wieder pairen, das sie bei einem Neustart funktionieren.
alles sehr merkwürdig. Ich denke es liegt daran das ich ubuntu am laufen habe, und nicht wie früher ganz normal auf einem pi3
irgendwas läuft hier wohl anders.


dein Edit war schneller :D :D

mark79

#67
Du müsstest erstmal ein Linux Kurs belegen ;D

Versuch es mal so auf der Console zu starten:
/home/brix/.nvm/versions/node/v8.11.1/bin/node /home/brix/xiaomi-zb2mqtt/index.js

Wenn das geht in die crontab rein... sudo crontab -e
@reboot /home/brix/.nvm/versions/node/v8.11.1/bin/node  /home/brix/xiaomi-zb2mqtt/index.js &
und speichern nicht vergessen... :D

Je nach Editor geht das anders.. bei vi entweder mit ESC :wq!
Oder bei Nano mit STRG + o und STRG + q

Falls der Pfad nicht stimmt, suche nach der node mit dem find Befehl:
find / -name node
oder mit whereis -bm node
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

venuel79

oh ja Linux kurs wäre wohl sehr gut ....nur leider die Zeit fehlt :(

brix@ubuntu-Server:~$ /home/brix/.nvm/versions/node/v8.11.1/bin/node /home/brix/                                                                                                                                                             xiaomi-zb2mqtt/index.js
Starting bridge using serial port /dev/ttyACM0
(node:2606) [DEP0013] DeprecationWarning: Calling an asynchronous function witho                                                                                                                                                             ut callback is deprecated.
Bridge is ready. Current devices:
>

sieht schonmsl gut aus

mark79

Ja dann fehlt nur noch der crontab eintrag und mach das am besten als root
also: sudo crontab -e

Zitatich verstehe auch nicht ,warum ich die "sensoren" wieder unpairen muss,dann wieder pairen, das sie bei einem Neustart funktionieren.
alles sehr merkwürdig. Ich denke es liegt daran das ich ubuntu am laufen habe, und nicht wie früher ganz normal auf einem pi3
irgendwas läuft hier wohl anders.
Da kann ich aber auch nicht weiter helfen.. ich habe mich vorerst für das originale GW von Xiaomi entschieden.

Es könnte aber sein, das fhem immer noch noch kein Lese/Schreibzugriff auf die Datenbank (devices.db) hat:
error EACCES: permission denied, open '/home/brix/xiaomi-zb2mqtt/devices.db'
Hast du das mit chmod Befehl umgesetzt?
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

venuel79

#70
chmod hab ich gemacht. und die chrontab angelegt:

da steht jetzt alerdings das drin :
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
@reboot /home/brix/.nvm/versions/node/v8.11.1/bin/node  /home/brix/xiaomi-zb2mqtt/index.js &
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

ABER: konnte jetzt das erste mal pairen ohne console!!!!! und sensor läuft auch ohne Console :D mal sehen was nach einem Neustart ist!!!

...zu früh gefreut, nach neustart geht das state nach kurzer zeit auf offline, somit auch kein paring mehr möglich..
damn....

mark79

Ok das ist gut das es jetzt klappt, der node Dienst muss gestartet sein, sonst funktioniert das Fhem Modul nicht.
Wenn du Zeit hast, versuche das mit systemctl zu lösen.. das mit der crontab ist nur eine "Notlösung". :)
Denn wenn der Dienst mal abschmieren sollte, startet er nicht selbstständig neu. Das macht nur systemctl.

Bin nun erstmal weg.
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

venuel79

#72
Danke dir trotzdem schon mal für die ganzen denk ansetzte!!!!

state von x bridge springt jetzt immer in abständen von offline auf online, einmal pairen ging jetzt wieder, aber nach neustart werden sensoren nicht mehr erkannt :(

Spielt aber anscheinend keine Rolle ob off oder online ,sensoren reagieren in beiden Fällen!

Gruß!!!!

edit: wüste jetzt nicht(da zu wenig Grundwissen) wo der fehler bei systemctl zu such ist.
evtl jemand ne Idee??
meine xiaomi.service liegt in dem Pfad: /etc/systemd/system//etc/systemd/system
Gruppe: root[0]
Eigentümer: root[0]
Oktal 0666


EDIT: So Tagesabschluss......So wie es lauffen soll läuft es leider nicht :(
Aber dank mark79,
geht es jetzt mit : sudo crontab -e da habe ich dann eingefügt: @reboot /home/brix/.nvm/versions/node/v8.11.1/bin/node  /home/brix/xiaomi-zb2mqtt/index.js &
Nach einem Neustart des systems ist auch das Fhem Xbridge bereit, läst sich auch mit sensoren Pairen,werden auch stets aktuakiesiert!! :)
ABER nach einem Neustart meines Brix, geht es auch wieder, doch die Senoren die ich vorher gepairt habe geben keine Rückmeldung mehr :(
erst wenn ich sie unpaire, und neu paire lauffen sie wieder! :(
Da ich aber bereits die Orginal GW Grenze erreicht habe ,ist das für mich keine option, alle ca40 sensoren jedes mal neu an zu legen.....
Hilfe..keiner eine Idee warum es nicht mit der Xiaomi. datei klappt??
Hab auch zugriff über WinSCP auf das ganze System, kann also segr einfach sagen welche Datei welche Berechtiegungen hat!!
Doch leider weis ich nicht was relevant ist...
Dann euch eine schöne Nacht

Grüße

venuel79

#73
Ersten Fehler gefunden..... Natürlich Eigenverschulden!!
in der xiaomi.service hatte ich den falschen Pfad zu node drin zu stehen... :o
Darum ist es nie gestartet!
Nun habe ich den richtiegen drin ! und jetzt läuft es ohne crontab von anfang an des neu starts!!! Jupiiiii  ;D

Aber immer noch das selbe Problem, Sensoren die ich Paire, sind nach einem Neustart zwar da, aber nicht mehr ansprechbar....
erst unpair,und erneutes pairing läst sie wieder zum Leben erwecken....
Das muss doch auch noch irgendwie zu lösen sein...

Gruß

Edit: Weis leider nicht ob das was damit zu tun hat , in meiner dev.db von zigbee-shepherd , steht nachdem ich einen sensor gepairt habe :

{"$$indexCreated":{"fieldName":"id","unique":true,"sparse":false}}
{"id":1,"type":"EndDevice","ieeeAddr":"0x00158d0001b95c45","nwkAddr":4144,"manufId":4151,"epList":[1],"status":"online","joinTime":1526031913,"endpoints":{"1":{"profId":260,"epId":1,"devId":24321,"inClusterList":[0,3,6,65535],"outClusterList":[0,4,65535],"clusters":{}}},"_id":"NjR7pnr1CmaqZX2f"}
{"$$deleted":true,"_id":"NjR7pnr1CmaqZX2f"}

aber nach dem ich rebootet habe, steht dort nur noch drin:

{"$$indexCreated":{"fieldName":"id","unique":true,"sparse":false}}

eigenartig...da ich aber nicht weis ob es damit was zu tun hat,bitte ich euch um eure Hilfe.

Grüße


mark79

Ich kenne das Modul nicht, aber wie schon geschrieben es könnte sein, das Fhem immer noch nicht in die Datenbank Datei schreiben kann und deswegen ist das pairing nach einem reboot wieder weg.

Versuch mal ein: sudo chmod 0777 /home/brix/xiaomi-zb2mqtt/ -R
Damit darf jeder die Datein in den Ordner schreiben, lesen und ausführen...
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten