Closed bilbolodz closed 7 years ago
Could you please provide the output of the following commands?
max status
perl -Ilib -MMax -MData::Dumper -e'print Dumper +Max->connect(Max->discover)'
The second command has to be executed from main directory, so cd
there first. Please use https://gist.github.com/ for pasting the output and share the URLs.
https://github.com/Juerd/eq3-max/commit/fa97743f5ce6ef653e041613482033deaa98a38f might fix it, by the way.
cubie@Cubian:~$ max status
Found cube at 192.168.105.15
Use of uninitialized value $setpoint in bitwise and (&) at /opt/eq3-max/bin/../lib/Max.pm line 125,
cubie@Cubian:~$ perl -Ilib -MMax -MData::Dumper -e'print Dumper +Max->connect(Max->discover)' Can't locate Max.pm in @INC (@INC contains: lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .). BEGIN failed--compilation aborted.
Kontaktron okienny 1(0fb2b4) auto@0.0
What does kontaktron mean? I think this is a device type that is not yet supported by this software.
- Sypialnia(2) Termostat Sypialnia(134237) auto@19.0 (valve at 0%)
Interesting; I thought th device you were trying to name, would not be assigned to a room. But clearly it is.
cubie@Cubian:~$ perl -Ilib -MMax -MData::Dumper -e'print Dumper +Max->connect(Max->discover)' Can't locate Max.pm in @INC (@INC contains: lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .). BEGIN failed--compilation aborted.
This command needs to be run from the directory in which the 'lib' and
'bin' folder are. For example, if your git checkout is in /opt/eq3-max,
then cd /opt/eq3-max
before running perl -Ilib -MMax -MData::Dumper -e'print Dumper +Max->connect(Max->discover)'
"Kontaktron okienny 1(0fb2b4)" it's "open windows sensor
Output of second command: ' $VAR1 = bless( { 'metadata_tmp' => [], 'serial' => 'LEQ0429224', 'firmware' => '0113', 'devices' => { ' d' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'LEQ1128382', 'name' => 'Termostat Dominik', 'test_result' => 160, 'max' => $VAR1, 'room' => bless( { 'name' => 'Pokoj Dominik', 'max' => $VAR1, 'id' => 1, 'addr' => ' d', 'devices' => { ' d' => $VAR1->{'devices'}{' d'}, '��' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'LEQ1112884', 'name' => 'Kontaktron okienny 1', 'test_result' => 0, 'max' => $VAR1, 'room' => $VAR1->{'devices'}{' d'}{'room'}, 'firmware' => '1.6', 'setpoint' => '0', 'type' => 4, 'valve' => undef, 'addr' => '��', 'temperature' => '0' }, 'Max::Device' ) } }, 'Max::Room' ), 'firmware' => '1.6', 'setpoint' => '22', 'type' => 1, 'valve' => 100, 'addr' => ' d', 'temperature' => '0' }, 'Max::Device' ), '��' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'MEQ1450675', 'name' => 'Termostat srodkowy', 'test_result' => 161, 'max' => $VAR1, 'room' => bless( { 'name' => 'Salon', 'max' => $VAR1, 'id' => 5, 'addr' => ' �', 'devices' => { ' => bless( { ' 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'MEQ1457815', 'name' => 'Termostat lewy', 'test_result' => 161, 'max' => $VAR1, 'room' => $VAR1->{'devices'}{'��'}{'room'}, 'firmware' => '1.6', 'setpoint' => '21', 'type' => 1, 'valve' => 100, ', 'addr' => ' 'temperature' => '0' }, 'Max::Device' ), 'x�' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'NEQ1201071', 'name' => 'Termostat ścienny salon', 'test_result' => 255, 'max' => $VAR1, 'room' => $VAR1->{'devices'}{'��'}{'room'}, 'firmware' => '1.6', 'setpoint' => '21', 'type' => 3, 'valve' => 4, 'addr' => 'x�', 'temperature' => '20.4' }, 'Max::Device' ), '��' => $VAR1->{'devices'}{'��'}, ' �' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'MEQ1459490', 'name' => 'Termostat prawy', 'test_result' => 161, 'max' => $VAR1, 'room' => $VAR1->{'devices'}{'��'}{'room'}, 'firmware' => '1.6', 'setpoint' => '21', 'type' => 1, 'valve' => 100, 'addr' => ' �', 'temperature' => '0' }, 'Max::Device' ) } }, 'Max::Room' ), 'firmware' => '1.6', 'setpoint' => '21', 'type' => 1, 'valve' => 100, 'addr' => '��', 'temperature' => '0' }, 'Max::Device' ), '��' => $VAR1->{'devices'}{' d'}{'room'}{'devices'}{'��'}, ' ��' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'KEQ0520581', 'name' => 'Przycisk Eco wejście', 'test_result' => 15, 'max' => $VAR1, 'firmware' => '1.9', 'setpoint' => '0', 'type' => 5, 'valve' => undef, 'addr' => ' ��', 'temperature' => '0' }, 'Max::Device' ), 'ߢ' => bless( { 'serial' => 'LEQ0429224', 'test_result' => 255, 'max' => $VAR1, 'type' => 0, 'room' => bless( { 'max' => $VAR1, 'id' => 19, 'devices' => { 'ߢ' => $VAR1->{'devices'}{'ߢ'} } }, 'Max::Room' ), 'firmware' => '0.1', 'addr' => 'ߢ' }, 'Max::Device' ), '�K' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'NEQ1203944', 'name' => 'Termostat ścienny 1', 'test_result' => 255, 'max' => $VAR1, 'room' => bless( { 'name' => 'Sypialnia', 'max' => $VAR1, 'id' => 2, 'addr' => 'B7', 'devices' => { 'B7' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'MEQ1398134', 'name' => 'Termostat Sypialnia', 'test_result' => 255, 'max' => $VAR1, 'room' => $VAR1->{'devices'}{'�K'}{'room'}, 'firmware' => '1.6', 'setpoint' => '19', 'type' => 2, 'valve' => 0, 'addr' => 'B7', 'temperature' => '0' }, 'Max::Device' ), '��' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'LEQ1108703', 'name' => 'Kontaktron okienny 1', 'test_result' => 0, 'max' => $VAR1, 'room' => $VAR1->{'devices'}{'�K'}{'room'}, 'firmware' => '1.6', 'setpoint' => '0', 'type' => 4, 'valve' => undef, 'addr' => '��', 'temperature' => '0' }, 'Max::Device' ), '�K' => $VAR1->{'devices'}{'�K'} } }, 'Max::Room' ), 'firmware' => '1.6', 'setpoint' => '19', 'type' => 3, 'valve' => 4, 'addr' => '�K', 'temperature' => '19.9' }, 'Max::Device' ), 'B' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'MEQ1398100', 'name' => 'Termostat Piotr', 'test_result' => 255, 'max' => $VAR1, 'room' => bless( { 'name' => 'Pokoj Piotr', 'max' => $VAR1, 'id' => 4, 'addr' => 'B', 'devices' => { 'B' => $VAR1->{'devices'}{'B'}, '݃' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'NEQ0163757', 'name' => 'Kontaktron okienny 1', 'test_result' => 0, 'max' => $VAR1, 'room' => $VAR1->{'devices'}{'B'}{'room'}, 'firmware' => '1.6', 'setpoint' => '0', 'type' => 4, 'valve' => undef, 'addr' => '݃', 'temperature' => '0' }, 'Max::Device' ) } }, 'Max::Room' ), 'firmware' => '1.6', 'setpoint' => '21', 'type' => 2, 'valve' => 56, 'addr' => 'B', 'temperature' => '0' }, 'Max::Device' ), '},> $VAR1->{'devices'}{'��'}{'room'}{'devices'}{' 'x�' => $VAR1->{'devices'}{'��'}{'room'}{'devices'}{'x�'}, 'B7' => $VAR1->{'devices'}{'�K'}{'room'}{'devices'}{'B7'}, '݃' => $VAR1->{'devices'}{'B'}{'room'}{'devices'}{'݃'}, ' �' => bless( { 'flags' => { 'battery' => 0, 'link' => 0, 'error' => 0, 'invalid' => 0, 'init' => 0 }, 'mode' => 0, 'serial' => 'LEQ1128403', 'name' => 'Termostat 1', 'test_result' => 160, 'max' => $VAR1, 'room' => bless( { 'name' => 'Lazienka', 'max' => $VAR1, 'id' => 3, 'addr' => ' �', 'devices' => { ' �' => $VAR1->{'devices'}{' �'} } }, 'Max::Room' ), 'firmware' => '1.6', 'setpoint' => '22', 'type' => 1, 'valve' => 77, 'addr' => ' �', 'temperature' => '0' }, 'Max::Device' ), ' �' => $VAR1->{'devices'}{'��'}{'room'}{'devices'}{' �'}, '��' => $VAR1->{'devices'}{'�K'}{'room'}{'devices'}{'��'} }, 'host' => '192.168.105.15', 'devicenames' => {}, 'rooms' => { '4' => $VAR1->{'devices'}{'B'}{'room'}, '1' => $VAR1->{'devices'}{' d'}{'room'}, '3' => $VAR1->{'devices'}{' �'}{'room'}, '19' => $VAR1->{'devices'}{'ߢ'}{'room'}, '2' => $VAR1->{'devices'}{'�K'}{'room'}, '5' => $VAR1->{'devices'}{'��'}{'room'} }, 'addr' => '0edfa2', 'sock' => bless( *Symbol::GEN2, 'IO::Socket::INET' ) }, 'Max' ); '
Thanks. I think the cause of the problem was the Eco button, which doesn't have a room assigned. I don't have an eco button, or window shutters, so I never tested with those things.
As notified before, I've pushed a new commit in an attempt to solve this issue. Could you upgrade to https://github.com/Juerd/eq3-max/commit/fa97743f5ce6ef653e041613482033deaa98a38f using git pull
in the right directory, and let me know if that changes anything?
Thank you. Now it working. Eco button ALWAYS is NOT assigned to particular room. It's device for "whole house" (as I remember it could be two pieces of Eco switch per Cube) so it assigned "to the house".
When I'm trying to set name for a valve:
./bin/max name 134237 "Valve bedroom"
I've got an error:
Can't call method "id" on an undefined value at /opt/eq3-max/bin/../lib/Max.pm line 299, line 17.