Neuauflage des Moduls 98_Siro.pm

Begonnen von Byte09, 17 Mai 2019, 06:06:34

Vorheriges Thema - Nächstes Thema

Byte09

Zitat von: CoolTux am 22 Mai 2019, 19:59:20
Kein Problem.

https://github.com/Byte009/Siro/pulls

Grüße

ok , weiss jetzt zumindest was du meinst. Ich stehe aber unfassbar auf Kriegsfuss mit Github und tue mich da echt schwer.

kannst du mir da unter die arme greifen, wäre cool ?

.. auch deine Änderungen ( die ich gerade erst gesehen habe )  würde ich gerne übernehmen , muss ich die alle manuell einfügen oder gibt es da komfortablere Möglichkeiten ?

sorry, aber mit GIT bin ich gerade soweit gekommen , das ich meinen 'Kram' da ablegen kann  ???

gruss Thomas

CoolTux

Ist schwierig das so zu erklären.
Wenn Du magst können wir das in einem Webinar uns zusammen anschauen. Hast heute Lust und Zeit. So ab 21:30 Uhr?
Durch Deine Arbeiten sind die Patches eh inkompatibel, da muss ich noch nach bessern.

Ich kenn mich auch nicht sonderlich gut mit GitHub aus.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Byte09

ich werde deine Änderungen( thx dafür ) in jedem Fall ( manuell ) einbauen , schaffe ich aber wohl erst morgen.

gruss Thomas

Byte09

Zitat von: CoolTux am 22 Mai 2019, 20:12:11
Ist schwierig das so zu erklären.
Wenn Du magst können wir das in einem Webinar uns zusammen anschauen. Hast heute Lust und Zeit. So ab 21:30 Uhr?
Durch Deine Arbeiten sind die Patches eh inkompatibel, da muss ich noch nach bessern.

Ich kenn mich auch nicht sonderlich gut mit GitHub aus.


Grüße

sehr gerne, aber heute abend ist schlecht - dann bekomme ich die rote karte  :-[ von meiner Frau.

geht es ggf. morgen deutlich früher ?

gruss Thomas

CoolTux

Zitat von: Byte09 am 22 Mai 2019, 20:14:23
sehr gerne, aber heute abend ist schlecht - dann bekomme ich die rote karte  :-[ von meiner Frau.

geht es ggf. morgen deutlich früher ?

gruss Thomas

Ja das geht. So ab 20:30 Uhr wäre möglich.
Ich bereite dann deine aktuelle master mit meinen Patches zusammen vor.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Byte09

Zitat von: CoolTux am 22 Mai 2019, 20:16:48
Ja das geht. So ab 20:30 Uhr wäre möglich.
Ich bereite dann deine aktuelle master mit meinen Patches zusammen vor.

super ,meldemich dann morgen abend bei dir ( hier oder pm )

dank dir vorab.

( das heisst aber, morgen erstmal keine Änderungen an aktuellem code ? ... den aktuellen stelle ich jetzt nochmal in das GIT )

gruss thomas

CoolTux

Zitat von: Byte09 am 22 Mai 2019, 20:22:37
super ,meldemich dann morgen abend bei dir ( hier oder pm )

dank dir vorab.

( das heisst aber, morgen erstmal keine Änderungen an aktuellem code ? ... den aktuellen stelle ich jetzt nochmal in das GIT )

gruss thomas

Doch kannst ruhig weiter machen. Wir schaffen das schon  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Hier kannst Du gerne mal schauen ob ich auch nichts vergessen habe

https://github.com/LeonGaultier/Siro/tree/devel
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Byte09

Zitat von: CoolTux am 22 Mai 2019, 22:23:33
Hier kannst Du gerne mal schauen ob ich auch nichts vergessen habe

https://github.com/LeonGaultier/Siro/tree/devel

Hi CoolTux,

ich habe mir das gerade mal angeschaut, sieht im Grunde vom Log erstmal gut aus . Aber der Rollo wird nicht gefahren , was ich mir im Augenblick nicht erklären kann. Auf die schnelle sehe ich nichtmal ein Unterschied im Log.

Das muss ich mir heute abend mal in Ruhe anschauen.

######################################
version cooltux


2019.05.23 05:22:34 5: Siro - Set: eingehendes komando close
2019.05.23 05:22:34 5: Siro - Set: ermittelter Befehl: on
2019.05.23 05:22:34 5: Siro - Settree: on downtime - waytodrive 94
2019.05.23 05:22:34 5: Siro - Settree: on downtime - state  6
2019.05.23 05:22:34 5: Siro - Settree: on downtime - down1time  0.22
2019.05.23 05:22:34 5: Siro_sendCommand: args2 -
2019.05.23 05:22:34 4: signalesp1/set: sending via SendMsg: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545454545454545;
2019.05.23 05:22:34 5: Siro_sendCommand: name -> Siro_5B417081 command -> on  channel -> 1 bincmd -> 00000000 bin -> 0101101101000001011100001000000100000000
    message -> P72#0101101101000001011100001000000100000000#R10
2019.05.23 05:22:34 5: Siro - setze timer -on
2019.05.23 05:22:34 4: signalesp1 SendrawFromQueue: msg=SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545454545454545;
2019.05.23 05:22:34 4: signalesp1/msg READ: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545454545454545;
2019.05.23 05:22:34 4: signalesp1/read sendraw answer: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545454545454545;
2019.05.23 05:22:34 4: signalesp1/HandleWriteQueue: nothing to send, stopping timer
2019.05.23 05:22:35 5: Siro - Set: eingehendes komando stop
2019.05.23 05:22:35 5: Siro - Set: ermittelter Befehl: stop
2019.05.23 05:22:35 5: Siro - Set: laufende aktion gefunden - abbruch
2019.05.23 05:22:35 5: Siro - Set: laufende aktion -
2019.05.23 05:22:35 5: Siro - Set: unterbrochene aktion runningDown lief 0.999999933242798
2019.05.23 05:22:35 5: Siro - Set: aktionsbeginn bei 6
2019.05.23 05:22:35 5: Siro - Set: positionsver?nderung um 4.5 prozent nach unten
2019.05.23 05:22:35 5: Siro - Set: newposition - 10
2019.05.23 05:22:36 5: Siro_sendCommand: args2 -
2019.05.23 05:22:36 4: signalesp1/set: sending via SendMsg: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545454545454545;
2019.05.23 05:22:36 5: Siro_sendCommand: name -> Siro_5B417081 command -> stop  channel -> 1 bincmd -> 00000000 bin -> 0101101101000001011100001000000100000000
    message -> P72#0101101101000001011100001000000100000000#R10
2019.05.23 05:22:36 4: signalesp1 SendrawFromQueue: msg=SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545454545454545;
2019.05.23 05:22:36 4: signalesp1/msg READ: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545454545454545;
2019.05.23 05:22:36 4: signalesp1/read sendraw answer: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545454545454545;
2019.05.23 05:22:36 4: signalesp1/HandleWriteQueue: nothing to send, stopping timer

##############################################

2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Define redefined at ./FHEM/98_Siro.pm line 112.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Undef redefined at ./FHEM/98_Siro.pm line 161.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Shutdown redefined at ./FHEM/98_Siro.pm line 169.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_LoadHelper redefined at ./FHEM/98_Siro.pm line 176.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Notify redefined at ./FHEM/98_Siro.pm line 184.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Delete redefined at ./FHEM/98_Siro.pm line 190.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_SendCommand redefined at ./FHEM/98_Siro.pm line 197.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Parse redefined at ./FHEM/98_Siro.pm line 279.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Attr redefined at ./FHEM/98_Siro.pm line 516.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Set redefined at ./FHEM/98_Siro.pm line 527.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Prog redefined at ./FHEM/98_Siro.pm line 990.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Finish redefined at ./FHEM/98_Siro.pm line 1003.
2019.05.23 05:23:14 1: PERL WARNING: Subroutine Siro_Restartset redefined at ./FHEM/98_Siro.pm line 1036.

##############################################

version Byte09


2019.05.23 05:23:29 5: Siro - Set: eingehendes komando open
2019.05.23 05:23:29 5: Siro - Set: ermittelter Befehl: off
2019.05.23 05:23:29 5: Siro - Settree: off downtime - waytodrive 10
2019.05.23 05:23:29 5: Siro - Settree: off downtime - state  10
2019.05.23 05:23:29 5: Siro - Settree: off downtime - down1time  0.22
2019.05.23 05:23:29 5: Siro_sendCommand: args2 -
2019.05.23 05:23:29 4: signalesp1/set: sending via SendMsg: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545452345454523;
2019.05.23 05:23:29 5: Siro_sendCommand: name -> Siro_5B417081 command -> off  channel -> 1 bincmd -> 00010001 bin -> 0101101101000001011100001000000100010001
    message -> P72#0101101101000001011100001000000100010001#R10
2019.05.23 05:23:30 5: Siro - setze timer -off
2019.05.23 05:23:30 4: signalesp1 SendrawFromQueue: msg=SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545452345454523;
2019.05.23 05:23:30 4: signalesp1/msg READ: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545452345454523;
2019.05.23 05:23:30 4: signalesp1/read sendraw answer: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234545452345454523;
2019.05.23 05:23:30 4: signalesp1/HandleWriteQueue: nothing to send, stopping timer
2019.05.23 05:23:31 5: Siro - Set: eingehendes komando stop
2019.05.23 05:23:31 5: Siro - Set: ermittelter Befehl: stop
2019.05.23 05:23:31 5: Siro - Set: laufende aktion gefunden - abbruch
2019.05.23 05:23:31 5: Siro - Set: laufende aktion -
2019.05.23 05:23:31 5: Siro - Set: unterbrochene aktion runningUp lief 2.04972596168518
2019.05.23 05:23:31 5: Siro - Set: aktionsbeginn bei 10
2019.05.23 05:23:31 5: Siro - Set: positionsveränderung um 6.4 prozent nach oben
2019.05.23 05:23:31 5: Siro - Set: newposition - 3
2019.05.23 05:23:32 5: Siro_sendCommand: args2 -
2019.05.23 05:23:32 4: signalesp1/set: sending via SendMsg: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234523452345234523;
2019.05.23 05:23:32 5: Siro_sendCommand: name -> Siro_5B417081 command -> stop  channel -> 1 bincmd -> 01010101 bin -> 0101101101000001011100001000000101010101
    message -> P72#0101101101000001011100001000000101010101#R10
2019.05.23 05:23:32 4: signalesp1 SendrawFromQueue: msg=SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234523452345234523;
2019.05.23 05:23:32 4: signalesp1/msg READ: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234523452345234523;
2019.05.23 05:23:32 4: signalesp1/read sendraw answer: SR;R=10;P0=4760;P1=-1496;P2=680;P3=-408;P4=340;P5=-748;D=0145234523234523234523454545454523452323234545454523454545454545234523452345234523;
2019.05.23 05:23:32 4: signalesp1/HandleWriteQueue: nothing to send, stopping timer


gruss Thomas


Byte09

#24
geradde nochmal geschaut , es wird ein falscher code an signalduino übergeben in deiner Version:

bei gleicher aktion :

cooltux: P72#0101101101000001011100001000000100000000#R10
byte:     P72#0101101101000001011100001000000101010101#R10

muss noch schaue warum , jetzt aber erstmal schaffen  :(

gruss Thomas


edit :

scheint irgendwie aus der markierten Zeile in angehängtem Codeteil zu resultieren, konnte aber noch nicht weiter schauen:

sub Siro_SendCommand($@) {
    my ( $hash, @args ) = @_;
    my $ret = undef;
    my $cmd = $args[0];    # Command as text (on, off, stop, prog)
    my $message;           # IO-Message (full)
    my $chan;              # Channel
    my $binChannel;        # Binary channel
    my $SignalRepeats;     #
    my $name = $hash->{NAME};
    my $binHash;
    my $bin;               # Full binary IO-Message
    my $binCommand;
    my $numberOfArgs = int(@args);
##################
    my $command      = $siro_c2b{$cmd};    # hier wird dar fehlerhafte code erzeugt
##################
    my $io           = $hash->{IODev};    # IO-Device (SIGNALduino)
.
.
.




CoolTux

Guten Morgen Thomas,

Das schaue ich mir nachher mal an. Da ich an diesem Code nichts geändert habe kann es nur was kleines sein.

Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Byte09

#26
Zitat von: CoolTux am 23 Mai 2019, 06:05:42
Guten Morgen Thomas,

Das schaue ich mir nachher mal an. Da ich an diesem Code nichts geändert habe kann es nur was kleines sein.

Grüße


ohne das ich es jetzt gross nachvollzogen hab , läuft hier wohl was schief:


sub Siro_Initialize($) {
    my ($hash) = @_;

    # Map commands from web interface to codes used in Siro
    foreach my $k ( keys %FHEM::Siro::codes ) {
        $FHEM::Siro::siro_c2b{ $FHEM::Siro::codes{$k} } = $k;
    }


Bin jetzt aber ertmal weg.

gruss Thomas


edit: erfordern diese änderungen (package) einen Fhemneustart ? ... den habe ich vorhin nicht gemacht !

CoolTux

Eigentlich nicht.
Ich lasse mir nachher mal ausgeben was er da an Variablen bekommt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Hallo Thomas,

Folgendes habe ich gemacht um es zu lösen. Da ich nicht verstanden habe wieso Du
# Map commands from web interface to codes used in Siro
    foreach my $k ( keys %FHEM::Siro::codes ) {
        $FHEM::Siro::siro_c2b{ $FHEM::Siro::codes{$k} } = $k;
    }

das in der InitializeFn abarbeitest habe ich das einfach mit ins packages gelegt.


#### arbeiten mit packages
package FHEM::Siro;

use strict;
use warnings;

use GPUtils qw(GP_Import)
  ;    # wird für den Import der FHEM Funktionen aus der fhem.pl benötigt

## Import der FHEM Funktionen
BEGIN {
    GP_Import(
        qw(readingsSingleUpdate
          defs
          modules
          Log3
          AttrVal
          ReadingsVal
          IsDisabled
          gettimeofday
          InternalTimer
          RemoveInternalTimer
          AssignIoPort
          IOWrite
          ReadingsNum
          CommandAttr)
    );
}


my %codes = (
    "55" => "stop",    # Stop the current movement or move to custom position
    "11" => "off",     # Move "up"
    "33" => "on",      # Move "down"
    "CC" => "prog",    # Programming-Mode (Remote-control-key: P2)
);

my %sets = (
    "open"      => "noArg",
    "close"     => "noArg",
    "up"      => "noArg",
    "down"     => "noArg",
    "off"       => "noArg",
    "stop"      => "noArg",
    "on"        => "noArg",
    "fav"       => "noArg",
    "prog"      => "noArg",
    "prog_stop" => "noArg",
"reset_motor_term" => "noArg",
    "pct" => "slider,0,1,100",    # Wird nur bei vorhandenen time_to attributen gesetzt
    "state"                   => "noArg",
    "set_favorite"            => "noArg",
"del_favorite"            => "only_modul,only_shutter,shutter_and_modul",
    "down_for_timer"          => "textField",
    "up_for_timer"            => "textField"

);

my %sendCommands = (
"pct"         => "level",
"level"         => "level",
    "stop"         => "stop",
"off"          => "off",
    "on"           => "on",
    "open"         => "off",
    "close"        => "on",
"up"         => "off",
    "down"        => "on",
    "fav"          => "fav",
    "prog"         => "prog",
"reset_motor_term"  => "reset_motor_term",
    "set_favorite" => "setfav"



);

my %siro_c2b;

# Map commands from web interface to codes used in Siro
    foreach my $k ( keys %codes ) {
        $siro_c2b{ $codes{$k} } = $k;
        print 'Testtest!!!!: ' . $k . "\n";
    }

#################################################################
sub Define($$)


So bekomme ich zu mindest korrekte Werte. Kannst Du bitte schauen ob ich das so richtig verstanden habe und es auch geht?

Desweiteren habe ich eine doppelte Variablen Deklaration gefunden

       
Zitat
   my $actiontime = time; # zeit dieses Aufrufes
   my $lastactiontime = ReadingsVal( $name, 'ActionTime', $actiontime ); # Zeit des letzten Aufrufes
   my $betweentime = $actiontime-$lastactiontime; # Zeit zwischen aktuellem und letztem Aufruf
   my $downtime = AttrVal( $name, 'SIRO_time_to_close','undef' ); # fahrdauer runter
   my $uptime = AttrVal( $name, 'SIRO_time_to_open','undef' ); # fahrdauer hoch
   my $down1time ="undef"; # fahrzeit 1 prozent
   my $up1time ="undef"; # fahrzeit 1 prozent
   my $state = ReadingsVal( $name, 'state', 'undef' );
   my $drivingtime; # fahrzeit bei positionsanfahrt
   my $aktendaction = ReadingsVal( $name, 'aktEndAction', '0' ); #endzeit laufende avtion
   my $akttimeaction = ReadingsVal( $name, 'aktTimeAction', '0' ); #dauer einer laufenden aktion
   my $aktrunningaction = ReadingsVal( $name, 'aktRunningAction', '' ); #typ einer laufenden aktion
   my $position = ReadingsVal( $name, 'pct', '' ); #position pct bis zum ende einer aktion
   my $state = ReadingsVal( $name, 'state', '' ); #aktuelle aktion ( runningDown/runningUp )
   my $drivedpercents; # beinhaltet gefahrene prozent bei aktionswechsel
   my $newposition ; # beinhaltet neue positin bei aktionswechsel
   my $favposition = ReadingsVal( $name, 'Favorite-Position', 'nA' ); #gespeicherte Favoritenposition


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Byte09

schaue ich mir nach Feierabend direkt an. Mit der doppelten variable hatte ich heute morgen auch gesehen aber noch nicht geändert. Danke erstmal, ich melde mich dann.

gruss thomas

Gesendet von meinem ELE-L29 mit Tapatalk