Discussion in 'Allgemein' started by BEIJY, Oct 15, 2014.

  1. BEIJY

    BEIJY Member

    HiGibts eine möglichkeit mit Programmstart die befehle da usw zu automatisieren. Ein.sh script funktioniert nicht, da die befehle im commandline tool nicht übernommen werden.
  2. Dominik

    Dominik Administrator Staff Member

    Moin !

    Nein das steht auf dem Plan. Das Bedarf aber eines gewisen Umbaus des Command Tools.
    Die Funktion vermisse ich selber je mehr ich mit dem Raspberry Pi anstelle :) Ich hoffe ich habe es zum nächsten Release mit drin.
  3. BEIJY

    BEIJY Member

    Moin Also ich probiere das ganze jetzt mit expect zu automatisieren vielleicht wirds was bin ja auch kein Programmierer ggg. Lade zuerst ein sh script was lvcmd.exe startet und wenn CMD > kommt dann mit expect send usw die Eingaben. :cool:
  4. Dominik

    Dominik Administrator Staff Member

    Ui, da ist jemand auch ein Frühaufsteher :D

    expect sagt mir nun gonix muss ich gestehen. Aber ich bin auch kein Linux Guru ... Gibt es denn schon Teilerfolge?
    Und könntest du deine Erkenntnisse evtl. in einem kurzen Posting mit 1-2 Bildern mal der Allgemeinhait zur Verfügung stellen :) ?

    Nutzt du den PI oder ein normales x86 Linux?
  5. BEIJY

    BEIJY Member

    Morgen Ja schon seit 5 Uhr gg. Also ich nutze oder möchte den pi nutzen. Wenn ich das hab sag ich bescheid. Er soll beim booten lvcmd.exe starten kein Problem. Nur das mit expect hab ich gerade erst entdeckt. Muss ich am Abend oder am Wochenende ausprobieren.
  6. BEIJY

    BEIJY Member

    So also hab noch kurz Zeit gehabt, das schwebt mir jetzt im Kopf rum. Muss dann zu Hause sehen wie ich damit weiterkomme:
    #!/usr/bin/expect
    #Logview Studio starten
    spawn mono /home/pi/lvstudio/LvCmd.exe /home/pi/lvstudio/xxxx
    #Logview Start abwarten
    set timeout 240
    #Configure the Device
    expect "CMD >" { send "dc\r" sleep 10 "\r" }
    expect "CMD >" { send "2\r" sleep 10 "\r" }
    expect "CMD >" { send "0\r" sleep 10 "\r" }
    #Start the Device
    expect "CMD >" { send "da\r" sleep 20 "\r" }
    #Console wieder dem Benutzer übergeben
    expect "CMD >" { interact }


    Vielleicht noch ein Denkanstoß für jemanden, das geht sicherlich einfacher oder schöner auch.
    MFG
    Chris
    Last edited by a moderator: Oct 16, 2014
  7. BEIJY

    BEIJY Member

    So
    Also bei mir läuft das jetzt, fährt alles hoch beim Start des scriptes.

    #!/usr/bin/expect
    #Logview Studio starten
    set timeout 600
    spawn mono /home/pi/lvstudio/LvCmd.exe /home/pi/lvstudio/beijy
    #Set Device
    expect "CMD >" { send "dc\r" }
    expect ":" { send "2\r" }
    expect ":" { send "0\r\r" }
    #Start Device
    expect "CMD >" { send "da\r" }
    interact



    MFG Chris
    Last edited by a moderator: Oct 17, 2014
  8. Brainstorm

    Brainstorm New Member

    was hat du alles gemacht das LVS per Autostart lauft?

    EXPECT installiert nehme ich mal an und dann einfach ein Skript mit den folgenden Befehlen starten lassen.
  9. BEIJY

    BEIJY Member

    Wenn ich mehr Zeit habe werde ich eine schöne Anleitung machen

    1. lvstudio.exp erstellt mit Inhalt:
    #!/usr/bin/expect
    #Logview Studio starten
    set timeout 600
    spawn mono /home/pi/lvstudio/LvCmd.exe /home/pi/lvstudio/xxx
    #Set Device
    expect "CMD >" { send "dc\r" }
    expect ":" { send "2\r" }
    expect ":" { send "0\r\r" }
    #Start Device
    expect "CMD >" { send "da\r" }
    interact
    exit 0
    2. lvstudio.sh erstellt mit Inhalt:
    #!/bin/sh
    #Warten bis der Pi ordentlich gestartet ist
    sleep 60
    #Script in Terminal starten
    xterm -hold -e /home/pi/lvstudio.exp
    exit 0

    3. crontab -e (ohne su, da es sonst probleme mit Mysql gibt)
    @reboot /home/pi/lvstudio.sh

    4. Scripte ausführbar machen mit:
    sudo chmod +x /home/pi/lvstudio.exp
    sudo chmod +x /home/pi/lvstudio.sh

    Soo was passiert:

    -Raspberry startet neu und meldet sich an mit PI
    -crontab für das script lvstudio.sh aus
    -script lvstudio.exp wird in einem neuem Terminalfenster von pi und nich als Root gestartet, da mysql unter root zicken macht
    -Wenn alles durchgestartet ist übergibt das script mit "interact" die commandos wieder an pi sprich an den Benutzer

    Unter #Set Device gehören natürlich eure Befehle rein.

    Vielleicht gibt es mal in Logview sowas wie eine Config Datei wo man seine eigenen Werte reinschreibt mit denen es dann Automatisch durchladet, dann würde das Autostart Script schon etwas Einfacher aussehen.

    Das ganze ist natürlich noch Verbesserungswürdig, aber schon mal ein Denkanstoß

    MFG
    Chris
  10. Brainstorm

    Brainstorm New Member

    SUPER SACHE THX
  11. telemaxx

    telemaxx New Member

    gute Idee mit dem expect tool.
    werde ich mal probieren.

    Kann es sein dass du dich vertippt hast?
    statt:
    expect ":" { send "0\r\r" }
    vermutlich:
    expect ":" { send "d0\r\r" }
    also do statt o

    Ich lasse LVS in einem screen terminal starten: (in /etc/rc.local)
    sudo -u pi screen -dmS lv
    sudo -u pi screen -S lv -X exec mono /home/pi/lv/LvCmd.exe /home/pi/test1

    dann läuft LVS im hintergrund und ich kann mir jederzeit mit
    screen -r
    das LVS Command Prompt holen, z.B um LVS sauber zu beenden.

    Was noch fehlt ist dein Device Autostart...

    Beste Grüße,
    Thomas
  12. BEIJY

    BEIJY Member

    Hi
    Also das mit der 0 = Null , das passt schon so da wäht er aus 0 = Save Settings oder so , das heist er nimmt
    die gespeicherten Device Settings oder so jetzt mal einfach übersetzt also kein ohhhh sondern eine nuuull :)

    So und jetzt ab ins Wochenende genug für diese Woche
  13. telemaxx

    telemaxx New Member

    Alles klar.
    Bei meinem Device muss ich immer erst "do" zum stoppen eingeben, dann "da" zum starten.
    Wenn ich direkt "da"eingebe, gibts ne Exception,

    Hab es allerdings mit den letzten Versionen nicht mehr getestet.

    Nice WE,
    Thomas
  14. BEIJY

    BEIJY Member

    So muss mich noch mal melden??

    Welche Datei fehlt mir , wenn ich auf den Server connecten will kommt das:
    Error with your requestCode : 404 NotFoundMessage : File was not found on the Server.

    Mit einem orangen Hintergrund??

    MFG
    Chris
  15. Brainstorm

    Brainstorm New Member

    wie verbindest du dich den mit dem server? GUI oder WEB
    versuch mal ein BR am SERVER um den CLIENT PC in der Server DB anzumelden.
  16. BEIJY

    BEIJY Member

    So...
    Also es ist folgendes Problem:
    Ich starte mein script jetzt ganz normal im Terminal, dann funktioniert alles Ohne Probleme.
    Dann lass ich das script automatisch ausführen nach dem Reboot, dann kommt eben dieses komische Orange Bild mit der Fehlermeldung das er
    irgend was nicht findet am Server wenn ich über den Browser connecte.

    Ich lasse das Script nicht als su laufen sonder als PI in einem neu erzeugen Terminal und genau da dürfte der Fehler sein, aus irgend einen Grund
    findet er eine Datei nicht, wenn selbständig ein Terminal geöffnet wird und lvcmd in diesem gestartet wird.

    Die scripte funktioneren, wie gesagt immer nur dann wenn ich sie starte. Wenn mit Crontab oder über die rc.local dann funktioniert es nicht.

    So sieht das Log aus :
    Web 332 V 19:08:45.144 : Request : /
    Web 332 V 19:08:45.153 : 404 NotFound
    Web 332 V 19:08:45.161 : File was not found on the Server.

    mfg
    Chris
    Last edited: Oct 18, 2014
  17. BEIJY

    BEIJY Member

    Der Fehler mit BAD Request läst sich ganz einfach lösen:
    Bei mir sah am Anfang die Zeile so aus:
    spawn mono /home/pi/lvstudio/LvCmd.exe /home/pi/lvstudio/xxx

    So soll sie aussehen:
    spawn mono ./LvCmd.exe /home/pi/lvstudio/xxx

    Leider geht es nicht anders. Also vorher ein kleines script machen was euch in das lvstudio Verzeichnis bringt und dann die
    lvstart.exp aus diesem script starten lassen. >> lvstart.exp muss im /lvstudio Verzeichnis sein. Ich habe das Script
    einfach lv.sh benannt:

    #!/bin/sh
    sleep 10
    cd lvstudio
    sleep 2
    screen -dmS lv
    sleep 2
    screen -S lv -X exec ./lvstart.exp
    exit 0

    Wie gesagt, wenn ich mehr Zeit habe folgt eine Ordentliche Anleitung dazu, bei mir läuft es jetzt wirklich super. Einfach Laderät einschalten, und Ladevorgang starten.

    MFG
    Chris
  18. Brainstorm

    Brainstorm New Member

  19. telemaxx

    telemaxx New Member

    @BEIJI
    dein expect script klappt tadellos. super.
    Ladegerät und pi einschalten und losladen.
  20. BEIJY

    BEIJY Member

    Ich habe ein neues Problem ggg
    Da ich an dem Pi gleichzeitig noch eine Wetterstation betreibe dürft es irgendwie Probleme mit den USB Ports geben:

    Device start aborted : Device is active

    Das kommt immer, gibt es eine möglichkeit das ich einstellen kann, daß immer /dev/ttyUSB1 genommen wird, egal welchen USB Steckplatz ich benutze?? Ich hab da was von Udev Regeln oder so gehört, kenn mich aber damit nicht aus.

    MFG
    Chris

Share This Page