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
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
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 (https://github.com/TomMajor/SmartHome/blob/master/HB-UNI-Sensor1/README.md#benutzerspezifische-sensordaten) erreichen konnte. Unter dem Link findest du gleich die Doku.
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.
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.
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.
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.
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
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.
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.
Vielen Dank Gernott! Das hat sofort funktioniert.
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.