Erstellte Forenantworten
-
AutorBeiträge
-
adminAdministrator
Hm, ich bekomme beim Verbindungsaufbau gar kein Server-Zertifikat angeboten:
openssl s_client -connect 46.41.1.201:8081 CONNECTED(00000003) 1996023904:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 0 bytes and written 289 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1.2 Cipher : 0000 Session-ID: Session-ID-ctx: Master-Key: Key-Arg : None PSK identity: None PSK identity hint: None SRP username: None Start Time: 1487081781 Timeout : 300 (sec) Verify return code: 0 (ok) ---
Mach mal bitte in der Shell ein
httpcfg -list
um zu sehen, an welche Ports das Zertifikat gebunden ist.Und
mono --version
gibt bei dir 3.10.0 aus?adminAdministratorThe website at http://localhost:8081/ seems to be unavailable
Hast du beim Abtippen der Fehlermeldung einen Typo gemacht oder den Text kopiert? Weil, wenn du den HTTPS-Service auf Port 8081 konfiguriert hast, müsstest du auch https://localhost:8081/ statt http://localhost:8081/ aufrufen.
Kann ich den Service öffentlich erreichen um selbst zu Testen? Benutzername/Passwort brauche ich nicht, will nur schauen ob man evtl. noch Details zum TLS-Handshake-Problem rausfinden kann.
adminAdministratorWhich version of mono are you using? Can you remember what you did at 12/02/2017 01:09:38? The exception leads to some problem in the ServiceModel Dispatcher, which is serving the WebUI and the REST-Webservice. That means there was some HTTP-request initiated either by you (by using the WebUI) or some 3rd party service (like the NetIO App using the REST-Webservice). Are you able to reproduce the crash in some way? Random/sporadic errors are hard to find…
adminAdministratorHm, kannst du mal genaue Details posten, was der Browser anmeckert? Also der Port für den HttpsWebservice ist offen und vom Browser erreichbar, lediglich der TLS-Handshake schlägt dann fehl? Der normale unverschlüsselte Service funktioniert einwandfrei?
adminAdministratorKommt in Safari nur eine Warnung, dass die Verbindung nicht sicher ist und du kannst dann aber eine Ausnahme definieren? Oder verweigert er tatsächlich komplett die Verbindung. Habe leider keinen Safari, könntest du mal bitte noch mit einem anderen Browser testen ob dort das gleiche Problem besteht? Hab irgendwie die Vermutung, dass es evtl. ein Safari-Update gab, mit dem die TLS-Verbindung wie LogoControl sie konfiguriert nicht mehr als sicher ansieht…
- Diese Antwort wurde vor vor 7 Jahren, 9 Monaten von admin bearbeitet.
adminAdministratorAlso bis jetzt gibt es keinen User-Upload-Bereich auf der Seite. Prinzipiell habe ich nichts dagegen, wenn du es einfach hier im Forum verlinkst, allerdings müsstest du es extern irgendwo hochladen, da ein File Upload hier im Forum nicht unterstützt wird.
adminAdministratorZu deinem Fehler oben: das liegt an einer Beschränkung der von mir verwendeten Biblothek NCalc, welche für Bitoperationen nur 16 bit unterstützt. Diese Beschränkung habe ich in meiner Entwicklerversion schon vor einigen Monaten aufgehoben, so dass künftig mit 32bit gerechnet wird. Daher trat der Fehler bei mir gar nicht auf und ich hatte leider nicht mehr daran gedacht, dass die aktuell veröffentlichte Version 0.5.2 noch dieses Problem hat. Im nächsten Release von LogoControl wird jedenfalls auch die gepatchte Version von NCalc enthalten sein, so dass die obigen ValueTextConverter funktionieren sollten. Sorry…
adminAdministratorEs werden Byte 984-987 in einen 4byte-Datentyp des LogoControl-Attributs gelesen. Dort wäre also der Wert noch vorhanden. Dieser Wert wird für die Anzeige per ValueText-Converter in Text umgewandelt. Wenn der Benutzer nun aber in der WebUI einen neuen Wert für das Attribut eingibt, so wird dieser eingegebene Text vom ValueTextConverter wieder rückwärts gewandelt in einen 4byte-Wert. Da in der textuellen Repräsentation des Werts jedoch Byte 984 nicht enthalten war, fehlt dem ValueTextConverter diese Information und kann sie folglich auch nicht im 4byte-Wert wiederherstellen.
Wegen der Uhrzeit: ich dachte dir geht es vorrangig um die Anzeige der Uhrzeit und da hätte ich auf die Anzeige der Sekunden aus oben beschriebenen Performance-Gründen verzichtet. Prinzipiell besteht bei der Uhrzeit aber das gleiche Problem wie beim Datum. Du willst 3 Bytes lesen/schreiben kannst aber nur 4 Bytes lesen/schreiben. Entweder du nimmst also ein viertes Byte mit dazu (davor oder dahinter) mit dem Wissen, dass dieses beim Schreiben des Attributs „genullt“ wird, oder aber du definierst dir einfach 3 einzelne Attribute mit je einem Byte für Stunde, Minute, Sekunde getrennt. Da es dir ja nicht um die Anzeige geht, sondern nur um das Stellen der Uhr, ist es ja nicht so wichtig, dass die Zeit in Form eines kombinierten Textes in Form von hh:mm:ss geschieht.
Die WebUI wird dann aber trotzdem sekündlich mit Update-Events geflutet, wenn sich der Wert von Sekunde ändert…
1. Februar 2017 um 14:09 als Antwort auf: logocontrol nach Neustart Pi 3 nicht mehr erreichbar #3245adminAdministratorHi,
schön, dass es nun funktioniert. Hätte jetzt spontan auch keine Erklärung gehabt, wieso der Autostart über rc.local nach einem dist-upgrade nicht mehr funktioniert. Hatte gestern dann bei mir auch mal extra ein update des Pi’s durchgeführt, danach funktioniert allerdings immer noch alles wie gewohnt.
Die Meldung mit dem SSL-Login ist normal, da das Zertifikat welches von LogoControl verwendet wird selbst-signiert ist und nicht von einer Zertifizierungsstelle wie VeriSign&Co. signiert wurde. Daher meckert jeder Browser, dass die Verbindung unsicher ist, weil er die Echtheit des Zertifikats nicht prüfen kann. Die Verbindung ist jedoch nach wie vor verschlüsselt. Die Alternative sind wie gesagt „echte“ von einer im Browser als vertrauenswürdig eingestuften Zertifizierungsstelle signierte Zertifikate einzusetzen, die kosten aber entweder Geld oder sind mit anderen Einschränkungen verbunden.
adminAdministratorHm, knifflige Frage! Also mehrere Attribute in LogoControl zusammenfassen geht schon mal nicht. Einzige Möglichkeit wäre alle 3 Bytes in ein Attribut zu lesen und dann mit irgendwelchen NCalc-Ausdrücken in der Calculation auseinanderzunehmen. Allerdings gibt es keinen Datentyp um 3 Bytes zu lesen, nur 1, 2 oder 4 Bytes und das ist das Hauptproblem!
Das Datum könnte man als DWord (also 4 Bytes) lesen, indem man bereits 1 Byte früher (bei Adresse 984) anfängt zu lesen. Den Inhalt kann man ja durch Bit-Opterationen verschwinden lassen. In der Doku steht, dass dies ein Diagnosebyte ist, keine Ahnung was da konkret drin steht. Lesen sollte kein Problem sein, allerdings das Schreiben des Attributs. Denn dann wird auch immer Byte 948 mit geschrieben. Und da wir den Wert zuvor durch Bit-Operationen verschwinden liesen, können wir diesen Original-Wert auch nicht mehr schreiben. Ob das ein Problem ist, müsstest du ausprobieren, ich habe keine Logo 8.
Bei der Uhrzeit sehe ich da ein ähnliches Problem, allerdings macht es meiner Meinung nach wenig Sinn die Sekunden mit in das Attribut aufzunehmen, da dies zu einer dauerhaften Aktualisierungschleife der Weboberfläche führen wurde (jede Sekunden ändert sich ja der Wert). Daher würde ich nur 2 Bytes lesen/schreiben für Stunde und Minute.
Anbei 2 Calculations für die Konvertierung:
<calculation id="logo_clock_time"> <!-- Logo 8 Dezimal Uhrzeit (z.B. 2334 zu 09:30) --> <valueToText calculation="{[value]>>8}:{if(([value]&255)>9,'','0')}{[value]&255}" /> <textToValue valueParseRegex="(\d+):(\d+)" calculation="{([value1]<<8)+[value2]}" /> </calculation> <calculation id="logo_clock_date"> <!-- Logo 8 Dezimal Datum (z.B. 1114625 zu 01.02.2017.) --> <valueToText calculation="{if(([value]&255)>9,'','0')}{[value]&255}.{if((([value]>>8)&255)>9,'','0')}{([value]>>8)&255}.20{([value]>>16)&255}" /> <textToValue valueParseRegex="(\d+).(\d+).20(\d+)" calculation="{[value1]+([value2]<<8)+([value3]<<16)}" /> </calculation>
Sieht ziemlich verwirrend aus, da die größer/kleiner-Zeichen und Kaufmannsund-Zeichen in XML escaped werden müssen…
Einbinden der TextConverter würde so aussehen:
<device id="uhr" name="LOGO-Uhr"> <attribute id="datum" name="Datum" plc="dummy" address="984" datatype="dword" valueTextConverter="logo_clock_date" /> <attribute id="uhrzeit" name="Uhrzeit" plc="dummy" address="988" datatype="word" valueTextConverter="logo_clock_time" /> </device>
- Diese Antwort wurde vor vor 7 Jahren, 9 Monaten von admin bearbeitet.
adminAdministratorAlso gestartet wird LogoControl über einen Eintrag in deiner rc.local Datei. Das ist quasi sowas wie Autostart, welches beim Booten abgearbeitet wird. Diesen Eintrag in der rc.local erzeugt eigentlich das init.sh Skript welches du bei der Installation nach Anleitung ja aufrufen musst. Evtl. liegt ja hier der Hund begraben, dass dieser Autostart-Mechanismus nicht mehr funktioniert.
Falls es nicht läuft, kannst du auf der Shell in dein LogoControl Verzeichnis wechseln und dort
mono --server LogoControl.exe
eingeben. Das hilft aber nur bis zum nächsten Neustart oder Stromausfall…adminAdministratorNein, damit testest du nur ob mono installiert ist und in welcher version. Mono selbst kann nicht laufen, es ist eine Laufzeitumgebung für Programme, in deinem Fall „LogoControl“. Wenn das Programm läuft steht der Name der Laufzeitumgebung auch im Task-Manager, daher evtl. das Missverständnis.
adminAdministratorSchau mal, ob LogoControl überhaupt noch läuft. Dazu machst du ein „ps x“ auf der Shell und schaust, ob der Prozess „mono –server LogoControl.exe“ noch läuft.
adminAdministratorNein, gibt es leider nicht. Ich hab mir die Umsetzung des Feature-Wunschs (Textmapping mit Farben) schon mal näher im Code angesehen, aber bin zu dem Schluss gekommen, dass es doch nicht so einfach umzusetzen ist. Zumindest ist es nicht in unter einer Stunde machbar, aber ich hab es mal auf meiner Wunschliste fürs ein kommendes Release notiert.
adminAdministratorJa, alle Blockparameter, die du in der LogoSoft über Parameter-VM-Zuordnung an eine Adresse im VM bindest, können anschließend über ein Attribut in LogoControl eingebunden werden. Und Attribute können dann beliebig in der Weboberfläche angezeigt und auch geschrieben werden (also auch Schaltzeiten oder Schwellwerte). Bei der Schaltuhr brauchst du noch einen entsprechenden ValueTextConverter um die Zeiten (welche im HEX-Format in der Logo liegen) in ein menschenlesbares Format zu konvertieren.
Schau dir mal folgenden Thread an, dort gibt es weiter unten auch ein paar Screenshots zu dem Thema:
-
AutorBeiträge