admin

Erstellte Forenantworten

15 Beiträge anzeigen - 136 bis 150 (von insgesamt 309)
  • Autor
    Beiträge
  • als Antwort auf: upgrade auf logocontrol 0.5 #2798
    admin
    Administrator

    @virility
    Ah hab gerade gesehen, dass du kurz vor meiner Antwort selber schon drauf gekommen bist. Vielleicht verlinke ich das XSD doch noch in der Migrationsanleitung. Die meisten können zwar damit nichts anfangen, aber dir scheints ja geholfen zu haben 🙂


    @spacewalker

    In XML gibt es 2 Möglichkeiten ein Element zu schließen:

    Entweder öffnendes und schließendes Tag als Paar:
    <Element bla="test" bla2="test"></Element>

    oder beides in einem mit dem Slash am Ende:
    <Element bla="test" bla2="test" />

    Beide Varianten sind korrekt. Da das <attribute> Tag bei LogoControl eh keinen Content haben darf, bietet sich hier die kurze Schreibweise an. Bei der ausführlichen Variante mit öffnendem und schließenden <attribute> muss man nur darauf achten, dass nichts dazwischen steht (auch kein Zeilenumbruch oder Leerzeichen), da es sonst als Content gewertet wird, welcher ja beim <attribute> in LogoControl nicht zulässig ist.

    als Antwort auf: upgrade auf logocontrol 0.5 #2795
    admin
    Administrator

    Du hast unten im „infrastructure“ Bereich noch valueText Elemente stehen. Im „infrastructure“ Block sind diese aber nicht mehr erlaubt, sprich du musst für diese oben im „settings“ Block entsprechende textMappings anlegen und unten bei deinen „attribute“ Elementen auf diese verweisen. Bzw. diese valueText Elemente sind doch eigentlich eh überflüssig, da sie nur 0 in 0 und 1 in 1 konvertieren?!

    als Antwort auf: upgrade auf logocontrol 0.5 #2786
    admin
    Administrator

    Kannst du bitte deine config.xml mal hier posten? Ansonsten, wenn du etwas mit XML-Validierung mit XML-Schema anfangen kannst, hier ist die XSD zur config.xml: config.xsd

    als Antwort auf: logocontrol 0.5 mehrere logos #2774
    admin
    Administrator

    Schau mal die Doku zu Konfiguration an. Im Settings Block einfach die Zeile mit <plc id="myLogo"... duplizieren, eine neue ID für diese PLC vergeben und in infrastructure dann bei jedem attribute/method/trigger das ein address="x.x" Parameter hat dann ein plc="myLogo" davor setzen, welches somit auf die ID im settings Block verweist. Z.B. so:
    <method id="1" name="open" plc="myLogo" address="150.0" />

    als Antwort auf: Ausschaltverzögerungen visualisieren – Poolsteuerung #2768
    admin
    Administrator

    Hab die 0.5er gerade veröffentlicht 🙂 Allerdings muss ich noch die Doku passend dazu aktualisieren, mach ich die nächsten Tage. Beim Update bitte die Anleitung zur Migration auf 0.5 (auf der Download-Seite verlinkt) beachten, da deine Konfig vorher unbedingt manuell angepasst werden muss.

    als Antwort auf: Trigger "jede Minute" #2736
    admin
    Administrator

    Also Trigger von LogoControl aus minütlich aufzurufen geht nicht. Ein Trigger überwacht ja nur den VM-Speicher und löst dann bei Eintreten der gewünschten Bedingung aus.

    Daher hätte ich zwei Möglichkeiten:
    Du baust einen „Taktgeber“ in dein Logo-Schaltprogramm der minütlich ein Bit im VM für eine Sekunde auf 1 setzt (und danach wieder zurück auf 0). Dieses Bit kannst du dann mit einem Trigger abfangen und ein Shell-Script aufrufen. Das Problem wird allerdings eher sein, wie du den Analogwert deines Attributs in dein Shell-Script transportierst. Der Trigger ruft nur eine Methode auf, gibt aber dieser keinen Parameterwert mit. Wenn es nur eine Hand voll möglicher Werte für das Attribut sind könntest du zwar für jeden möglichen Wert ein Pärchen aus Trigger und Methode erstellen, das fände ich aber nur als Notlösung praktikabel.

    Zweite Möglichkeit: Du startest einfach das Shell-Script per Cron-Job jede Minute. Im Shell-Script holst du dir den aktuellen Wert deines Attributs per Webservice-API von LogoControl. Schau dir dazu mal das Beispiel 2 ganz unten an. Dort verwende ich zwar einen Trigger (der allerdings nicht minütlich, sondern nur bei Wertänderung auslöst), den könntest du aber durch ein Cron-Job ersetzen. In dem Beispiel lade ich per wget von der URL „http://localhost:8088/rest/devices/48/attributes/1/value&#8220; nur einen Attributwert. Je nachdem wie viele Attribute du loggen möchtest macht es evtl. Sinn per URL „http://localhost:8088/rest/attributes&#8220; statt X wget’s nur einen einzigen wget-Aufruf zu machen und dir aus dem Rückgabe-Text (z.B. per Linux-Kommandos sed oder awk) die einzelnen Texte rauszupicken…

    als Antwort auf: upgrade auf logocontrol 0.5 #2735
    admin
    Administrator

    Hi, momentan gibt es LogoControl 0.5 noch nicht zum download, ist aber für dieses Wochenende geplant. Außerdem muss ich die Dokumentation noch auf den neuesten Stand bringen, da sie sonst nicht mit der 0.5er Version konsistent ist. Fürs Update reicht es aber aus das Zip/Tar-Archiv komplett zu entpacken und die Dateien im Zielordner damit zu überschreiben (keine Sorge, deine config.xml wird dabei nicht überschrieben, ist im Archiv nicht enthalten). Also direkt in deinem Home-Verzeichnis wie schon bei der ersten Installation:

    tar -zxvf logocontrol-pi-x.x.x.tgz

    Anschließend beginnt aber der kritischere Teil: du musst deine config.xml fit für die 0.5er Version machen, da sonst LogoControl nicht mehr startet. Wenn das abgeschlossen ist einfach LogoControl neu starten (killall mono) oder deinen Pi neu booten (sudo reboot).

    als Antwort auf: NETIO App #2727
    admin
    Administrator

    Schau dir nochmal die Demo-Config für NetIO an:
    http://netio.davideickhoff.de/editor?config=13034

    Dort gibt es unten auf der Seite ein Label mit dem Text „Ich bin das Arbeits-Label…“. Das ist das Label welches alle Sekunde die Werte von LogoControl abruft. Im „reads“-Attribut ist dazu „/rest/attributes“ eingetragen. Per „interval“-Attribut von 1000 wird dieser reads-Befehl nun alle Sekunde ausgeführt. Vielleicht schaust du dir einfach mal das JSON im Browser an, welches http://logocontrol:8088/rest/attributes zurück liefert, um zu verstehen welche Antwort NetIO von LogoControl geliefert bekommt und um die Funktionsweise dahinter zu verstehen.

    Alle anderen Controls auf deiner Seite müssen dann keine „reads“ Befehle mehr ausführen, sondern holen sich ihre Daten aus dieser Antwort (das große JSON) des „reads“-Befehl des Arbeits-Labels. Das geschieht indem diese Controls ein „parseResponse“ Attribut spendiert bekommen (sieh dir z.B. den Slider „Licht“ an). Dort ist ein Regulärer Ausdruck enthalten mit dem das Control den für sich interessanten Wert aus der großen alles beinhaltenden JSON-Antwort des „Arbeits-Labels“ herauspickt. Im speziellen pickt es sich den ValueText des LogoControl Devices aus diesem langen JSON. Wenn im ValueText für deine Lampe nun im eingeschalteten Zustand ein „an“ steht, musst du das im Slider als Wert für „onValue“ setzen. Wenn dein Lampe im eingeschalteten Zustand ein „eingeschaltet“ als ValueText ausspuckt entsprechend dann diesen Text als „onValue“. Das ist ganz abhängig von deiner config.xml und welche Texte du da für dein Device hinterlegt hast.

    Noch was: wenn du mehrere Pages hast, benötigst du so ein Arbeits-Label auf jeder Page, da der Intervall des Labels nur ausgelöst wird, wenn es gerade im Vordergrund sichtbar ist.

    als Antwort auf: LogoControl Prefix #2707
    admin
    Administrator

    Hi, heißt das, die Sache mit den vermeintlich doppelt belegten Ports klappt nun bei dir auch? Hing das auch mit der Mono-Version zusammen?

    als Antwort auf: LogoControl Prefix #2705
    admin
    Administrator

    Nimm bitte die von mir angebotene 3.10 von Mono. Die aktuelle 4.2.2 ist Buggy. Den vor dir gemeldeten Fehler hab ich beim Experimentieren auch schon festgestellt und auch einen Bug Report erstellt:
    https://bugzilla.xamarin.com/show_bug.cgi?id=38574
    Wird in einem der nächsten Releases von Mono gefixt sein, allerdings ist das nicht der einzigste Bug in Mono der LogoControl aktuell das Leben schwer macht. In 4.2.2 (bzw. allgemein seit 4.x) ist es z.B. nicht mehr möglich einen selbstgehosteten Server mit TLS zu bertreiben, ohne dass dieser eine Clientseitige Authentifizierung mittels Client-Zertifikat erzwingt -> damit ist die TLS-Verbindung für 99% der Nutzer unbrauchbar geworden:
    https://bugzilla.xamarin.com/show_bug.cgi?id=21895

    Mono hat mich schon so öfters zur Verzweiflung getrieben…

    als Antwort auf: LogoControl Prefix #2703
    admin
    Administrator

    Der Fehler kommt mir bekannt vor, hatte ich glaube ich auch mal. Welche Mono-Version hast du? Die 3.10 aus der Anleitung?

    als Antwort auf: LogoControl Prefix #2700
    admin
    Administrator

    Hm, also die Fehlermeldung wird eigentlich wirklich nur ausgegeben, wenn einer der Webservice Ports nicht geöfnet werden kann. Zuerst kommentier mal den https-Webservice aus, so dass nur noch der http-Webservice aktiv ist und nur noch eine mögliche Kollision besteht. Dann mach mal auf der Shell ein
    sudo netstat -nlp
    um alle aktuell geöffneten Ports anzuzeigen, um sicher zu sein, dass der Port, den du beim Webservice einträgst wirklich nicht verwendet wird. Was hast du für ein Betriebssystem auf dem Raspi? Raspbien Jessie? Könnte dein Benutzer vielleicht keine Rechte besitzen Ports zu öffnen?

    als Antwort auf: LogoControl Prefix #2698
    admin
    Administrator

    Kann es sein, dass auf deinem Raspi noch andere Dienste Laufen, die den Port 8080 oder 8088 (oder welchen Port du auch immer in der config.xml für LogoControl ausgewählt hast) bereits verwenden? Die Meldung deutet zumindest darauf hin…

    als Antwort auf: Erste Logo8 im Einsatz #2695
    admin
    Administrator

    Hi,

    ganz am Rande: die Windows-GUI würde ich eher nicht mehr empfehlen. Sie war die erste Variante um LogoControl überhaupt (neben dem REST-Service) steuern zu können. Da dies jedoch auf den Windows-PC, auf dem LogoControl läuft, beschränkt ist, habe ich irgendwann angefangen die WebUI zu entwickeln. Die Windows-GUI wurde seither nicht mehr weiter entwickelt und unterstützt bei weitem nicht alle Funktionen der WebUI. Daher wird sie bereits im nächsten Release durch die WebUI abgelöst werden (sprich: verschwinden).

    Der Aufruf einer Methode über die REST-Schnittstelle ist eigentlich genau so möglich wie du es beschrieben hast:
    http://localhost:8088/rest/devices/1/methods/1
    ruft method 1 von device 1 auf.

    Wenn du in der WebUI auf eine Methode klickst macht diese im Hintergrund nicht anderes als den obigen Aufruf der REST-API auszuführen. Von daher, wenn die WebUI bei dir funktioniert, muss auch der REST-Aufruf funktionieren! Sicher dass du die richtigen IDs für device und method in deiner URL hast? Wenn du in der WebUI mit der Maus über die Methode hoverst, siehst du links unten die IDs welche für den Aufruf verwendet werden. Wie testest du denn den Aufruf der REST-URL http://localhost:8088/rest/devices/1/methods/1, im Browser?

    als Antwort auf: Erste Logo8 im Einsatz #2692
    admin
    Administrator

    Hast du das Zertifikat wie unter Abschnitt Zertifikat für SSL-Verbindung (HTTPS) beschrieben installiert und auch per netsh Befehl an den Port gebunden? Wenn du LogoControl wie oben geschrieben „rein über Heimnetzwerk nicht von aussen“ betreiben möchtest, brauchst du jedoch den https-Webservice gar nicht. Lösch in diesem Fall die Zeile in der config.xml einfach raus.

    Ist die Webseite denn über die normale HTTP-Verbindung erreichbar? Kannst du denn die Lampe über die WebUI (http://meineIP:8088) schalten? Bzw. wird der Status der Lampe korrekt in der WebUI dargestellt?

15 Beiträge anzeigen - 136 bis 150 (von insgesamt 309)