Edito
Voila voila, je refais mon infra… Et j'ai donc envie de participer a une oeuvre commune :
Antoine.
Pub
Désolé de vous incommoder avec cela, c'est un mal aujourd'hui nécessaire. Je le souhaite juste utile, on verra.
Objectif
Ce projet est (aujourd'hui) découpe en 2 morceaux :
A faire evoluer
Outils utilisées
#!/usr/bin/perl my $mqtts="MQTTSRV"; my $calaos="CALAOSSRV"; my $login="MOIMOI"; my $pwd="SECRET"; my $prefmqtt="calaos/"; my $prefcalaos='expect -c \'spawn -noecho nc '.$calaos.' 4456;send "login '.$login.' '.$pwd.'\n";expect -re {login '.$login.' ok\r\n};send "'; my $postcalaos='\n";\''; $cmdlisten="/usr/bin/mosquitto_sub -h $mqtts -t '$prefmqtt#' -v"; open LISMQ,$cmdlisten." |"; sleep(5); print "Mqtt 2 Calaos Listening $mqtts $prefmqtt#\n"; while(<LISMQ>) { chomp(); s/^$prefmqtt//g; ($cmd,$id,$act,$params)=split(/[\/ ]/,$_,4); $cmdcalaos=$prefcalaos.$cmd.' '.$id.' '.$act.' '.$params.$postcalaos; open CALAOS,$cmdcalaos." |"; while(<CALAOS>) {} close(CALAOS); } print "Mqtt 2 Calaos listener dead\n";
#!/usr/bin/perl my $mqtts="MQTT"; my $calaos="CALAOSSRV"; my $login="MOIMOI"; my $pwd="SECRET"; my $prefmqtt="ha/calaos/"; my ($action,$obj,$status); my ($clef,$val); my $cmdcalaos='expect -c \'spawn -noecho nc '.$calaos.' 4456;send "login '.$login.' '.$pwd.'\n";expect -re {login '.$login.' ok\r\n};send "listen\n";interact\''; my $i=0; open CALAOS, $cmdcalaos." |" or die "Can't open < $cmdcalaos $!"; sleep(5); print "Calaos 2 Mqtt Running\n"; while(<CALAOS>) { chop(); if(/input_(1|2) /) { #print "No more $_\n"; $i=0; } elsif(/^(input|output)/) { ($action,$obj,$status)=split(/ /,$_,3); $status=~s/%([A-Fa-f\d]{2})/chr hex $1/eg; if($status =~ /:/) { ($clef,$val)=split(/:/,$status,2); } else { $clef="status"; $val=$status; } my $value=chop($val); my $cmdmqtt="/usr/bin/mosquitto_pub -h $mqtts -r -t $prefmqtt$action/$obj/$clef -m '$val'"; open MQTT, $cmdmqtt.' |'; while(<MQTT>) {} close(MQTT); } else { #print "Unknown $_\n"; $i=0; } }