Entwicklung: Temperatur Funk Sensor

  • HI L.E.D.


    der Device Pfad /dev/ttyAMA0 zeigt eigentlich auf die erste Serielle Schnittstelle des Raspi an GPIO 14 (Senden) und 15 (Empfangen). Zumindest in der Raspi-Version 1, 2 und beim Zero.

    Ab der Raspi-Version 3 und beim Zero W ist diese jedoch standardmäßig mit dem Bluetooth Modul verbunden und der korrekte Device Pfad zur Seriellen Schnittstelle dann /dev/ttyS0. Aber auch nur wenn du die (zweite) Serielle Schnittstelle über die raspi-config aktiviert hast.

    Genauere Erklärung unter: https://www.raspberrypi.org/do…ion/configuration/uart.md


    Wenn du allerdings einen Serial-USB-Adapter benutzt ist der Device Pfad immer /dev/ttyUSB0. Jedenfalls beim ersten. Bei mehreren Serial-USB-Adaptern wird vom System einfach hochgezählt (ttyUSB1,ttyUSB2,ttyUSB3, usw.).


    Zum loggen der Werte kannst du unter folgenden Iobroker-Adaptern auswählen:

    ioBroker.history, ioBroker.influxdb oder ioBroker.sql.


    Zur Darstellung der aufgezeichneten Werte in einem Diagramm kann ich den Adapter ioBroker.flot empfehlen.


    Zum Zählen würde ich auf der Objekte Seite unter dem Ordner "0_userdata.0" einen virtuellen Datenpunkt anlegen und diesen dann über ein Script bei jeder Änderung deines Interrupt Datenpunktes auf "true" hochzählen lassen. Hierzu wird der Adapter ioBroker.javascript benötigt. Damit lassen sich über Blockly auch ohne Javascript Kenntnisse ganz einfach kleinere Programme erstellen.


    Der Lernmodus bleibt übrigens für 10 Minuten aktiv. Kann aber danach sofort wieder über den Datenpunkt "learningMode" im Ordner "info" für weitere 10 Minuten aktiviert werden.

  • Hallöchen,

    Habe mich hier angemeldet weil ich seit kurzem auch TiNo's habe.

    Danke nurazur.


    Ich habe den Sender jetzt auch konfigurieren können. Im Script von nurazur sehe ich auch das gesendet wird und auch das es ankommt.

    In iobroker habe ich den Adapter installiert, und habe dort leider den Fall das keine Daten ankommen.

    Der Adapter behauptet das er eine Verbindung habe, aber ich kann nicht erkennen das irgendwas ankommt.


    Auch werden keine Datenpunkte erstellt.

    Hätte vielleicht irgendjemand eine idee?

  • Hallo L.E.D.

    In den logs steht gar nichts drin, leider.

    Ich vermute das der Adapter gar nicht mit dem TiNo kommunizieren kann, obwohl er meldet das er verbunden ist.


    Ich mache heute Abend mal win paar Screenshots, bin leider noch auf der Arbeit daher wird das mit dem Handy nicht vernünftig.


    Aber ich Danke dir schon mal für deine Hilfsbereitschaft.

  • Guten Abend,


    ich habe mir die Adapter Einstellungen nochmal angeschaut und festgestellt das es heute einen neuen Port gibt den es vorher nicht gab:

    /dev/ttyUSB0.


    Nachdem ich diesen nun eingestellt habe, erhalte ich tatsächlich auch Daten.

    Allerding kann ich die empfangenen Daten nicht unterscheiden.


    GPIO5

    tino.0 2020-10-30 21:17:24.769 debug (5793) 63 Humidity Absolute: 13.47 g/m3 | Dew Point: 16.54 °C

    tino.0 2020-10-30 21:17:24.267 debug (5793) data received for Node Id: 63 rssi=-102 FrequencyOffset=-2502 linkQuality=undefined counter=103 biterrors=1 sync=0 intr1=0 intr2=0 intr3=0 intr4=0 intr5=0 intr6=0 intr7=0 intr8=0

    tino.0 2020-10-30 21:17:24.267 debug (5793) data received for Node Id: 63 voltage=2.697 temperature=29.56 humidity=45.5 pressure=undefined height=undefined distance=undefined contact=undefined

    tino.0 2020-10-30 21:17:24.266 debug (5793) Data received: 63 v=2697&c=103&t=2956&h=4550&f=8&int=0x10&sy=0&rssi=-1020&fo=-2502&be=1


    GPIO6

    tino.0 2020-10-30 21:17:22.856 debug (5793) 63 Humidity Absolute: 13.56 g/m3 | Dew Point: 16.64 °C

    tino.0 2020-10-30 21:17:22.355 debug (5793) data received for Node Id: 63 rssi=-102 FrequencyOffset=-1647 linkQuality=undefined counter=102 biterrors=0 sync=0 intr1=0 intr2=0 intr3=0 intr4=0 intr5=0 intr6=0 intr7=0 intr8=0

    tino.0 2020-10-30 21:17:22.355 debug (5793) data received for Node Id: 63 voltage=2.691 temperature=29.48 humidity=46 pressure=undefined height=undefined distance=undefined contact=undefined

    tino.0 2020-10-30 21:17:22.353 debug (5793) Data received: 63 v=2691&c=102&t=2948&h=4600&f=4&int=0x4&sy=0&rssi=-1020&fo=-1647&be=0


    GPIO7

    tino.0 2020-10-30 21:17:18.461 debug (5793) 63 Humidity Absolute: 13.62 g/m3 | Dew Point: 16.70 °C

    tino.0 2020-10-30 21:17:17.960 debug (5793) data received for Node Id: 63 rssi=-101 FrequencyOffset=-1281 linkQuality=undefined counter=101 biterrors=1 sync=0 intr1=0 intr2=0 intr3=0 intr4=0 intr5=0 intr6=0 intr7=0 intr8=0

    tino.0 2020-10-30 21:17:17.960 debug (5793) data received for Node Id: 63 voltage=2.697 temperature=29.36 humidity=46.5 pressure=undefined height=undefined distance=undefined contact=undefined

    tino.0 2020-10-30 21:17:17.957 debug (5793) Data received: 63 v=2697&c=101&t=2936&h=4650&f=2&int=0x1&sy=0&rssi=-1010&fo=-1281&be=1


    Einstellungen:


    --> TiNo 2.1.0 receive.ino Ver 24/02/2020

    calibration mode.

    Pass OK

    <-- ls

    NODEID=22

    NETWORKID=210

    GATEWAYID=22

    VCCatCAL=3300

    VCCADC_CAL=342

    SENDDELAY=200

    FREQBAND=86

    FREQ_CENTER=866.000000

    TXPOWER=25

    REQUESTACK=0

    LEDCOUNT=3

    LEDPIN=8

    RXPIN=0

    TXPIN=1

    SDAPIN=18

    SCLPIN=19

    I2CPOWERPIN=9

    PCI0PIN=7

    PCI0TRIGGER=10

    PCI1PIN=128

    PCI1TRIGGER=2

    PCI2PIN=128

    PCI2TRIGGER=10

    PCI3PIN=128

    PCI3TRIGGER=2

    USE_CRYSTAL_RTC=0

    ENCRYPTION_ENABLE=1

    FEC_ENABLE=1

    INTERLEAVER_ENABLE=1

    EEPROM_VERSION_NUMBER=5

    SOFTWAREVERSION_NUMBER=9

    TXGAUSS_SHAPING=0

    SERIAL_ENABLE=1

    IS_RFM69HW=1

    PABOOST=0

    FDEV_STEPS=-132

    CHECKSUM=-32199

    <-- x

    --> Calibration finished



    --> TiNo 2.1.0 Sensor.ino 24/02/2020 Build: 9

    calibration mode.

    Pass OK

    <-- ls

    NODEID=63

    NETWORKID=210

    GATEWAYID=22

    VCCatCAL=3000

    VCCADC_CAL=375

    SENDDELAY=0

    FREQBAND=86

    FREQ_CENTER=866.000000

    TXPOWER=30

    REQUESTACK=0

    LEDCOUNT=3

    LEDPIN=8

    RXPIN=0

    TXPIN=1

    SDAPIN=18

    SCLPIN=19

    I2CPOWERPIN=9

    PCI0PIN=7

    PCI0TRIGGER=10

    PCI1PIN=6

    PCI1TRIGGER=10

    PCI2PIN=5

    PCI2TRIGGER=10

    PCI3PIN=255

    PCI3TRIGGER=10

    USE_CRYSTAL_RTC=0

    ENCRYPTION_ENABLE=1

    FEC_ENABLE=1

    INTERLEAVER_ENABLE=1

    EEPROM_VERSION_NUMBER=5

    SOFTWAREVERSION_NUMBER=9

    TXGAUSS_SHAPING=0

    SERIAL_ENABLE=1

    IS_RFM69HW=0

    PABOOST=0

    FDEV_STEPS=-40

    CHECKSUM=1770

    Edited once, last by Muchul ().

  • Hi Muchul,


    wenn ich das richtig interpretiere hast du über die GPIOs einen Interrupt ausgelöst, der aber im ioBroker nicht angezeigt wird.

    Hier scheint ein Problem bei der Erkennung des Interruptwerts im ioBroker-Adapter zu sein.

    Ich glaube ich habe das Problem auch schon erkannt.

    Werde das morgen mal genauer untersuchen und versuchen zu fixen.

  • Hallo bowao,


    Genau so ist es.

    Vielen vielen Dank.


    Wenn weitere Daten benötigen werden, gib Bescheid.

  • Data received: 63 v=2697&c=101&t=2936&h=4650&f=2&int=0x1&sy=0&rssi=-1010&fo=-1281&be=1

    das sind die Rohdaten wie sie vom TiNo kommen. Was mir auffällt ist dass der RSSI sehr niedrig ist (-101 dBm) und du bekommst sogar schon Bitfehler (die der Algorithmus noch korrigieren konnte), aber es sieht so aus als sei dein Link Budget fast erschoepft. Auch hast du die Sendeleistung auf 12 dBm erhoeht.


    Das heisst du musst damit rechnen dass das eine oder andere Paket gar nicht ankommt.


    Wie sieht deine Funkstrecke aus? ist der Sender sehr weit vom Receiver entfernt? Was hast du mit den Antennendrähten gemacht?

  • Hi Muchul,


    ich habe die Fehlerursache in der Interrupt-Erkennung gefunden und beseitigt.

    Bitte mal die neue Github-Version V1.0.1 installieren und testen:


    Im ioBroker auf die Adaper-Seite, dann oben auf die 'github-octocat' (Installieren aus eigener url) drücken,

    den Reiter Beliebig wählen, unter 'URL oder Dateipfad' den github-link:

    https://github.com/bowao/ioBroker.tino

    eintragen und auf installieren drücken.


    In deinem Debug-log sehe ich noch die Variable "f", die sich nach Auslösung der Interrupts auch jedes mal geändert hat.

    Diese Variable ist aber im TiNo Receiver Protokoll ab V2.0 nicht beschrieben und wird daher im Adapter nicht ausgewertet.

    Siehe: https://github.com/nurazur/TiN…rotokoll%20Empfaenger.pdf


    nurazur: Hat es hier eine Änderung bzw. Erweiterung gegeben?

  • das sind die Rohdaten wie sie vom TiNo kommen. Was mir auffällt ist das der RSSI sehr niedrig ist (-101 dBm) und du bekommst sogar schon Bitfehler (die der Algorithmus noch korrigieren konnte), aber es sieht so aus als sei dein Link Budget fast erschoepft. Auch hast du die Sendeleistung auf 12 dBm erhoeht.


    Das heisst du musst damit rechnen dass das eine oder andere Paket gar nicht ankommt.


    Wie sieht deine Funkstrecke aus? ist der Sender sehr weit vom Receiver entfernt? Was hast du mit den Antennendrähten gemacht?

    Hallo Bowao

    Hallo nurazur,


    bowao:

    Bin gerade nach hause gekommen, mache sofort das Update.


    nurazur:

    Leider nein, keine 3 Meter direkte Sicht, also auch keine Wand dazwischen.

  • Hallo Bowao,

    Hallo nurazur,

    Update ist erledigt.

    jetzt werden die Interrupt auch gemeldet.


    Antennen zeigen weg von der Platine und sehen so aus:

    Empfänger:


    Sender:


    Beides im Wohnzimmer und die Entfernung ca. 2,5 Meter.


    Hier noch das LOG:

    2020-10-31 16:32:21.178 - info: host.iobroker "system.adapter.tino.0" enabled

    2020-10-31 16:32:21.206 - info: host.iobroker instance system.adapter.tino.0 started with pid 27030

    2020-10-31 16:32:21.760 - debug: tino.0 (27030) Redis Objects: Use Redis connection: 127.0.0.1:9001

    2020-10-31 16:32:21.784 - debug: tino.0 (27030) Objects client ready ... initialize now

    2020-10-31 16:32:21.787 - debug: tino.0 (27030) Objects create System PubSub Client

    2020-10-31 16:32:21.787 - debug: tino.0 (27030) Objects create User PubSub Client

    2020-10-31 16:32:21.788 - debug: tino.0 (27030) Objects client initialize lua scripts

    2020-10-31 16:32:21.801 - debug: tino.0 (27030) Objects connected to redis: 127.0.0.1:9001

    2020-10-31 16:32:21.806 - debug: tino.0 (27030) objectDB connected

    2020-10-31 16:32:21.807 - debug: tino.0 (27030) Redis States: Use Redis connection: 127.0.0.1:6379

    2020-10-31 16:32:21.811 - debug: tino.0 (27030) States create User PubSub Client

    2020-10-31 16:32:21.813 - debug: tino.0 (27030) States create System PubSub Client

    2020-10-31 16:32:21.818 - debug: tino.0 (27030) States connected to redis: 127.0.0.1:6379

    2020-10-31 16:32:21.819 - debug: tino.0 (27030) statesDB connected

    2020-10-31 16:32:22.338 - info: tino.0 (27030) starting. Version 1.0.1 in /opt/iobroker/node_modules/iobroker.tino, node: v12.18.3, js-controller: 3.1.6

    2020-10-31 16:32:22.367 - info: tino.0 (27030) Learning mode is false

    2020-10-31 16:32:22.395 - info: tino.0 (27030) Serialport is open: /dev/ttyUSB0 with 38400 bit/s

    2020-10-31 16:32:23.826 - debug: tino.0 (27030) Data received: TiNo 2.1.0 receive.ino Ver 24/02/2020

    2020-10-31 16:32:23.827 - info: tino.0 (27030) Invalid data: TiNo 2.1.0 receive.ino Ver 24/02/2020

    2020-10-31 16:32:23.827 - debug: tino.0 (27030) Data received: CAL?

    2020-10-31 16:32:23.828 - info: tino.0 (27030) Invalid data: CAL?

    2020-10-31 16:32:24.072 - debug: tino.0 (27030) Data received: start app

    2020-10-31 16:32:24.072 - info: tino.0 (27030) Invalid data: start app

    2020-10-31 16:32:24.072 - debug: tino.0 (27030) Data received: RF Chip = RFM69HCW

    2020-10-31 16:32:24.073 - info: tino.0 (27030) Invalid data: RF Chip = RFM69HCW

    2020-10-31 16:32:24.080 - debug: tino.0 (27030) Data received: FDEV_STEPS: -132

    2020-10-31 16:32:24.080 - info: tino.0 (27030) Invalid data: FDEV_STEPS: -132

    2020-10-31 16:32:24.085 - debug: tino.0 (27030) Data received: freq = 0xD87F7C

    2020-10-31 16:32:24.086 - info: tino.0 (27030) Invalid data: freq = 0xD87F7C

    2020-10-31 16:32:36.733 - info: javascript.0 (4380) script.js.common.Skript_1: Reaching CheckDeadBatt()

    2020-10-31 16:32:36.733 - info: javascript.0 (4380) script.js.common.Skript_1: Reaching MakeTable

    2020-10-31 16:33:18.326 - info: tino.0 (27030) Set learning mode to true

    2020-10-31 16:33:32.138 - debug: tino.0 (27030) Data received: 63 v=2556&c=160&t=2288&h=5150&f=8&int=0x10&sy=1&rssi=-1035&fo=-366&be=0

    2020-10-31 16:33:32.140 - info: tino.0 (27030) Learning v2 node with id: 63

    2020-10-31 16:33:32.148 - debug: tino.0 (27030) data received for Node Id: 63 voltage=2.556 temperature=22.88 humidity=51.5 pressure=undefined height=undefined distance=undefined contact=undefined

    2020-10-31 16:33:32.149 - debug: tino.0 (27030) data received for Node Id: 63 rssi=-103.5 FrequencyOffset=-366 linkQuality=undefined counter=160 biterrors=0 sync=1 intr1=0 intr2=0 intr3=1 intr4=0 intr5=0 intr6=0 intr7=0 intr8=0

    2020-10-31 16:33:32.651 - debug: tino.0 (27030) 63 Humidity Absolute: 10.51 g/m3 | Dew Point: 12.36 °C

    2020-10-31 16:33:36.733 - info: javascript.0 (4380) script.js.common.Skript_1: Reaching CheckDeadBatt()

    2020-10-31 16:33:36.734 - info: javascript.0 (4380) script.js.common.Skript_1: Reaching MakeTable

    2020-10-31 16:33:49.449 - debug: tino.0 (27030) Data received: 63 v=2568&c=162&t=2304&h=4850&f=4&int=0x4&sy=1&rssi=-915&fo=-732&be=0

    2020-10-31 16:33:49.450 - info: tino.0 (27030) Learning v2 node with id: 63

    2020-10-31 16:33:49.455 - debug: tino.0 (27030) data received for Node Id: 63 voltage=2.568 temperature=23.04 humidity=48.5 pressure=undefined height=undefined distance=undefined contact=undefined

    2020-10-31 16:33:49.456 - debug: tino.0 (27030) data received for Node Id: 63 rssi=-91.5 FrequencyOffset=-732 linkQuality=undefined counter=162 biterrors=0 sync=1 intr1=0 intr2=1 intr3=0 intr4=0 intr5=0 intr6=0 intr7=0 intr8=0

    2020-10-31 16:33:49.957 - debug: tino.0 (27030) 63 Humidity Absolute: 9.99 g/m3 | Dew Point: 11.60 °C

    2020-10-31 16:34:09.805 - debug: tino.0 (27030) Data received: 63 v=2562&c=163&t=2324&h=4850&f=2&int=0x1&sy=1&rssi=-990&fo=-854&be=0

    2020-10-31 16:34:09.805 - info: tino.0 (27030) Learning v2 node with id: 63

    2020-10-31 16:34:09.811 - debug: tino.0 (27030) data received for Node Id: 63 voltage=2.562 temperature=23.24 humidity=48.5 pressure=undefined height=undefined distance=undefined contact=undefined

    2020-10-31 16:34:09.811 - debug: tino.0 (27030) data received for Node Id: 63 rssi=-99 FrequencyOffset=-854 linkQuality=undefined counter=163 biterrors=0 sync=1 intr1=1 intr2=0 intr3=0 intr4=0 intr5=0 intr6=0 intr7=0 intr8=0

    2020-10-31 16:34:10.312 - debug: tino.0 (27030) 63 Humidity Absolute: 10.11 g/m3 | Dew Point: 11.78 °C

    2020-10-31 16:34:36.734 - info: javascript.0 (4380) script.js.common.Skript_1: Reaching CheckDeadBatt()

    2020-10-31 16:34:36.734 - info: javascript.0 (4380) script.js.common.Skript_1: Reaching MakeTable

    2020-10-31 16:34:42.973 - debug: tino.0 (27030) Data received: 63 v=2568&c=164&t=2328&h=4800&f=2&int=0x1&sy=1&rssi=-965&fo=-915&be=0

    2020-10-31 16:34:42.974 - info: tino.0 (27030) Learning v2 node with id: 63

    2020-10-31 16:34:42.980 - debug: tino.0 (27030) data received for Node Id: 63 voltage=2.568 temperature=23.28 humidity=48 pressure=undefined height=undefined distance=undefined contact=undefined

    2020-10-31 16:34:42.980 - debug: tino.0 (27030) data received for Node Id: 63 rssi=-96.5 FrequencyOffset=-915 linkQuality=undefined counter=164 biterrors=0 sync=1 intr1=1 intr2=0 intr3=0 intr4=0 intr5=0 intr6=0 intr7=0 intr8=0

    2020-10-31 16:34:43.481 - debug: tino.0 (27030) 63 Humidity Absolute: 10.02 g/m3 | Dew Point: 11.66 °C



    und so sehen die Objekte aus:

    Edited once, last by Muchul ().

  • Diesen Parameter hatte ich gar nicht verändert, allerdings hatte ich zwischendurch auch mal das alles mögliche durcheinander gewesen ist, da ich aber die einstellungen vorher kopiert hatte, habe ich alles wieder hergestellt.

    Möglicherweise habe ich den Parameter übersehen.


    Jetzt sieht es so aus:

    tino.02020-10-31 17:57:21.497debug(769) data received for Node Id: 63 rssi=-39.5 FrequencyOffset=-1647 linkQuality=undefined counter=1 biterrors=0 sync=1 intr1=0 intr2=0 intr3=1 intr4=0 intr5=0 intr6=0 intr7=0 intr8=0
    tino.02020-10-31 17:57:21.497debug(769) data received for Node Id: 63 voltage=3.289 temperature=24.4 humidity=50 pressure=undefined height=undefined distance=undefined contact=undefined
    tino.02020-10-31 17:57:21.490debug(769) Data received: 63 v=3289&c=1&t=2440&h=5000&f=8&int=0x10&sy=1&rssi=-395&fo=-1647&be=0
    tino.0
  • Der Fehler bezog sich ausschließlich auf die TiNo-Protokoll-Version V2.

    Anhand deiner Screenshots kann man erkennen, das du noch die TiNo-Protokoll-Version V1 benutzt und daher nicht betroffen warst.


    In den log-Dateien von Muchul ist zu sehen, dass im TiNo-Protokoll-Version V2 der Interrupt-Wert immer mit der Angabe des Zahlensystems, also mit vorangestellten '0x' für Hexadezimal, gesendet wird.

    Da die Variablenerkenung im ioBroker-Adapter jedoch einen Hexadezimalwert von 0 bis ffff, also ohne vorangestelltes '0x' erwartete, wurde die Variable nicht erkannt.


    nurazur : In den log-Dateien von Muchul ist auch immer die Variable 'f' vorhanden. Wofür steht diese Variable? In der Protokoll-Beschreibung wird sie nicht erwähnt.

  • In den log-Dateien von Muchul ist auch immer die Variable 'f' vorhanden. Wofür steht diese Variable? In der Protokoll-Beschreibung wird sie nicht erwähnt.

    das ist das rohe Flag-Register, eine Bitmaske mit 8 Bits:


    Bit 0: Heartbeat (der Sensor sendet etwas von sich aus, wenn z.B. ein Timer überläuft und meldet "ich bin noch da!". Das Bit ist immer gesetzt wenn ein Sensor eine geplante Messung abschickt.

    Bit 1: Pinchange Interrupt 0 (0= kein Interrupt, 1=Interrupt hat ausgeloest)

    Bit 2: Pinchange Interrupt 1

    Bit 3: Pinchange Interrupt 2

    Bit 4: Pinchange Interrupt 3

    Bit 5: zeigt ein spezielles HF-Protokoll an, ist aber nur für den Dekoder im TiNo selbst bestimmt, hier also nicht interessant

    Bit 6: Es handelt sich um die Antwort auf einen "ACK-request" - Anforderung einer Empfangsbestätigung (interessant für Aktoren, für Sensoren irrelevant)

    Bit 7: "Ack-request" an einen Zielnode (interessant für Aktoren, für Sensoren irrelevant)


    Bits 1 bis 4 werden für die Variable "int" ausgewertet.

    Ich weiss nicht inwieweit das für euch interessant ist - wenn ja, kann ich das gerne in die Spezifikation mit aufnehmen.