Schwerwiegender Softwarefehler in der aktuellen Firmware ...

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

Antworten
Linzerin
Beiträge: 9
Registriert: 02.01.2015, 21:07

Schwerwiegender Softwarefehler in der aktuellen Firmware ...

Beitrag von Linzerin » 02.01.2015, 22:08

.... (V2.11.6) der CCU2 oder mache ich etwas falsch?


Hallo Leute,

ich habe mir erst vor ein paar Tagen eine CCU2 angeschafft und bin gleich bei der Umsetzung meines ersten Miniprojekts möglicherweise auf einen schwerwiegenden Softwarefehler der CCU2 gestoßen. Es kann natürlich auch sein, dass ich etwas falsch gemacht habe.

Auch in dem Forum bin ich neu, und hoffe diesen Beitrag an die richtige Stelle gepostet zu haben.

Es geht um folgenden Sachverhalt: Ich habe für die CCU2 via Internet einen Zugang mit der Berechtigungsstufe „Gast“ eingerichtet. Das Ziel ist es, dass der User via Internetzugang auf dem Web UI eine Streckdose einschalten kann und den Status der Steckdose (<ein> oder <aus>) angezeigt bekommt, die Steckdose aber auf keinen Fall mehr ausschalten kann!

Dazu habe ich ein Miniprogramm (mein erstes) erstellt (und über Favoriten für diesen User eingebunden), damit dieser User auf „seiner“ Web UI nur eine Schaltfläche erhält wo er via dem Miniprogramm die Steckdose einschalten kann und zusätzlich unter Favoriten die Steckdose (<Kanal hinzufügen>) hinzugefügt. Unter der Auswahl <Funktion> dieser Steckdose habe ich logischerweise die Eigenschaft <Status> ausgewählt.

Damit bekommt der User nur die Schaltfläche für das Programm „Steckdose ein“ und die „Anzeigeflächen“ „Aus“ und „Ein“ für den Staus der Steckdose angezeigt.

Und jetzt wird’s spannend: Wenn der User auf „seiner“ Web UI mit der Maus über die „Anzeigeflächen“ für den Status der Steckdose fährt – tut sich nichts und er kann über diese Anzeigeflächen die Steckdose nicht bedienen. – Na klar – so soll es ja auch sein!

ABER, wenn der User jetzt die Steckdose via der Schaltfläche Programm „Steckdose ein“ einschaltet, kann er danach über die „Anzeigeflächen“ für den Status plötzlich die Steckdose beliebig ein und ausschalten!! Das heißt aus den Anzeigeflächen werden plötzlich „Bedienflächen“. Und das darf doch nicht sein!!!

Dieser Effekt stellt sich auch reproduzierbar ein, wenn sich der User eingeloggt hat, die Steckdose via Programm aber noch nicht eingeschaltet hat und man dann die Steckdose mit dem Taster an der Steckdose diese einmal ein und ausschaltet. Ab dann kann der User auch via der „Anzeigeflächen“ auf der Web UI die Steckdose plötzlich bedienen!!!

Eigentlich bin ich überrascht, dass das den vielen Profis unter den CCU2-Anwendern noch nicht aufgefallen ist, und der Fehler in der Firmware noch nicht behoben wurde. Zumindest habe ich im Forum geschmökert und diesbezüglich nichts gefunden.

Möglicherweise mache auch ich etwas falsch und habe bei irgendeiner Konfigurierung etwas übersehen. Deshalb habe ich versucht meine Vorgehensweise sehr genau zu beschreiben, in der Hoffnung, dass der eine oder andere Anwender diesen Vorgang nachstellt (es wäre ja kein großer Aufwand) und diese Fehlfunktion auch feststellt, oder erkennen kann ob ich etwas falsch mache.

Übrigens, ich habe verschiedene Internetbrowser ausprobiert. Bei allen tritt diese Fehlfunktion auf! Am Browser liegt es also nicht, was auch zu erwarten war.

Ich wäre über entsprechende Rückmeldungen und Hinweise wie man das Fehlverhalten abstellen kann dankbar. Sollte es tatsächlich ein Firmwarefehler sein, gibt es dann eine Möglichkeit dies dem Hersteller zu melden oder liest er sowieso dieses Forum mit? Wie gesagt ich bin neu hier.

Naheliegend ist auch die Vermutung, dass dieses Fehlverhalten auch bei anderen Aktoren auftritt. Da ich aber bis jetzt nur Funksteckdosen besitze, kann ich dies nicht überprüfen.

Gruß
Linzerin

Tobias78
Beiträge: 1464
Registriert: 27.06.2010, 01:01
Wohnort: Braunschweig
Hat sich bedankt: 4 Mal

Re: Schwerwiegender Softwarefehler in der aktuellen Firmware

Beitrag von Tobias78 » 02.01.2015, 23:13

Hallo Linzerin,
die WebUI mit "Sicherheit" in Verbindung zu bringen ist nen Witz! Egal was Du für User und Rechte einrichtest, die CCU ist über die Schnittstellen offen wie ein Scheunentor. Probier mal beliebige HM App. aus und Du wirst feststellen dass nicht einmal Dein Gastlogin für die 100% Kontrolle erforderlich ist.
Also: CCU niemals über offene Ports im Internet sichtbar machen. Und vergiss die WebUi.
Gruß, Tobias.
--------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------

MarcMatic
Beiträge: 322
Registriert: 02.03.2014, 10:06
Danksagung erhalten: 2 Mal

Re: Schwerwiegender Softwarefehler in der aktuellen Firmware

Beitrag von MarcMatic » 03.01.2015, 00:49

Hallo und herzlich willkommen.
Wie von Tobias schon erwähnt ist die CCU hinsichtlich "sicherer Zugriff" so eine Sache. Man kann da den Zugriff kaum richtig gut abriegeln, zumindest nicht mit den Logikschichten die von der CCU direkt kommen. Wenn man im gleichen Netzwerk ist und nur die IP kennt, so kann man z.B. mit einer iPhone App etc. direkt auf alle Aktoren, Programme, Variablen etc. zugreifen ohne auch nur irgend ein Admin Passwort zu kennen. Das muss einem bei der CCU einfach bewusst sein. Ggf. solltest du dir mal sowas wie http://www.meine-homematic.de anschauen, da gibt es dann auch die Möglichkeit, bestimmte Benutzer anzulegen für den gesicherten Zugriff von extern. Ob du damit aber all das machen kannst was du willst -- da musst du mal selber schauen.

Ich habe deinen Fall übrigens nachstellen können. Obwohl ich den Aktor als "Status" und nicht als "Bedienbar" in die Favoritenliste gelegt habe, kann ich ihn AN und AUS schalten nachdem ich über einen anderen Weg (z.B. über das Programm oder gar über eine iPhone App) den Aktor geschaltet habe. Konkret:

- Logge mich als Gast ein, kann AUS und AN nicht schalten, passiert nix
- dann starte ich das Programm welches den Aktor AN schaltet wenn AUS, aber niemals AUS wenn AN.
- Ab dem Zeitpunkt kann ich dann auch die AUS AN Schaltflächen nutzen.

Es scheint so, dass die CCU die Bedienung freigibt, sobald sich der Status auf irgend einem Wege ändert. Das würde ich im Zusammenhang mit der eigentlich gewählten Option "Status" dann schon als Bug bezeichnet. Wird aber hier noch keinem aufgefallen sein weil die meisten dann doch andere Logikschichten verwenden und das CCU UI nur für Programmierung/Konfiguration etc. nutzen, jedoch nicht für die Userführung.

Du könntest es aber noch anders machen. Nutze nicht den Kanal des Schaltaktors mit seinen AUS AN Flächen sondern lege eine Systemvariable an (Typ Logik) und füge die der Favoritenliste hinzu. Für die Variable legst du noch ein eigenes Programm an welches nirgendwo in den Favoriten auftauchen muss sondern automatisch im Hintergrund auf der CCU läuft. Das sollte dann ca. so aussehen:

Code: Alles auswählen

WENN schaltaktor = EIN (bei Änderung auslösen)
DANN deine-systemvariable sofort = ist An
SONST WENN schaltaktor = AUS (bei Änderung auslösen)
DANN deine-systemvariable sofort = ist Aus
Bildschirmfoto 2015-01-03 um 00.46.31.png
Bildschirmfoto 2015-01-03 um 00.46.31.png (17.16 KiB) 6859 mal betrachtet
ist An und ist Aus kannst du ja auch anders benennen. Bei WAHR und FALSCH gibst du einfach die Bezeichnung an, die du für den jeweiligen Zustand haben möchtest. Intern arbeitet die CCU eh immer mit "true" und "false" (auch in Skripts, wenn du das später mal machst). Also einfach reinschreiben wie es die gefällt.

Dann hast du - wenn ich es richtig verstehe - zunächst mal dein Ziel erreicht. Die Systemvariable (der ich hier mal den Namen Linzerin gegeben habe) wird nämlich definitiv nur als Status angezeigt und kann nicht bedient werden auf diesem Wege.

Lieben Gruss,
Marc

PS: Linz am Rhein oder Linz in Österreich? ;-)

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Schwerwiegender Softwarefehler in der aktuellen Firmware

Beitrag von DrTob » 03.01.2015, 01:15

MarcMatic hat geschrieben:
Du könntest es aber noch anders machen. Nutze nicht den Kanal des Schaltaktors mit seinen AUS AN Flächen sondern lege eine Systemvariable an (Typ Logik) und füge die der Favoritenliste hinzu. Für die Variable legst du noch ein eigenes Programm an welches nirgendwo in den Favoriten auftauchen muss sondern automatisch im Hintergrund auf der CCU läuft. Das sollte dann ca. so aussehen:

Code: Alles auswählen

WENN schaltaktor = EIN (bei Änderung auslösen)
DANN deine-systemvariable sofort = ist An
SONST WENN schaltaktor = AUS (bei Änderung auslösen)
DANN deine-systemvariable sofort = ist Aus
Die Idee mit der Systemvariable ist gut, das Programm aber unnötig kompliziert. Evtl hast du die Logik der Programme noch nicht ganz verstanden?

Einfacher:

Code: Alles auswählen

WENN schaltaktor = EIN (bei Änderung auslösen)
DANN deine-systemvariable sofort = ist An
SONST deine-systemvariable sofort = ist Aus
PS: auch von mir nochmal die Warnung: über die WebUI verhinderst du so die Bedienung. Andere Wege (z.B. iPhone App) werden so aber nicht eingeschränkt. Die Benutzer gelten ausschließlich für die WebUI.

MarcMatic
Beiträge: 322
Registriert: 02.03.2014, 10:06
Danksagung erhalten: 2 Mal

Re: Schwerwiegender Softwarefehler in der aktuellen Firmware

Beitrag von MarcMatic » 03.01.2015, 01:27

DrTob hat geschrieben:Die Idee mit der Systemvariable ist gut, das Programm aber unnötig kompliziert. Evtl hast du die Logik der Programme noch nicht ganz verstanden?
Sagen wir mal so: Diesen Teil habe ich nicht "nicht verstanden" sondern habe es noch nie hinerfragt. Für mich war es augenscheinlich so, dass WENN EIN (bei Änderung auslösen) dazu führt, dass das Programm ausgelöst wird wenn der Aktor von einem Zustand X auf EIN geändert wird. Daher dachte ich, dass man für AUS dann noch mal eine separate Abfrage braucht damit auch von Zustand X auf AUS das Programm ausgelöst wird. Aber jetzt hab ich bei dieser Kleinigkeit was dazu gelernt. Danke für den Hinweis.

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Schwerwiegender Softwarefehler in der aktuellen Firmware ...

Beitrag von DrTob » 03.01.2015, 01:39

MarcMatic hat geschrieben:
DrTob hat geschrieben:Die Idee mit der Systemvariable ist gut, das Programm aber unnötig kompliziert. Evtl hast du die Logik der Programme noch nicht ganz verstanden?
Sagen wir mal so: Diesen Teil habe ich nicht "nicht verstanden" sondern habe es noch nie hinerfragt. Für mich war es augenscheinlich so, dass WENN EIN (bei Änderung auslösen) dazu führt, dass das Programm ausgelöst wird wenn der Aktor von einem Zustand X auf EIN geändert wird. Daher dachte ich, dass man für AUS dann noch mal eine separate Abfrage braucht damit auch von Zustand X auf AUS das Programm ausgelöst wird. Aber jetzt hab ich bei dieser Kleinigkeit was dazu gelernt. Danke für den Hinweis.

Das Programm wird ausgelöst wenn sich der Wert der Bedingung (hier Aktor = Ein) ändert. Eine Änderung ist sowohl Wahr->Falsch, als auch Falsch->Wahr.

Auch wenn du den Aktor ausschaltest wird das Programm also ausgelöst. (Denn der Wert der Bedingung ändert sich. Nämlich von Wahr nach Falsch)

Nach der Auslösung eines Programms wird es IMMER von ganz oben abgearbeitet und sämtliche Bedingungen geprüft. Was zur Auslösung geführt hat ist in diesem zweiten Schritt dann nicht mehr relevant.

Hierzu noch ein Beispiel eines oft gemachten Fehlers:

Code: Alles auswählen

Wenn Aktor 1 = ein (bei Änderung auslösen)
Dann Sysvar1 = ein
Sonst wenn Aktor2 =  ein (bei Änderung auslösen)
Dann Sysvar2 = ein

Wenn du Aktor2 einschaltest während Aktor1 schon an ist, wird Sysvar1 auf ein gesetzt!

MarcMatic
Beiträge: 322
Registriert: 02.03.2014, 10:06
Danksagung erhalten: 2 Mal

Re: Schwerwiegender Softwarefehler in der aktuellen Firmware

Beitrag von MarcMatic » 03.01.2015, 08:13

DrTob hat geschrieben:Das Programm wird ausgelöst wenn sich der Wert der Bedingung (hier Aktor = Ein) ändert. Eine Änderung ist sowohl Wahr->Falsch, als auch Falsch->Wahr.
Genau das sagte ich ja ;)

Linzerin
Beiträge: 9
Registriert: 02.01.2015, 21:07

Re: Schwerwiegender Softwarefehler in der aktuellen Firmware

Beitrag von Linzerin » 03.01.2015, 09:42

Vielen Dank an euch alle für die nützlichen Hinweise!

Wirklich sicherheitsrelevante Anwendungen würde ich sowieso nicht mit der CCU2 umsetzen, und schon gar nicht wenn sie dabei dauernd am Internet hängt und die Funktionsweise der CCU2 im Hintergrund für mich noch gänzlich unklar ist. Zum jetzigen Zeitpunkt kann ich auch noch nicht abschätzen, wie tief ich in die Geheimnisse der CCU2 einsteigen kann und will. Grundsätzlich bin ich sehr neugierig und an Details interessiert. Dadurch steigt aber der zeitliche Aufwand sehr schnell stark an. Und ob ich wirklich bereit bin so viel Zeit zukünftig zu investieren und auch den nötigen Intellekt mitbringe (ich habe mich zwar für solche Dinge immer schon interessiert, komme aber von einer "anderen Seite") wird sich erst herausstellen. Andererseits mit der jetzt schon merkbaren super Unterstützung durch das Forum könnte es schon ein Stück weit funktionieren.

Dass die CCU2 via Appzugriff so extrem offen steht, habe ich natürlich noch nicht gewusst, da ich mich mit diesem Thema noch gar nicht beschäftigt habe - danke für die Info.
Tobias78 hat geschrieben: Also: CCU niemals über offene Ports im Internet sichtbar machen. Und vergiss die WebUi.
Gruß, Tobias.
Dazu habe ich gleich eine, vielleicht blöde, Frage: Wie soll ich denn sonst via Internet auf die CCU zugreifen, wenn nicht über einen definierten Port?


Die gute Idee von MarcMatic mit der Systemvariablen habe ich natürlich sofort aufgegriffen und für die Userführung umgesetzt! Ja, damit habe ich mein aktuelles Ziel erreicht!

Ich hoffe allerdings, dass der Hersteller bei einem Firmwareupdate diesen Bug ausbügelt. Aber wie bekommt der das mit?

MarcMatic hat geschrieben: PS: Linz am Rhein oder Linz in Österreich? ;-)
Linz an der Donau in Österreich :wink:


Gruß,
Linzerin

MarcMatic
Beiträge: 322
Registriert: 02.03.2014, 10:06
Danksagung erhalten: 2 Mal

Re: Schwerwiegender Softwarefehler in der aktuellen Firmware

Beitrag von MarcMatic » 03.01.2015, 10:58

Die meisten lösen den Zugriff über VPN was aber einen entsprechenden Router mit der Funktion auf deiner Seite notwendig macht. Oder aber über meine-homematic.de

Apps wie Pocket Control unterstützen das direkt und die App Schalter in deinem wlan vom Zugriff via IP automatisch beim verlassen des wlan auf den Zugriff über meine Homematic um. Im Hintergrund läuft dann auch ein vpn sozusagen, aber du musst dich selber um nix kümmern. Der Dienst kostet aber jährlich Geld, ist es in meinen Augen aber Wert.

Zugriff über Webbrowser von extern geht natürlich auch, sowohl auf deine CCU als auch auf eine konfigurierbare Benutzeroberfläche (ich glaube die nennen es da cloud Matic oder so). Einfach mal auf der Webseite informieren.

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Schwerwiegender Softwarefehler in der aktuellen Firmware

Beitrag von dtp » 12.01.2015, 14:07

MarcMatic hat geschrieben:Die meisten lösen den Zugriff über VPN was aber einen entsprechenden Router mit der Funktion auf deiner Seite notwendig macht.
Ich habe es über einen VPN-Server auf meiner Synology DiskStation gelöst, auf den ich per DDNS zugreife. Das erfordert dann aber, dass der entsprechende Port im Router zur DiskStation freigeschaltet ist. Auf keinen Fall sollte man direkt den Port zur Steuerung der CCU freischalten.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Antworten

Zurück zu „HomeMatic - bekannte Bugs“