You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Sunday, March 4th 2012, 4:30pm

HE853 USB Stick (was: C++ Code kompilieren für Anfänger)

Hallo,

für Funksteckdosen die ich bei mir im Einsatz habe, gibt es einen USB Stick zur Ansteuerung.
Aus der Windows Anwendung wurde wahrscheinlich dieser Code erstellt:

https://vmi.lmt.ei.tum.de/projects/ros/b…homeeasy_dongle

Ich habe im Anhang denke mal alle wichtigen Files zusammen gefasst.
Nun habe ich nicht wirklich Ahnung von c++. Ich habe g++ die main.cpp übergeben und einige Fehlermeldungen ala "undefined reference to" bekommen.
Kann sich bitte jemand das mal anschauen und mir einen Tipp geben.
Anscheinend fehlen irgendwelche libs oder was auch immer, ich kann da nichts rauslesen :(

Danke
oberlon has attached the following file:
  • he853.tar.gz (13.02 kB - 172 times downloaded - latest: Today, 3:10pm)
HD-VDR:
HW: POV ION330 | Mystique SaTiX-S2 Sky Xpress DUAL
SW: Debian Wheezy | vdr-1.7.38 | softhddevice

This post has been edited 1 times, last edit by "oberlon" (Mar 22nd 2012, 4:25pm)


idl0r

Beginner

Posts: 41

Location: Ruhrpott

  • Send private message

2

Sunday, March 4th 2012, 4:48pm

probier das mal ;)
idl0r has attached the following file:
  • he853.tar.bz2 (47.31 kB - 267 times downloaded - latest: Yesterday, 4:28am)

wirbel

Im Forum Zuhause

Posts: 9,899

Location: Berlin

  • Send private message

3

Sunday, March 4th 2012, 5:45pm

Scheinbar musst du erstmal 'ros' installieren, das scheint ein komplettes extra Paket zu sein: http://www.ros.org
Außerdem wirst du das ganze Paket benötigen: https://vmi.lmt.ei.tum.de/projects/ros/c…=321&format=zip

Sobald dann alles installiert ist, wirst du evtl. mit 'cmake' die Makefiles aktualisieren müssen. Nicht unbedingt alles anfängertauglich.

4

Sunday, March 4th 2012, 6:03pm

Haha, es baut.
Vielen Dank.

Da werde ich mir den Stick mal bestellen und schauen ob es läuft.
HD-VDR:
HW: POV ION330 | Mystique SaTiX-S2 Sky Xpress DUAL
SW: Debian Wheezy | vdr-1.7.38 | softhddevice

5

Sunday, March 4th 2012, 6:08pm

Scheinbar musst du erstmal 'ros' installieren, das scheint ein komplettes extra Paket zu sein: http://www.ros.org
Außerdem wirst du das ganze Paket benötigen: https://vmi.lmt.ei.tum.de/projects/ros/c…=321&format=zip

Sobald dann alles installiert ist, wirst du evtl. mit 'cmake' die Makefiles aktualisieren müssen. Nicht unbedingt alles anfängertauglich.

Dank dem Makefile und den Anpassungen von idl0r habe ich jetzt erstmal ein Binary.
So wie ich das auslesen konnte wird der Stick als hid Gerät erkannt und durch das senden bestimmter codes das Signal erzeugt.
Ich denke das ganze "ros" ist nicht notwendig.

Aber Versuch macht klug. Ich teste es die Woche und schreib hier nochmal.
HD-VDR:
HW: POV ION330 | Mystique SaTiX-S2 Sky Xpress DUAL
SW: Debian Wheezy | vdr-1.7.38 | softhddevice

wirbel

Im Forum Zuhause

Posts: 9,899

Location: Berlin

  • Send private message

6

Sunday, March 4th 2012, 6:17pm

..wär natürlich schicker, wenn's ohne den Overhead läuft. :)

7

Monday, March 12th 2012, 4:07pm

Um kurz eine Zwischenmeldung zu geben.
Den ersten Stick den ich bestellt hatte ist kaputt...
Ging zurück und ich warte auf einen Neuen.
HD-VDR:
HW: POV ION330 | Mystique SaTiX-S2 Sky Xpress DUAL
SW: Debian Wheezy | vdr-1.7.38 | softhddevice

8

Thursday, March 22nd 2012, 4:21pm

Zweiter Stick ist heute angekommen und in einem kurzen Test funktioniert erstmal alles so wie es soll.
Steckdose konnte "programmiert" werden und schaltet danach das Gerät an oder aus.

Sehr schön.

Jetzt mal eine webapp für mein idevice basteln. :rolleyes:
HD-VDR:
HW: POV ION330 | Mystique SaTiX-S2 Sky Xpress DUAL
SW: Debian Wheezy | vdr-1.7.38 | softhddevice

9

Sunday, February 10th 2013, 8:19pm

Hallo,

ich habe den gleichen Stick zum schalten von Steckdosen gekauft und wollte ihn wie du auch gerne unter Linux nutzen.
Dabei bin ich dann auch auf deinen Thread hier gestoßen.

Ich wollte dich fragen ob deine Lösung bei dir aktuell immernoch funktioniert?

Bei mir will das leider nicht klappen.
Ich habe mir die Datei hier runtergeladen, und konnte sie auch erfolgreich compilen - das wars dann aber auch.

Die Steckdose reagiert nicht auf Befehle (unter Windows tut sie es ohne Murren), und wenn ich versuche eine Steckdose zu schalten bekomme ich nur folgendes Ergebnis:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
root@multimedia:~/he853# ./he853 0001 1
HomeEasy Stresstest.
I will flood GER protocol on port 2000 with on and off.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.
Cycle...done.


Der Stick ansich scheint aber erkannt zu werden

Source code

1
2
3
4
5
6
7
8
9
10
root@multimedia:~/he853# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:0b07 Logitech, Inc.
Bus 003 Device 003: ID 046d:c71e Logitech, Inc.
Bus 003 Device 004: ID 046d:c71f Logitech, Inc. diNovo Mini Wireless Keyboard
Bus 002 Device 005: ID 04d9:1357 Holtek Semiconductor, Inc.


So, bin jetzt etwas weiter, habe die main.cpp so abgeändert:

Source code

1
2
3
4
5
        remote = new HE853Controller();

        remote->sendEU((uint16_t)1, (uint8_t)1);

        return 0;

Damit bin ich die Schleife los, und das Programm sendet jetzt genau 1 x on auf dem Kanal 1 wenn ich alles richtig verstanden habe.

Trotzdem tut sich nix, mache ich das gleiche mit dem Windows Tool dann klappt es.

This post has been edited 1 times, last edit by "der_Angler" (Feb 10th 2013, 10:31pm)


10

Monday, February 11th 2013, 12:39am

gefunden, aber ^^

So, Fehler gefunden.

Ich habe zwar keine Ahnung von C, aber eine Sprache ist ja wie die andere und nach dem lesen des Codes bin ich mal auf die Idee gekommen es anstatt mit

Source code

1
remote->sendEU((uint16_t)1, (uint8_t)1);
einfach mal mit

Source code

1
remote->sendAll((uint16_t)1, (uint8_t)1);
zu versuchen - und siehe dann klappts.

Anscheinend habe ich ein Modell mit UK bekommen.

Vielleicht könnt ihr mir aber noch hierbei helfen:
Wie kann ich die Funktion zum auslesen des Status nutzen?

Es gibt ja die Eigenschaft "getDeviceStatus" und die liefert anscheinend nen Array zurück.
Nur wie kann ich das auslesen und vorallem anzeigen? Habe 0 Ahnung von C/C++

Mein Versuch

Source code

1
2
3
4
       if (remote->getDeviceStatus())
                printf("Wahr");
        else
                printf("Falsch");
hat gar nicht funktioniert.

This post has been edited 1 times, last edit by "der_Angler" (Feb 11th 2013, 1:00am)