!!!ABGELÖST!!! [74_XiaomiFlowerSens.pm] Xiaomi Flower Monitor

Begonnen von CoolTux, 17 November 2016, 13:25:06

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Zitat von: Tobias am 23 Dezember 2017, 13:41:27
Auf einem ESP kann man sich nicht per SSH einloggen, welchen. Sketch gibt's denn dafür?

Gesendet von meinem Leap mit Tapatalk

Kenne auch keinen ssh-Sketch ;)

Und leider auch keinen BT-LE-Sketch...
...ich hab schon mal mit ESP8266 und BT-LE Modul rumprobiert aber nicht weiter gekommen...

Habe jetzt einen PI-Zero W mit ssh als "BT-Extender" laufen...
...geht prima.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

marcel151

Auch ich habe, da es mit einem alten Pi1 (und 256MB RAM) nicht funktioniert hat mir einen PiZero W geholt. Aber auch hier, sshHost funktioniert nicht. Immer wieder die Fehlermeldung "charWrite faild". Woran könnte das liegen, scheinbar geht es ja mit dem Zero W bei einigen. Wie habt ihr den SSH-Login konfiguriert? Ich habe das über einen Host in der .ssh/config mit User und IdentityFile gemacht. Vielleicht mache ich dort ja was falsch.

Ich wurde zwar schon drauf hingewiesen, dass es auch mit MQTT funktioniert, aber würde gerne erstmal versuchen das über SSH hinzubekommen.

MadMax-FHEM

#932
Zitat von: marcel151 am 27 Dezember 2017, 17:07:12
Auch ich habe, da es mit einem alten Pi1 (und 256MB RAM) nicht funktioniert hat mir einen PiZero W geholt. Aber auch hier, sshHost funktioniert nicht. Immer wieder die Fehlermeldung "charWrite faild". Woran könnte das liegen, scheinbar geht es ja mit dem Zero W bei einigen. Wie habt ihr den SSH-Login konfiguriert? Ich habe das über einen Host in der .ssh/config mit User und IdentityFile gemacht. Vielleicht mache ich dort ja was falsch.

Ich wurde zwar schon drauf hingewiesen, dass es auch mit MQTT funktioniert, aber würde gerne erstmal versuchen das über SSH hinzubekommen.

Auf direkte Nachfrage hier wie ich es gemacht habe ;)

Remotelogin using ssh and certificate (auf dem PI mit fhem):

1. sudo nano /etc/passwd
2. change /bin/false to /bin/bash for user fhem
3. give user fhem a password: sudo su -> passwd fhem
4. login with user fhem: su - fhem
5. ssh into remote server: ssh -l user remote-system (konkret: ssh -l pi 192.168.1.94)
6. ssh-keygen -t rsa
7. ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system (konkret: pi@192.168.1.94)

Das ist der Auszug aus meinem "Installations-Protokoll"...
Für den PI Zero hab ich nichts notiert, daher habe ich dort wohl "nur" die "üblichen" Dinge eingestellt:

hostname, pw für User pi, Ländereinstellungen und ssh und WLAN aktiviert...
(oder etwas vergessen was ich spätestens bei der nächsten Neuinstallation merke ;)  )

Mein ssh-host-Eintrag beim FlowerSense lautet wie folgt:

sshHost pi@192.168.1.94

Hier einige Anmerkungen:

Schritte 1-5 sind vermutlich "unnötig" bzw. können wohl auch wie folgt "gelöst" werden:

'ssh-keygen -t rsa' als User 'pi' und dann die erstellten Zertifikate nach /opt/fhem/.ssh kopieren bzw. in evtl. dort bereits vorhandene Dateien "integrieren"...

Schritt 5 habe ich mal gemacht, weil ich nicht weiß/wusste was beim Login mit Zertifikat bzgl. der "Abfrage" add to known hosts etc. passiert.
Da wollte ich auf Nummer sicher gehen... ;)

Wichtig bei Schritt 6: kein Passwort vergeben (für den Zugriff auf die Zertifikate) sonst macht man den ganzen Vorteil zunichte ;)

Und ja ich nutze keine sshconf (oder wie das heißt), ich gebe den User (mit dem ich den Befehl auf dem PI Zero W ausführen will) mit an...
...hatte ich woanders bereits so angewendet und es hat funktioniert, also hab ich es dabei belassen...
(stört mich nicht groß)

Evtl. "überdenke" ich bei der nächsten Installation das noch mal...
...vorher wird aber noch mal getestet (Testsystem!).

Verwendete OS:

Zero W: Jessie
PI 3 (fhem): Stretch

Da ich erst auf Stretch umgestiegen bin wird aber die Neuinstallation und das Überdenken noch ein Weilchen dauern ;)

Noch etwas zum Schluss:

da ich meine Pflanzen und damit die Sensoren ausschließlich auf dem Balkon habe, habe ich sie seit Ende Oktober (oder so) eingemottet.
Bis dahin lief alles problemlos!

Allerdings habe ich mitbekommen, dass danach/in letzter Zeit immer wieder mal "Probleme" mit ssh waren (also hier im Thread).
Ob ich davon auch betroffen bin/war/gewesen wäre weiß ich nicht.

Evtl. kann ich ja mal ein oder zwei rauskramen und mal noch mal kurz in Betrieb nehmen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

marcel151

Danke dafür! Bei mir war es ähnlich konfiguriert, aber da ich tatsächlich eine .ssh/config angelegt hatte musste ich im Attribut "sshHost" nur den Namen angeben. Auf Verdacht habe ich dann so konfiguriert wie du (wusste auch garnicht dass man "pi@" davor schreiben kann. Er hat sich nämlich mit IP-Adresse immer als User fhem angemeldet). Aber leider genau der gleiche Fehler "charWrite faild". Batteriestatus und Firmware (2.8.6) werden sauber übertragen, aber die Readings leider nicht.

CoolTux

Ich schaue es mir am Dienstag Mal in Ruhe an. Testen kann man es eigentlich in dem man von Hand in der Konsole erst den write und dann den read mit gatttool ab setzt. Hier im Thread steht dazu was genau gemacht werden muß.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

marcel151

Vielen Dank!

Getestet hatte ich schonmal, meintest du das hier?

ssh PiZero 'gatttool -i hci0 -b C4:7C:8D:65:DB:E0 --char-write-req -a 0x33 -n A01F'
Characteristic value was written successfully
ssh PiZero 'gatttool -i hci0 -b C4:7C:8D:65:DB:E0 --char-read -a 0x35'
Characteristic value/descriptor: aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00


Das geht direkt, abgesetzt als user fhem. Trotzdem kommt in FHEM der bereits genannte Fehler.

CoolTux

Ja genau das meine ich. Und genau das hier:

aa bb cc dd ee ff 99 88 77 66 00 00 00 00

Sorgt für die Fehlermeldung "charWrite faild"
Denn das sind keine valide Daten und bedeutet das der --char-write-req Befehl zwar funktioniert hat das read danach aber zu lange gedauert hat und das write wieder veraltet ist.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mumpitzstuff

Wenn es zu lange dauert im Modul, dann versuch doch mal das Write und das danach folgende Read in einem Shell Aufruf zu machen.

gatttool Write && gatttool Read

Dann dürfte die Zeit zwischen Write und Read kürzer sein.

CoolTux

Ist es, und so klappt es ja auch. Eigentlich wollte ich das ganze allgemein halten weil dieser Teil später in eine allgemeine Bibliothek sollte. Klappt aber wohl nicht. Ich versuche im neuen Jahr mal ein Umbau.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich habe soeben eine neue Version ins SVN geladen. Durch diese Version sollte sich das "auslesen Problem" über SSH erledigt haben. Bitte einmal testen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Pyromane

Wünsche ein Gutes neues Jahr!

Zitat von: CoolTux am 22 Dezember 2017, 06:31:51Kannst Du bitte einmal ein ps ax machen wenn es wieder hängt.

Hier die gewünschten Daten:
ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:17 /sbin/init
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:03 [ksoftirqd/0]
    5 ?        S<     0:00 [kworker/0:0H]
    7 ?        S      3:28 [rcu_sched]
    8 ?        S      0:00 [rcu_bh]
    9 ?        S      0:04 [migration/0]
   10 ?        S      0:11 [watchdog/0]
   11 ?        S      0:10 [watchdog/1]
   12 ?        S      0:04 [migration/1]
   13 ?        S      0:07 [ksoftirqd/1]
   15 ?        S<     0:00 [kworker/1:0H]
   16 ?        S      0:00 [kdevtmpfs]
   17 ?        S<     0:00 [netns]
   18 ?        S<     0:00 [perf]
   19 ?        S      0:00 [khungtaskd]
   20 ?        S<     0:00 [writeback]
   21 ?        SN     0:00 [ksmd]
   22 ?        SN     0:06 [khugepaged]
   23 ?        S<     0:00 [crypto]
   24 ?        S<     0:00 [kintegrityd]
   25 ?        S<     0:00 [bioset]
   26 ?        S<     0:00 [kblockd]
   27 ?        S<     0:00 [ata_sff]
   28 ?        S<     0:00 [md]
   29 ?        S<     0:00 [devfreq_wq]
   33 ?        S      0:00 [kswapd0]
   34 ?        S<     0:00 [vmstat]
   35 ?        S      0:00 [fsnotify_mark]
   36 ?        S      0:00 [ecryptfs-kthrea]
   52 ?        S<     0:00 [kthrotld]
   53 ?        S<     0:00 [acpi_thermal_pm]
   54 ?        S      8:00 [vballoon]
   55 ?        S<     0:00 [bioset]
   56 ?        S<     0:00 [bioset]
   57 ?        S<     0:00 [bioset]
   58 ?        S<     0:00 [bioset]
   59 ?        S<     0:00 [bioset]
   60 ?        S<     0:00 [bioset]
   61 ?        S<     0:00 [bioset]
   62 ?        S<     0:00 [bioset]
   63 ?        S<     0:00 [bioset]
   64 ?        S<     0:00 [bioset]
   65 ?        S<     0:00 [bioset]
   66 ?        S<     0:00 [bioset]
   67 ?        S<     0:00 [bioset]
   68 ?        S<     0:00 [bioset]
   69 ?        S<     0:00 [bioset]
   70 ?        S<     0:00 [bioset]
   71 ?        S<     0:00 [bioset]
   72 ?        S<     0:00 [bioset]
   73 ?        S<     0:00 [bioset]
   74 ?        S<     0:00 [bioset]
   75 ?        S<     0:00 [bioset]
   76 ?        S<     0:00 [bioset]
   77 ?        S<     0:00 [bioset]
   78 ?        S<     0:00 [bioset]
   79 ?        S      0:00 [scsi_eh_0]
   80 ?        S<     0:00 [scsi_tmf_0]
   81 ?        S      0:00 [scsi_eh_1]
   82 ?        S<     0:00 [scsi_tmf_1]
   85 ?        S<     0:00 [bioset]
   92 ?        S<     0:00 [ipv6_addrconf]
  105 ?        S<     0:00 [deferwq]
  106 ?        S<     0:00 [charger_manager]
  146 ?        S<     0:00 [bioset]
  147 ?        S<     0:00 [bioset]
  148 ?        S<     0:00 [bioset]
  149 ?        S<     0:00 [bioset]
  150 ?        S<     0:00 [bioset]
  151 ?        S<     0:00 [bioset]
  152 ?        S<     0:00 [bioset]
  153 ?        S<     0:00 [bioset]
  155 ?        S      0:00 [scsi_eh_2]
  156 ?        S<     0:00 [scsi_tmf_2]
  157 ?        S<     0:00 [kpsmoused]
  159 ?        S<     0:00 [bioset]
  170 ?        S<     0:06 [kworker/1:1H]
  513 ?        S<     0:00 [raid5wq]
  539 ?        S<     0:00 [kdmflush]
  540 ?        S<     0:00 [bioset]
  549 ?        S<     0:00 [kdmflush]
  550 ?        S<     0:00 [bioset]
  559 ?        S<     0:00 [bioset]
  592 ?        S      0:18 [jbd2/dm-0-8]
  593 ?        S<     0:00 [ext4-rsv-conver]
  638 ?        S<     0:04 [kworker/0:1H]
  663 ?        S<     0:00 [iscsi_eh]
  667 ?        Ss     0:06 /lib/systemd/systemd-journald
  670 ?        S<     0:00 [ib_addr]
  673 ?        S      0:00 [kauditd]
  674 ?        S<     0:00 [ib_mcast]
  676 ?        S<     0:00 [ib_nl_sa_wq]
  678 ?        S<     0:00 [ib_cm]
  679 ?        S<     0:00 [iw_cm_wq]
  680 ?        S<     0:00 [rdma_cm]
  713 ?        Ss     0:00 /sbin/lvmetad -f
  722 ?        Ss     0:04 /lib/systemd/systemd-udevd
  782 ?        S<     0:03 [kworker/u5:0]
  783 ?        S<     0:00 [hci0]
  784 ?        S<     0:00 [hci0]
  785 ?        S<     0:03 [kworker/u5:1]
  967 ?        S<     0:00 [ext4-rsv-conver]
1009 ?        Ssl    0:02 /lib/systemd/systemd-timesyncd
1238 ?        Ss     0:00 /usr/sbin/atd -f
1257 ?        Ssl    0:27 /usr/lib/accountsservice/accounts-daemon
1260 ?        Ss     0:01 /usr/lib/bluetooth/bluetoothd
1266 ?        Ss     0:02 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
1285 ?        Ss     0:00 /usr/sbin/acpid
1289 ?        Ssl    0:01 /usr/sbin/rsyslogd -n
1291 ?        Ss     0:02 /lib/systemd/systemd-logind
1294 ?        Ss     0:03 /usr/sbin/cron -f
1307 ?        Ssl    0:13 /usr/bin/lxcfs /var/lib/lxcfs/
1310 ?        Ssl    0:52 /usr/lib/snapd/snapd
1333 ?        Ssl    0:00 /usr/lib/policykit-1/polkitd --no-debug
1367 ?        Ss     0:00 /sbin/mdadm --monitor --pid-file /run/mdadm/monitor.pid --daemonise --scan --syslog
1375 ?        Ss     0:00 /usr/sbin/sshd -D
1391 ?        Ss     1:00 /sbin/iscsid
1392 ?        S<Ls   4:44 /sbin/iscsid
1478 ?        Ss     0:40 /usr/sbin/irqbalance --pid=/var/run/irqbalance.pid
1480 tty1     Ss+    0:00 /sbin/agetty --noclear tty1 linux
1496 ?        S      1:13 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/
1499 ?        Ss     1:13 postgres: checkpointer process
1500 ?        Ss     0:55 postgres: writer process
1501 ?        Ss     0:17 postgres: wal writer process
1502 ?        Ss     0:29 postgres: autovacuum launcher process
1503 ?        Ss     1:31 postgres: stats collector process
1505 ?        S     82:22 perl fhem.pl fhem.cfg
3287 ?        S      0:00 [kworker/0:2]
5792 ?        S      0:00 [kworker/1:0]
6992 ?        S      0:07 [kworker/0:1]
7033 ?        S      0:11 [kworker/1:2]
8744 ?        S      0:00 [kworker/u4:2]
8950 ?        S      0:00 [kworker/u4:0]
9482 ?        Ss     0:00 sshd: **** [priv]
9484 ?        Ss     0:00 /lib/systemd/systemd --user
9485 ?        S      0:00 [kworker/1:1]
9486 ?        S      0:00 (sd-pam)
9488 ?        S      0:00 [kworker/0:0]
9567 ?        R      0:00 sshd: ****@pts/0
9568 pts/0    Ss     0:00 -bash
9603 ?        S      0:00 [kworker/u4:1]
9655 pts/0    R+     0:00 ps ax
15545 ?        S      0:00 sh -c gatttool -i hci0 -b C4:7C:8D:61:B2:F0 --char-read -a 0x35 2>&1 /dev/null
15546 ?        S      0:00 gatttool -i hci0 -b C4:7C:8D:61:B2:F0 --char-read -a 0x35 /dev/null

Jamo

Hallo CoolTux,
ZitatIch habe soeben eine neue Version ins SVN geladen. Durch diese Version sollte sich das "auslesen Problem" über SSH erledigt haben. Bitte einmal testen.
das sieht soweit ganz gut aus, allerdings kommt immer folgender Fehler:
PERL WARNING: Use of uninitialized value $gtResult[0] in string eq at ./FHEM/74_XiaomiFlowerSens.pm line 444.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

distel

Zitat von: CoolTux am 18 November 2016, 09:55:18
Hierfür wird aktuell an einem Bluetooth Framework gearbeitet. Alle Module die Bluetooth ansprechen sollten dann mit dem Framework laufen.
Wie/Wo wird denn daran gearbeitet? Konkret suche ich aktuell nach einer Möglichkeit die die "neuen" Thermo/Hygrometer von Xiaomi  einzubinden. Da ich nichts gefunden haben, war die Überlegung mich bei deinem Modul inspirieren zu lassen. Falls es aber (absehbar) eine allgemeine Basis gibt, die den BT LE Part abdeckt, würde ich mich noch etwas gedulden...

https://de.aliexpress.com/item/Original-Xiaomi-Mijia-Bluetooth-Hygrothermograph-High-Sensitive-Lcd-bildschirm-Hygrometer-Thermometer-Sensor-Verwenden-Mit-Mijia-App/32844666522.html
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

Jamo

#944
ZitatMit oder ohne SSH?
Also nur MIT SSH, siehe meine Beschreibung was ich mache unter https://forum.fhem.de/index.php/topic,60914.msg699883.html#msg699883

Ich kann sagen, das ich schon alle Versionen von Dir probiert habe, die einzigen die bei mir mit SSH funktioniert haben war die alte Version 1.0.3 und eben diese neue (1.4.0) von heute morgen!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence