AskSin++ Library

Begonnen von papa, 08 September 2016, 11:11:25

Vorheriges Thema - Nächstes Thema

Tom Major

Zitat von: fhemfreund am 12 Dezember 2018, 01:23:22
Den Ansatz die LDOs zu entfernen (statt einen MCP1700 zu nehmen) habe ich auch ins Auge gefasst. So wie es aussieht muss das (in meiner Konfiguration) nur für den MAX44009 gemacht werden.
Für den BME280 gibt es ein Breakout ohne LDO.
Andreas

Hast du mal einen link auf ein BME280 Board ohne LDO? Möglichst mit der VIN-GND-SCL-SDA Reihenfolge der Pins.

Habe heute den LDO beim MAX44009 entfernt, Resultat:
Standby 0,7 uA statt 6 uA  8)

LED Abschaltmöglichkeit ist jetzt beim UniSensor1 drin und zumindest mit RaspberryMatic getestet.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

fhemfreund

Zitat von: Tom Major am 12 Dezember 2018, 20:05:48
Hast du mal einen link auf ein BME280 Board ohne LDO? Möglichst mit der VIN-GND-SCL-SDA Reihenfolge der Pins.

Habe heute den LDO beim MAX44009 entfernt, Resultat:
Standby 0,7 uA statt 6 uA  8)

LED Abschaltmöglichkeit ist jetzt beim UniSensor1 drin und zumindest mit RaspberryMatic getestet.

Na das sieht doch gut aus - wir bekommen das super optimiert. Bin schon auf die RTC Version gespannt :-)
Theoretisch könnte man mit der RTC Version dann auch den LED Mode aus Fhem testen - oder?

Mein BME Board ist von hier:


https://www.ebay.de/itm/BME280-BMP280-digitaler-Barometer-Temperatur-Luftdrucksensor-od-Feuchte-Arduino/172471251481?hash=item2828167219:m:mG8pHpdu0AXQvlqdtEMVEeg:rk:3:pf:0


Andreas

Tom Major

Zitat von: fhemfreund am 12 Dezember 2018, 21:19:32
Na das sieht doch gut aus - wir bekommen das super optimiert. Bin schon auf die RTC Version gespannt :-)
Theoretisch könnte man mit der RTC Version dann auch den LED Mode aus Fhem testen - oder?

Mein BME Board ist von hier:


https://www.ebay.de/itm/BME280-BMP280-digitaler-Barometer-Temperatur-Luftdrucksensor-od-Feuchte-Arduino/172471251481?hash=item2828167219:m:mG8pHpdu0AXQvlqdtEMVEeg:rk:3:pf:0


Andreas

Das BME Board ist etwas breiter wegen der 2 extra pins, aber gut, dafür ohne LDO. Würde wahrscheinlich wegen Preis und Abmessungen bei den Ali 4-pin Boards bleiben und den LDO entfernen.

LED Mode ist unabhängig von sysclock oder rtc und sollte jetzt schon von fhem aus testbar sein (mit meinem Perl script update von gerade eben).
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

fhemfreund

Zitat von: Tom Major am 14 Dezember 2018, 00:01:52
LED Mode ist unabhängig von sysclock oder rtc und sollte jetzt schon von fhem aus testbar sein (mit meinem Perl script update von gerade eben).

sehr gut - das teste ich dann mit der RTC FW Version zusammen (sobald diese verfügbar ist)

Andreas

Tom Major

Zitat von: fhemfreund am 16 Dezember 2018, 14:51:44
sehr gut - das teste ich dann mit der RTC FW Version zusammen (sobald diese verfügbar ist)
Andreas

das machen wir am besten per PN.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

thunder1902

Ich steig' beim AsksinPP von Papa nicht durch.
Gibt es irgend eine Art von "Hilfe" oder einer Doku?

Mein Ziel: Ich möchte einen möglichst Batterie-Sparsamen Sensor/Schalter bauen, der 2 Relais oder FETS schalten kann - UND jede Stunde mittels einem DS18B20 die Temperatur mist. Optional noch über den I2C Bus die Helligkeit (SHT10) und Luftdruck (BMP180). Also ein "Kombi-Schalt-Sensor".

Wie kann ich als "Laie" jetzt vorgehen?

Danke schonmal für eure Hilfe!!

fhemfreund

Zitat von: thunder1902 am 17 Dezember 2018, 15:34:09
Ich steig' beim AsksinPP von Papa nicht durch.
Gibt es irgend eine Art von "Hilfe" oder einer Doku?

Mein Ziel: Ich möchte einen möglichst Batterie-Sparsamen Sensor/Schalter bauen, der 2 Relais oder FETS schalten kann - UND jede Stunde mittels einem DS18B20 die Temperatur mist. Optional noch über den I2C Bus die Helligkeit (SHT10) und Luftdruck (BMP180). Also ein "Kombi-Schalt-Sensor".

Wie kann ich als "Laie" jetzt vorgehen?

Danke schonmal für eure Hilfe!!

Also das Thema (extrem) Batterie-sparenden Sensor bin ich gerade dabei mit Tom weiter zu verfolgen. Dauert aber noch etwas. Dieser hat einen Digital Eingang, Helligkeitsmessung (via Max 44009), Temp, Luftfeuchte und Druck (via BME280).

Der Sensor kann (einstellbar via Register) aus Fhem eingestellt werden (z.B. Sendezyklus, LED Mode an/aus usw.). Dazu gibt es ein Fhem Modul + FW von Tom. Und zwar hier:


https://github.com/TomMajor/AskSinPP_Examples/tree/master/HB-UNI-Sensor1


Eine mögliche Platine dazu gibt es von Papa:


https://github.com/pa-pa/HMSensor/tree/master/HMSensor-CR2032


Prinzipiell gibt es auch Relais, die man vom Sensor (technisch gesehen) schalten könnte, allerdings müsste das in der FW+Fhem unterstützt werden. Beispiele, was alles schon möglich ist findet man z.B. hier:


https://jp112sdl.github.io/AskSinPPCollection/Grundlagen/



Andreas

fhemfreund

@papa

Komme nochmal auf mein Problem mit dem Lesen der Register in Fhem zurück:

Zitat von: papa am 10 Dezember 2018, 09:15:06
Könntest Du bitte mal die seriellen Ausgaben loggen, wenn es auftritt. Vielleicht können wir da was sehen.

Habe jetzt mal einen Trace über die serielle Konsole gemacht mit folgender Prozedur in Fhem:

1. set HM_A5A500 getConfig
2. Am Sensor den Config Button drücken
3. Check in Fhem auf 'CMDs processing' (muss 2x den Config Button drücken, weil ich zwischendrin die Meldung CMDs pending bekomme und sonst nichts weiter passieren würde)
4. Das Device hat am Ende 'RESPONSE TIMEOUT:RegisterRead'. Es funktioniert aber einwandfrei und auch das Setzen von Registerwerten funktioniert korrekt (z.B. updateIntervall)

Hier der Trace:


debounce
pressed
released
<- 1A 02 84 00 A5A500 000000 12 F1 03 55 4E 49 53 45 4E 53 30 30 31 70 01 01 01  - 532

-> 10 2A A0 01 F11034 A5A500 00 04 00 00 00 00 00  - 1609
<- 1A 2A A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 1748
waitAck: 00
<- 1A 2A A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 2400
waitAck: 00
<- 1A 2A A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 3049
waitAck: 00
<- 1A 2A A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 3700
waitAck: 00
<- 1A 2A A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 4349
-> 10 2B A0 01 F11034 A5A500 00 04 00 00 00 00 00  - 4648
waitAck: 00
<- 1A 2A A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 5005
-> 10 2B A0 01 F11034 A5A500 00 04 00 00 00 00 AA  - 5122
-> 0A 2A 80 02 F11034 A5A500 00  - 5246
waitAck: 01
<- 0E 2A 80 10 A5A500 F11034 02 23 00 00 00  - 5279
ignore 0F 02 86 10 639BE7 000000 0A BD 08 8E 00 40  - 13744
ignore 14 E0 80 5E 29F26F F11034 00 00 00 00 00 00 00 00 00 00 00  - 18268
ignore 10 45 86 53 4D1532 000000 00 4D 26 E6 00 03 69  - 18952
debounce
pressed
released
<- 1A 03 84 00 A5A500 000000 12 F1 03 55 4E 49 53 45 4E 53 30 30 31 70 01 01 01  - 20574

-> 10 2B A0 01 F11034 A5A500 00 04 00 00 00 00 00  - 21600
<- 1A 2B A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 21731
waitAck: 00
<- 1A 2B A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 22382
-> 0F 69 86 10 639BE8 000000 0A 98 C5 0D 0E 40  - 22458
waitAck: 00
<- 1A 2B A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 23037
waitAck: 00
<- 1A 2B A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 23689
waitAck: 00
<- 1A 2B A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 24340
-> 10 2C A0 01 F11034 A5A500 00 04 00 00 00 00 00  - 24739
waitAck: 00
<- 1A 2B A0 10 A5A500 F11034 02 0A 00 0B 00 0C 00 14 06 12 16 20 00 21 B4 22 00  - 24995
-> 10 2C A0 01 F11034 A5A500 00 04 00 00 00 00 00  - 25436
waitAck: 00
<- 0C 2B 80 10 A5A500 F11034 02 00 00  - 25638
ignore 14 E3 80 5E 29F26F F11034 00 00 00 00 00 00 00 00 00 00 00  - 32053


Andreas

papa

waitAck: 00
Es wird auf eine Bestätigung der Zentrale gewartet, die aber leider nicht empfangen wird. Könntest Du das auch mal von einem zweiten unbeteiligten Gräte loggen. Dann sehen wir auch die Nachrrichten der Zentrale. Irgendwie ist das komisch.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

PeMue

#1149
Hallo,

Zitat von: papa am 20 Mai 2018, 22:39:42
Es gibt in examples/custom/HB-GEN-SENS einen generischen Sensor, der Temperatur & Luftfeuchtigkeit sendet. Damit er in FHEM funktioniert, muss das Module HMConfig_AskSinPPCustom.pm installiert werden - einfach in das FHEM Verzeichnis kopieren.
Nach dem Pairing muss noch dem FHEM-Device mitgeteilt werden, wie die Nachrichten zu interpretieren sind. Dazu muss das Custom-Attribute valueformat angelegt werden:
attr DEVICE userattr valuesformat
attr DEVICE valuesformat SPEC1 SPEC2

Dabei ist für jeden gesendeten Wert eine Spezifikation durch Freizeichen getrennt anzugeben. Die SPEC besteht aus 3 Teilen, wobei nur der erste zwingend notwendig ist:
Anzahl Bytes - 1, 2 oder 4 - gefolgt von einem 's' wenn vorzeichenbehaftet
Name des Reading - wenn angegeben wird der Wert in dieses Reading gespeichert - default valueX
Faktor - empfangener Wert wird durch den Faktor geteilt - default 1

Für das Beispiel ist folgende Spezifikation zu verwenden:
2s:temperature:10 1:humidity
Also die Temperatur wird mit 2 Byte übertragen. Der Wert ist um den Faktor 10 erweitert. Das erzeugte Reading wird temperature heißen. Der zweite Wert ist ein Byte lang und nur positiv. Er wird im Reading humidity gespeichert. Je nachdem, was gesendet wird, muss der Formatstring im Device angelegt werden.
Ich hoffe mal, das kann man irgendwie verstehen. Es gibt auch noch ein paar Vorbereitungen, um einfach neue Devices mit unterschiedlichen Channels "einfach" in FHEM anzumelden. Das versuche ich demnächst nochmal zu erklären.

ich habe gloob's Sketch für den Ultraschallsensor genommen, compiliert und auf einen Universalsensor aufgespielt. Die Werte kommen sauber, aber ich habe im Log folgende zyklische Meldungen:
2019.01.03 21:30:11 1: HB-GEN-SENS01 has 2 values (010202480D)
2019.01.03 21:33:28 1: HB-GEN-SENS01 has 2 values (010202490D)

Wie bekomme ich die weg, bzw. was ist bei mir noch falsch?

Danke + Gruß

Peter

Edit:
Und beim setzen des R-eventDlyTime Registers kommt folgende Meldung  :o:
R-eventDlyTime failed: supported register are eventDlyTime pairCentral sign

Irgend etwas scheint da nicht zu passen, hier ein List:
Internals:
   DEF        B513ED
   IODev      PMCUL01
   LASTInputDev PMCUL01
   MSGCNT     4870
   NAME       UG_Tank
   NOTIFYDEV  global
   NR         363
   NTFY_ORDER 50-UG_Tank
   PMCUL01_MSGCNT 4870
   PMCUL01_RAWMSG A0E2EA253B513EDF10000010204380D::-80:PMCUL01
   PMCUL01_RSSI -80
   PMCUL01_TIME 2019-01-03 21:43:11
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 UG_Tank_Values
   lastMsg    No:2E - t:53 s:B513ED d:F10000 010204380D
   protCmdDel 2
   protLastRcv 2019-01-03 21:43:11
   protResndFail 1 last_at:2019-01-03 21:39:46
   protSnd    4854 last_at:2019-01-03 21:43:11
   protState  CMDs_done
   rssi_at_PMCUL01 cnt:4870 min:-80 max:-64.5 avg:-70.12 lst:-80
   READINGS:
     2018-12-30 18:07:29   CommandAccepted yes
     2019-01-03 21:39:41   D-firmware      0.3
     2019-01-03 21:39:41   D-serialNr      US00000001
     2018-12-30 18:08:40   PairedTo        0xF10000
     2018-12-30 18:08:40   R-pairCentral   0xF10000
     2019-01-03 21:43:11   state           CMDs_done
     RegL_00.:
       VAL       
   helper:
     HM_CMDNR   46
     cSnd       ,01F10000B513ED00040000000000
     mId        F205
     regLst     ,0
     rxType     4
     supp_Pair_Rep 0
     expert:
       def        1
       det        1
       raw        1
       tpl        1
     io:
       newChn     +B513ED,00,00,00
       nextSend   1546548191.31786
       prefIO     
       rxt        0
       vccu       
       p:
         B513ED
         00
         00
         00
     mRssi:
       mNo        2E
       io:
         PMCUL01:
           -78
           -78
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
     rpt:
       IO         PMCUL01
       flg        A
       ts         1546548191.22091
       ack:
         HASH(0x1899fb0)
         2E8002F10000B513ED00
     rssi:
       at_PMCUL01:
         avg        -70.1276180698152
         cnt        4870
         lst        -80
         max        -64.5
         min        -80
     tmpl:
Attributes:
   IODev      PMCUL01
   autoReadReg 4_reqStatus
   expert     251_anything
   firmware   0.3
   model      HB-GEN-SENS
   room       3_Keller
   serialNr   US00000001
   subType    custom
   webCmd     getConfig:clear msgEvents


Internals:
   DEF        B513ED01
   NAME       UG_Tank_Values
   NOTIFYDEV  global
   NR         364
   NTFY_ORDER 50-UG_Tank_Values
   STATE      216 1.3
   TYPE       CUL_HM
   chanNo     01
   device     UG_Tank
   READINGS:
     2018-12-27 15:58:38   R-eventDlyTime  180 s
     2018-12-27 15:58:38   R-sign          off
     2019-01-03 21:43:08   batVoltage      1.3
     2019-01-03 21:43:08   complete        216.0 cm   1.3 V
     2019-01-03 21:43:08   distance        216
     2019-01-03 21:43:08   state           216 1.3
     2018-12-27 15:54:33   value1          3
     2018-12-27 15:54:33   value2          60
   helper:
     getCfgListNo
     regLst     ,1
     expert:
       def        1
       det        1
       raw        1
       tpl        1
     role:
       chn        1
     tmpl:
Attributes:
   model      HB-GEN-SENS
   peerIDs   
   userReadings complete { sprintf("%3.1f cm   %3.1f V", ReadingsVal("$name", "distance", 0), ReadingsVal("$name", "batVoltage", 0)); }
   userattr   valuesformat
   valuesformat 2:distance:5 1:batVoltage:10
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

papa

Das Regsiter heisst einfach eventDlyTime - also ohne das "R-". Du kannst auch das hier zum Register setzen benutzen.
Wegen den Logeinträgen - bitte sicherstellen, dass die neueste Version der HMConfig_AskSinPPCustom.pm genutzt wird. Da habe ich das Logging umgestellt.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

PeMue

Zitat von: papa am 03 Januar 2019, 23:29:22
Das Regsiter heisst einfach eventDlyTime - also ohne das "R-".
Wegen den Logeinträgen - bitte sicherstellen, dass die neueste Version der HMConfig_AskSinPPCustom.pm genutzt wird. Da habe ich das Logging umgestellt.
Und schon funktioniert's, macht man es richtig.

Vielen Dank.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

PeMue

Hallo,

Zitat von: gloob am 01 August 2018, 10:03:37
Einstellen des Sendeintervalls
Das Sendeintervall steht per Default auf 180 Sekunden. Kann aber über das Setzen eines Registers geändert werden

set HM_xxxxxx_Values regSet eventDlyTime ZEIT_IN_SEKUNDEN


Nach dem Setzen des Intervalls muss der Konfig-Button am Sensor gedrückt werden um den Wert zu übernehmen.
so ganz klappt das bei mir noch nicht.
Ich habe verschiedene Szenarien durch (wie oben; setzen, getConfig auf Kanalebene, Taster drücken; setzen, getConfig auf Sensorebene, Taster drücken; ...), aber der Wert für das Sendeintervall wird nicht übernommen.
Wo bzw. wie kann ich suchen?

Internals:
   DEF        B513ED01
   NAME       UG_Tank_Values
   NOTIFYDEV  global
   NR         364
   NTFY_ORDER 50-UG_Tank_Values
   STATE      58.4 1.3
   TYPE       CUL_HM
   chanNo     01
   device     UG_Tank
   READINGS:
     2019-01-05 12:01:57   R-eventDlyTime  set_3600 s
     2018-12-27 15:58:38   R-sign          off
     2019-01-05 12:12:45   batVoltage      1.3
     2019-01-05 12:12:45   complete        58.4 cm   1.3 V
     2019-01-05 12:12:45   distance        58.4
     2019-01-05 12:12:45   state           58.4 1.3
     2018-12-27 15:54:33   value1          3
     2018-12-27 15:54:33   value2          60
   helper:
     getCfgListNo
     regLst     ,1
     expert:
       def        1
       det        1
       raw        1
       tpl        1
     role:
       chn        1
     shadowReg:
       RegL_01.     08:00 21:BC 00:00
     tmpl:
Attributes:
   model      HB-GEN-SENS
   peerIDs   
   userReadings complete { sprintf("%3.1f cm   %3.1f V", ReadingsVal("$name", "distance", 0), ReadingsVal("$name", "batVoltage", 0)); }
   userattr   valuesformat
   valuesformat 2:distance:10 1:batVoltage:10


Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

papa

Kannst Du mal die AUsgaben auf der seriellen Console loggen. Dann in FHEM das "set ......" ausführen und danach den KonfigTaster drücken.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

PeMue

#1154
Zitat von: papa am 05 Januar 2019, 16:27:20
Kannst Du mal die AUsgaben auf der seriellen Console loggen. Dann in FHEM das "set ......" ausführen und danach den KonfigTaster drücken.
Nachdem ich auch nicht OTA flashen kann (fail:notInBootLoader) habe ich den Verdacht, dass ich mit einer zu alten AskSin Library compiliert habe. Reicht die v3 (v3.0.2) nicht? Oder muss ich den aktuellen development branch (3.1.2) verwenden?
Vorher muss ich natürlich noch Debug anschalten und irgendwie ein Kabel zumindest den Tx Pin am Prozessor anlöten, im Layout ist natürlich nichts vorgesehen  :(.

Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser