Schönen guten Abend zusammen,
ich bin grade dabei vom Max! Cube auf einen Selbstbau CUL umzusteigen.
Bis auf die Tatsache, dass mich die 1% Regel beim Einrichten stört, funktioniert alles.
Alles bedeutet in diesem Fall aber auch (erstmal) nur ein Heizkörperthermostat.
Ich wollte heute mein MySensors DHT22 Thermometer als fakeThermostat einrichten, dabei stoße ich auf ein Problem.
Ich bekomme den "rf error" im STATE nicht abgestellt.
Ich habe das Vorgehen aus dem Wiki befolgt, jedoch wird leider kein Temperaturwert weitergegeben.
Mein Thermostat:
Internals:
CHANGED
DEF HeatingThermostat 1b36c2
FUUID 5c6c00cd-f33f-dc26-bc81-30c98a5ab62812aa
IODev cm
LASTInputDev cm
MSGCNT 2
NAME MAX_HT_Bad_neu
NR 99
RSSI -67.5
STATE 12.0 °C (rf error)
TYPE MAX
addr 1b36c2
backend cm
cm_MSGCNT 2
cm_TIME 2019-02-19 17:15:18
dstsetting 1
mode 1
rferror 1
serial OEQ1775864
type HeatingThermostat
READINGS:
2019-02-19 14:27:33 MAXLAN_error 0
2019-02-19 14:27:33 MAXLAN_errorInCommand
2019-02-19 14:27:33 MAXLAN_initialized 0
2019-02-19 14:27:33 MAXLAN_isAnswer 0
2019-02-19 14:27:33 MAXLAN_valid 0
2019-02-19 17:15:18 RSSI -67.5
2019-02-19 14:16:58 TimeInformationHour 0
2019-02-19 17:15:18 battery ok
2019-02-19 17:15:18 batteryState ok
2019-02-19 14:27:33 boostDuration 5
2019-02-19 14:27:33 boostValveposition 80
2019-02-19 14:27:33 comfortTemperature 21.5
2019-02-19 14:27:33 decalcification Sat 12:00
2019-02-19 17:15:18 desiredTemperature 12.0
2019-02-19 14:27:33 ecoTemperature 16.5
2019-02-19 17:15:17 firmware 1.0
2019-02-19 17:15:17 groupid 0
2019-02-19 14:27:33 maxValveSetting 100
2019-02-19 14:27:33 maximumTemperature on
2019-02-19 14:27:33 measurementOffset 0.0
2019-02-19 14:27:33 minimumTemperature off
2019-02-19 17:15:18 mode manual
2019-02-19 17:15:17 msgcnt 29
2019-02-19 17:15:18 state 12.0 °C (rf error)
2019-02-19 16:39:37 temperature 12.1
2019-02-19 17:15:17 testresult 160
2019-02-19 14:27:33 valveOffset 0
2019-02-19 17:15:18 valveposition 0
2019-02-19 14:39:58 weekprofile-0-Sat-temp 17.0 °C
2019-02-19 14:39:58 weekprofile-0-Sat-time 00:00-00:00
2019-02-19 14:39:58 weekprofile-1-Sun-temp 17.0 °C
2019-02-19 14:39:58 weekprofile-1-Sun-time 00:00-00:00
2019-02-19 14:39:58 weekprofile-2-Mon-temp 17.0 °C
2019-02-19 14:39:58 weekprofile-2-Mon-time 00:00-00:00
2019-02-19 14:39:58 weekprofile-3-Tue-temp 17.0 °C
2019-02-19 14:39:58 weekprofile-3-Tue-time 00:00-00:00
2019-02-19 14:39:58 weekprofile-4-Wed-temp 17.0 °C
2019-02-19 14:39:58 weekprofile-4-Wed-time 00:00-00:00
2019-02-19 14:39:58 weekprofile-5-Thu-temp 17.0 °C
2019-02-19 14:39:58 weekprofile-5-Thu-time 00:00-00:00
2019-02-19 14:39:58 weekprofile-6-Fri-temp 17.0 °C
2019-02-19 14:39:58 weekprofile-6-Fri-time 00:00-00:00
2019-02-19 14:27:33 windowOpenDuration 15
2019-02-19 14:27:33 windowOpenTemperature 12.0
internals:
interfaces thermostat;battery;temperature
Attributes:
IODev cm
event-on-change-reading 1
group MAX
room $System,4_Bad
Mein CUL:
Internals:
CUL_868_MAX_MSGCNT 21
CUL_868_MAX_RAWMSG Z0F0004601B35B20000000018092400BA
CUL_868_MAX_RSSI -76
CUL_868_MAX_TIME 2019-02-19 17:24:30
DEF 123456
FUUID 5c6b0cfe-f33f-dc26-dce6-4602b54f956d17fa
IODev CUL_868_MAX
LASTInputDev CUL_868_MAX
MSGCNT 21
NAME cm
NR 98
STATE Defined
TYPE CUL_MAX
addr 123456
cnt 0
pairmode 0
retryCount 0
sendQueue:
Attributes:
IODev CUL_868_MAX
group MAX,System
icon cul_max
room $System
bzw.:
Internals:
CMDS ABCEeFfGiKlMNRTtUVWXxZ
CUL_868_MAX_MSGCNT 21
CUL_868_MAX_TIME 2019-02-19 17:24:30
Clients :CUL_MAX:HMS:CUL_IR:STACKABLE_CC:TSSTACKED:STACKABLE:
DEF /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0@38400 1234
DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0@38400
FD 26
FHTID 1234
FUUID 5c6b0cb5-f33f-dc26-9956-1f38a0718eaf77c2
NAME CUL_868_MAX
NR 97
NR_CMD_LAST_H 3
PARTIAL
RAWMSG Z0F0004601B35B20000000018092400BAFC
RSSI -76
STATE Initialized
TYPE CUL
VERSION V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) nanoCUL868 (F-Band: 868MHz)
initString X21
Zr
Za123456
Zw111111
MatchList:
1:CUL_MAX ^Z........................
8:HMS ^810e04....(1|5|9).a001
D:CUL_IR ^I............
H:STACKABLE_CC ^\*
M:TSSTACKED ^\*
N:STACKABLE ^\*
READINGS:
2019-02-19 17:02:43 ccconf freq:868.350MHz bWidth:464KHz rAmpl:42dB sens:8dB
2019-02-19 17:06:06 cmds A B C E e F f G i K l M N R T t U V W X x Z
2019-02-19 17:15:17 credit10ms 900
2019-02-19 17:24:30 state Initialized
XMIT_TIME:
1550592366.80722
1550592367.10791
1550592917.66664
Attributes:
group MAX,System
icon cul_868
rfmode MAX
room $System
Mein Thermometer:
Internals:
DEF 101
FUUID 5c5b358e-f33f-dc26-7d96-d31d4914926530cf
IODev MySensorGateway
NAME DHT22_Bad
NR 65
STATE 21.5°C - 45.8% - 17:26:54
TYPE MYSENSORS_DEVICE
ack 0
radioId 101
repeater 1
READINGS:
2019-02-18 22:00:13 SKETCH_NAME TemperatureAndHumidity
2019-02-18 22:00:13 SKETCH_VERSION 1.1
2019-02-19 17:26:54 humidity 45.8
2019-02-18 22:00:12 parentId 0
2019-02-18 22:00:13 state received presentation
2019-02-19 17:26:54 temperature 21.5
gets:
readingMappings:
0:
0:
name temperature
1:
name humidity
sensorMappings:
0:
receives:
sends:
16
15
1:
receives:
sends:
16
15
10:
receives:
sends:
6
7
11:
receives:
sends:
11
12:
receives:
sends:
12
14
13:
receives:
24
sends:
17
18
54
55
56
24
14:
receives:
sends:
45
21
0
2
15:
receives:
sends:
13
43
16:
receives:
sends:
23
37
17:
receives:
sends:
18:
receives:
sends:
19:
receives:
36
sends:
36
2:
receives:
sends:
16
15
20:
receives:
32
sends:
33
50
32
21:
receives:
24
sends:
34
35
24
22:
receives:
sends:
37
43
23:
receives:
24
25
26
27
28
sends:
24
25
26
27
28
24:
receives:
sends:
37
43
25:
receives:
sends:
19
20
26:
receives:
40
17
3
sends:
40
17
3
27:
receives:
41
17
3
sends:
41
17
3
28:
receives:
40
sends:
40
29:
receives:
sends:
2
0
45
44
21
46
22
3:
receives:
2
17
sends:
2
17
30:
receives:
sends:
38
39
14
31:
receives:
sends:
2
16
32:
receives:
sends:
16
15
33:
receives:
sends:
37
16
15
34:
receives:
sends:
37
16
15
35:
receives:
sends:
37
16
15
36:
receives:
47
sends:
47
37:
receives:
sends:
34
35
38:
receives:
sends:
49
39:
receives:
sends:
0
51
52
53
2
4:
receives:
2
3
17
sends:
2
3
17
5:
receives:
29
30
31
3
sends:
29
30
31
3
6:
receives:
sends:
0
42
7:
receives:
sends:
1
8:
receives:
sends:
4
5
9:
receives:
sends:
8
9
10
sets:
clear noArg
flash noArg
fwType
reboot noArg
time noArg
typeMappings:
0:
type temperature
1:
type humidity
10:
type direction
11:
type uv
12:
type weight
13:
type distance
14:
type impedance
15:
type armed
val:
0 off
1 on
16:
type tripped
val:
0 off
1 on
17:
type power
18:
type energy
19:
type button_on
2:
type status
val:
0 off
1 on
20:
type button_off
21:
type hvacflowstate
22:
type hvacspeed
23:
type brightness
range:
max 100
min 0
step 1
24:
type value1
25:
type value2
26:
type value3
27:
type value4
28:
type value5
29:
type up
3:
type percentage
range:
max 100
min 0
step 1
30:
type down
31:
type stop
32:
type ir_send
33:
type ir_receive
34:
type flow
35:
type volume
36:
type lockstatus
val:
0 off
1 on
37:
type level
38:
type voltage
39:
type current
4:
type pressure
40:
type rgb
41:
type rgbw
42:
type id
43:
type unitprefix
44:
type hvacsetpointcool
45:
type hvacsetpointheat
46:
type hvacflowmode
47:
type text
48:
type custom
49:
type position
5:
type forecast
val:
0 stable
1 sunny
2 cloudy
3 unstable
4 thunderstorm
5 unknown
50:
type ir_record
51:
type ph
52:
type orp
53:
type ec
54:
type value
55:
type va
56:
type power_factor
6:
type rain
7:
type rainrate
8:
type wind
9:
type gust
Attributes:
IODev MySensorGateway
group MySensors
mapReading_humidity 0 humidity
mapReading_temperature 0 temperature
mode repeater
room 4_Bad
stateFormat {ReadingsVal('DHT22_Bad','temperature','')."°C - ".ReadingsVal('DHT22_Bad','humidity','')."% - ".substr(ReadingsTimestamp('DHT22_Bad','humidity',''),11,8)}
Meine Ergänzung in der 99_myUtils:
sub MaxFakeWallThermostat($$)
{
my ($heizung, $aktTemp) = @_;
my $CULMAX = $defs{$heizung}{LASTInputDev};
my $desiredTemp = ReadingsVal($heizung, "desiredTemperature", undef);
my $windowOpenTemp = ReadingsVal($heizung, "windowOpenTemperature", undef);
my $lastTemp = ReadingsVal($heizung, "LastExtTemperature", 0);
my $lastSet = ReadingsTimestamp($heizung, "LastExtTemperature", 0);
if($desiredTemp && $windowOpenTemp &&
$desiredTemp != $windowOpenTemp &&
(time()-time_str2num($lastSet) >= 600 || abs($aktTemp-$lastTemp)>=0.2 )) {
Log 3, "set $CULMAX fakeWT $heizung $desiredTemp $aktTemp";
readingsSingleUpdate($defs{$heizung}, "LastExtTemperature", $aktTemp, 0);
fhem("set $CULMAX fakeWT $heizung $desiredTemp $aktTemp");
}
}
Und zu guter Letzt noch meine Änderung in der Config:
define SendExtTemp notify DHT22_Bad:temperature.* {\
MaxFakeWallThermostat("MAX_HT_Bad_neu", $EVTPART1);;\
}
Kann mir da bitte jemand helfen den Fehler zu finden?
Liebe Grüße und schon mal vielen Dank,
Marvin
Hallo zusammen :-)
Ich habe jetzt erstmal alle FakeThermostate rausgenommen, soweit funktioniert alles.
Jetzt hatte ich eine andere Idee:
Wäre es möglich, den Temperaturwert der Thermostate mittels userreading zu überschreiben, indem ich einfach den Tempretaurwert des DHT22 einlese?
Liebe Grüße,
Marvin
dann kannst du auch gleich mit Tipp-Ex ne andere Zahl auf den Monitor schreiben ....
Wenn das gescheit laufen soll ist ein Wandthermostat fällig, vllt läuft ja auch fakeWT mit nur einem HT ,
würde mich nicht wundern nachdem sein Bruder fakeSK auch so ne Niete war.
Mh. Und wieso kann ich meinen mysensors Thermometer nicht einfach als Wandthermostat nutzen? Was siehst du da für Nachteile?
Liebe Grüße, Marvin
Schau dir mal das PID20 Modul an.
FakeThermostate habe ich auch mal versucht und anschließend wieder verlassen und auf den PID20 gewechselt.
Steht schon auf meiner to do Liste, habe ich gestern auch entdeckt!
Danke für den Hinweis :)
Gruß, Marvin