Variablen Werte direkt an FHEM senden

Begonnen von Xenoh95, 26 Juni 2023, 11:11:01

Vorheriges Thema - Nächstes Thema

Xenoh95

Guten Tag liebes FHEM Forum,

Ich hoffe, ich wiederhole hier nicht ein bereits bekannte Frage, aber ich konnte dazu nichts finden. Ich suche nach einer Option, Dinge direkt an FHEM zu übermitteln, wie z.B. die Auswertung eines analogen gemessenen Wertes,
ohne auf die externe Auswertung oder Kommunikation einer Bibliothek aufzubauen (falls das überhaupt möglich ist). Von dem was Ich verstehe wird der Großteil der Auswertung und Kommunikation von der AsksinPP.h Lib gesteuert.

Als allgemeine Information: Der FHEM Server läuft auf einem Raspberry Pi 3. Dazu habe ich einen Arduino Pro Mini mit einem CC1101 Funkmodul sowie einem selbstgebauten Schüttelsensor, der die Werte an den A0-Port des Arduinos sendet. Dieser Wert wird nochmals umgerechnet, bis ich meinen endgültigen Wert habe, der dann an FHEM gesendet werden soll. Im Grunde genommen suche ich nur nach einem Weg, der es mir ermöglicht, den Inhalt einer beliebigen Variable direkt an FHEM zu übermitteln.

Freundliche Grüße und einen schönen Montag.

Xenoh95

JoWiemann

Rückfrage

Aus Deiner Beschreibung entnehme ich, dass Du vom Schüttelsensor über den CC1101 gerne Daten per AM oder FM und nicht per WLAN an Fhem übertragen möchtest. Würde bedeuten, dass Du auch Deinem Pi3 ein Funkmodul (CUL, SignalDuino, ...) spendieren müsstest.

Dann könnte das etwas für Dich sein: https://www.fhemwiki.de/wiki/Universalsensor

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

tndx

Da du AskSin++-Library einsetzt, nehme ich an, dass dir das Thema Homematic grudsätzlich bekannt ist und du auch das entsprechende IO-Device in FHEM eingerichtet hast? D.h. falls du überhaupt über CUL_HM gehst. Für diesen Fall gab es ein ein generisches Device "HB-GEN-SENS", das beliebige Payloads übertragen sollte, samt einem entsprechenden FHEM-Modul zum Dekodieren. Auf die Schnelle konnte ich keine Doku dazu finden, also musst du ggf. ein paar Minuten länger investieren.
Falls du über HMCCU gehen willst, meine ich mich erinnern zu können, dass man sowas mit https://github.com/TomMajor/SmartHome/blob/master/HB-UNI-Sensor1/README.md#benutzerspezifische-sensordaten erreichen konnte. Unter dem Link findest du gleich die Doku.

Xenoh95

Zitat von: JoWiemann am 26 Juni 2023, 14:22:31Rückfrage

Aus Deiner Beschreibung entnehme ich, dass Du vom Schüttelsensor über den CC1101 gerne Daten per AM oder FM und nicht per WLAN an Fhem übertragen möchtest. Würde bedeuten, dass Du auch Deinem Pi3 ein Funkmodul (CUL, SignalDuino, ...) spendieren müsstest.

Dann könnte das etwas für Dich sein: https://www.fhemwiki.de/wiki/Universalsensor

Grüße Jörg

Ja ein CUL, sowie ein Jeelink, ist bereits im Pi3. Für Homatic Aktoren funktioniert aber nur die CUL wenn ich das richtig verstehe. Ich habe bisher auch mehrere Geräte über CUL erfolgreich verbunden aber die basierten alle auf existierenden Sketches.

Xenoh95

Also ich hab mir mal all die Links angeschaut und bedanke mich für die Antworten soweit. Vielleicht verstehe ich es ja falsch aber leider geht das nicht in die Richtung die ich erhofft habe. Der Uni Sensor scheint eher ein vielseitiger Sketch zu sein, um eine Vielzahl von Sensoren leicht verwenden zu können. Meine Absicht ist es jedoch, eigene gebaute Sensoren zu nutzen, die analoge Daten an einen Arduino übermitteln, der diese wiederum an FHEM sendet. Das Problem besteht darin, dass alles über die Asksinpp und eine spezifische Sensoren-Bibliothek läuft. Es sollte doch irgendwie möglich sein, meine analogen Daten als beispielsweise Variablen definiert direkt über ein Funkmodul an FHEM zu senden.

frank

1. verschiebe deinen thread nach homematic
2. dein sensor braucht eine neue und eindeutige modelID.
3. fhem braucht zu diesem model eine addon datei. in dieser perl datei (endung ".pm") wird zb festgelegt wie die funktelegramme codiert sind.

schau dir das addon zum unisensor an.

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Xenoh95

Also der Unisensor läuft jetzt und sendet an FHEM. Was mich nur wundert ist das Werte nur ein einziges mal beim Start des Sensors geschickt werden. Danach schweigt er bis ich Ihn neu starte.

Hat jemand hier vielleicht eine Idee wieso das sein könnte? Oder weiß vielleicht jemand in welchen teil des Codes bestimmt wird wie oft der Uni Sensor sich meldet?

Als Info, ich habe den HB-UNI-Sensor2. Sketch benutzt und nur den bme280 angeschlossen. In der Device_Example.h lib habe ich das auch eingestellt.

frank

ich meine gelesen zu haben, dass die fw die möglichkeit bietet, das sendeinterval über register zu konfigurieren.
vielleicht gibt es dabei ein problem?

zeig doch mal
1. ein "get list full"
2. eine konsolen ausgabe der fw
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Xenoh95

#8
Ich bin noch sehr neu in der Welt von FHEM aber ich hoffe das hier ist was du meinst.

1.get list full
Internals:
  DEF        A5A501
  FUUID      64b7a151-f33f-e865-ec84-d8df6f3022b1dfa4
  IODev      myHmUART
  LASTInputDev myHmUART
  MSGCNT    1
  NAME      HM_A5A501
  NR        77
  NTFY_ORDER 48-HM_A5A501
  STATE      T: 21.2 P: 1001.1 H: 51 B: 88000.00 AH: 0.0 DP: 0.0
  TYPE      CUL_HM
  chanNo    01
  disableNotifyFn 1
  eventCount 1
  lastMsg    No:01 - t:70 s:A5A501 d:000000 00D4271B3300864700000C270000
  myHmUART_MSGCNT 1
  myHmUART_RAWMSG 05000037018470A5A50100000000D4271B3300864700000C270000
  myHmUART_RSSI -55
  myHmUART_TIME 2023-07-20 08:14:27
  protLastRcv 2023-07-20 08:14:27
  protRcv    1 last_at:2023-07-20 08:14:27
  rssi_at_myHmUART cnt:1 min:-55 max:-55 avg:-55 lst:-55
  READINGS:
    2023-07-19 13:13:54  CommandAccepted yes
    2023-07-19 14:48:00  D-firmware      1.5
    2023-07-19 14:48:00  D-serialNr      UNISENS001
    2023-07-19 14:46:45  IODev          myHmUART
    2023-07-19 13:16:05  PairedTo        0x666999
    2023-07-19 13:16:05  RegL_00.        00:00 05:40 0A:66 0B:69 0C:99 12:15 14:06 20:02 21:58 22:00 23:00 24:00 25:00 26:00 27:00 28:00 29:00 2A:00 2B:00 2C:00 2D:00 2E:00 2F:00
    2023-07-20 08:14:27  absHumidity    0.0
    2023-07-20 08:14:27  batVoltage      3.11
    2023-07-20 08:14:27  battery        ok
    2023-07-20 08:14:27  brightness      88000.00
    2023-07-19 13:29:47  cfgState        ok
    2023-07-19 14:47:49  commState      CMDs_done
    2023-07-20 08:14:27  dewPoint        0.0
    2023-07-20 08:14:27  humidity        51
    2023-07-19 13:16:03  powerOn        2023-07-19 13:16:03
    2023-07-20 08:14:27  pressure        1001.1
    2023-07-19 13:16:04  recentStateType info
    2023-07-20 08:14:27  state          T: 21.2 P: 1001.1 H: 51 B: 88000.00 AH: 0.0 DP: 0.0
    2023-07-20 08:14:27  temperature    21.2
  helper:
    HM_CMDNR  1
    PONtest    1
    lastMsgTm  1689833667.73158
    mId        F103
    peerFriend
    peerIDsState complete
    peerOpt    p:UniSensor1
    regLst    0
    rxType    156
    supp_Pair_Rep 0
    cmds:
      TmplKey    :no:1689770806.03084
      TmplTs    1689770806.03084
      cmdKey    1:1:0::HM_A5A501:F103:01:
      cmdLst:
        assignHmKey noArg
        burstXmit  noArg
        clear      [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
        deviceRename -newName-
        fwUpdate  <filename> <bootTime> ...
        getConfig  noArg
        getDevInfo noArg
        getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
        getSerial  noArg
        getVersion noArg
        peerBulk  -peer1,peer2,...- [({set}|unset)]
        peerChan  0 <actChn> ... single [set|unset] [actor|remote|both]
        raw        -data- [...]
        regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
        regSet    [(prep|{exec})] -regName- -value- [-peerChn-]
        reset      noArg
        statusRequest noArg
        tplDel    -tplDel-
        tplSet_0  -tplChan-
        unpair    noArg
      lst:
        condition  slider,0,1,255
        peer     
        peerOpt   
        tplChan   
        tplDel   
        tplPeer   
      rtrvLst:
        cmdList    [({short}|long)]
        deviceInfo [({short}|long)]
        list      [({normal}|full)]
        param      -param-
        reg        -addr- -list- [-peerChn-]
        regList    noArg
        regTable  noArg
        regVal    -addr- -list- [-peerChn-]
        saveConfig [-filename-]
        tplInfo    noArg
    expert:
      def        0
      det        0
      raw        1
      tpl        0
    io:
      flgs      2
      newChn    +A5A501,02,00,00
      nextSend  1689833667.79415
      rxt        2
      vccu      vccu
      p:
        A5A501
        00
        00
        00
      prefIO:
        myHmUART
    mRssi:
      mNo        01
      io:
        myHmUART:
          -49
          -49
    peerIDsH:
      00000000  broadcast
    prt:
      bErr      0
      sProc      0
    q:
      qReqConf 
      qReqStat  00
    role:
      chn        1
      dev        1
    rssi:
      at_myHmUART:
        avg        -55
        cnt        1
        lst        -55
        max        -55
        min        -55
    tmpl:
Attributes:
  IOgrp      vccu:myHmUART
  autoReadReg 4_reqStatus
  expert    rawReg
  firmware  1.5
  model      HB-UNI-Sensor1
  peerIDs    00000000
  room      CUL_HM
  serialNr  UNISENS001


2. Konsolenausgabe
AskSin++ v5.0.2 (Jul 20 2023 09:40:54)
BME280 found
Sensor setup done
Serial: UNISENS001
Clock SYSCLOCK
Address Space: 32 - 85
CC init1
CC Version: 14
- ready
tmBattery Voltage: 3103
Battery set low:  21
Battery set crit: 19
Config Changed: List0
ledMode: 1
lowBatLimit: 21
Battery set low:  21
transmitDevTryMax: 6
updCycle: 600
altitude: 0
tempOffset x10: 0
presOffset x10: 0
humiOffset x10: 0
BME280 Temperature x10  : 221
BME280 Pressure x10    : 10012
BME280 PressureNN x10  : 10012
BME280 Humidity x10    : 491
<- 17 01 84 70 A5A501 000000 00 DD 27 1C 31 00 86 47 00 00 0C 1F 00 00  - 266

Zitatich meine gelesen zu haben, dass die fw die möglichkeit bietet, das sendeinterval über register zu konfigurieren.
Was meinst du genau damit? Handelt es sich um ein register in FHEM oder ist das vielleicht eine Bibliothek?

Nur noch als Nebeninformaiton für den Sketch, Er heißt zwar Unisens001 aber der code ist vom Unisens002. Ich habe lediglich die Bezeichnung geändert.

Gernott

Zitat von: Xenoh95 am 20 Juli 2023, 11:27:28updCycle: 600

Mit dem Setting in der Firmware müßte er alle 10 min etwas senden.

Xenoh95

Vielen Dank Gernott! Das hat sofort funktioniert.

Gernott

Zitat von: Xenoh95 am 21 Juli 2023, 08:21:47Das hat sofort funktioniert.

Gerne. - Den Wert kann man aber später auch per Register "updateIntervall" anpassen.