Tu as essayé de modifier le bitrate et le mode CAN?
Il faut peut-être aussi envoyer une requête au module pour qu’il publie la réponse :
Ca donne ça :
Ventilation, switch ethernet (doorbird, raspberry), alimentation (doorbird, raspberry, digicode).
Raspberry + carte gpio pour la boite aux lettres (fente+porte), portail (contact sec), compteur eau avec mise en forme, digicode (contact sec).
En détails :
- une Raspberry sous Jeedouino récupère différents informations binaires ou compteur
- un compteur d’eau inductif - mise en forme 5V/3.3V avec un optocoupleur et des résistances de polarisation/tirage
- un capteur (aimant) pour le portail, filtrage 10µF polarisée soudée sur la carte PIface (attention)
- deux capteurs (aimant) pour la boite aux lettres
- un contact NC depuis le digicode pour récupérer l’information (badge ou code PIN)
Le circuit de mise en forme sur la carte GPIO pour l’eau :
Qui donne ça :
Ensuite c’est du côté de Jeedouino (compteur impulsion pull-up, entrées numériques avec pull-up).
A la demande de @Chris13, je le remets ici au cas où. Il y avait une super fonction colspan pour merger les colonnes vides d’un tableau et permettre de faire une mise en forme dynamique. J’avais eu trop de souci pour la mettre en place (souvent buggué) du coup, j’ai pris le parti de construire mes tableaux comme suit en restant simple et via les possibilités de personnalisation de Jeedom. Par exemple ce tableau :
est en fait 2 éléments.
Un tableau classique dans Jeedom :
soit :
Et un simple texte avec mise en forme que je mets par dessus.
Et côté design, je modifie le tableau pour le rendre plus beau :
WICAN
J’ai ouvert un autre post dédié pour ne pas continuer de polluer ici.
A suivre nos débuts avec WICAN
J’ai posté dessus.
Bonjour,
je suis en train de revoir tout mon système de vidéosurveillance et notamment d’y intégrer une voir plusieurs tablettes.
J’ai lu dans ton fil et tes articles sur ton blog que tu gérais les tablettes et notamment le streaming en fonction de la présence, du mode jour/nuit etc… tu envois aussi une préalarme si tu es la ou pas?
serait il possible d’avoir des exemples de scénario que tu as mis en place?
je suppose que tes icones tablettes se colorisent en fonction de si le streaming est actif ou pas?
je vais essayer de connecter mes tablettes sur motionEye aussi.
merci pour ton retour
Je remonte bien le streaming des tablettes via JPI.
L’activation de la caméra « mange » beaucoup de batterie donc je l’active que si j’ai une intrusion et que ça vaut le coup d’enregistrer.
La détection de mouvement via Motioneye n’est valable que pour les caméras extérieures.
Et je gère l’IR en fonction de l’heure aussi.
Salut,
Quelques news.
J’utilisais depuis bientôt plus de 5 ans une raspberry pour remonter les informations de la piscine et la piloter via plugin-jeedouino.
Malgré la désactivation des logs, une électronique refaite avec une Piface etc, la PI n’est clairement pas à l’aise sur du long terme en extérieur. 1 SD tous les 2 ans en moyenne. J’avais modifié le boitier pour améliorer l’aération (voir plus haut).
En reprenant ma copie et l’IoT ayant bien évolué, j’ai basculé sur un Shelly 1 plus pour piloter la pompe de la piscine par un contacteur 240V (le shelly ne fait que la commande), et un addon pour remonter le niveau d’eau et 3 sondes de température.
J’ai ajouté un petit condo pour filtrer les rebonds du niveau d’eau (100µF) et 3 sondes DS18B20 qui me remontent la température de l’eau, de la pompe et de l’air ; rien de nouveau là dessus.
Comme les données de l’add-on ne remonte pas par le plugin Shelly (dommage, ce travail à moitié) - je passe par MQTT pour les récupérer.
Pour fiabiliser le wifi du Shelly qui a tendance à se couper quand il est limite (le bug est connu Shelly 1 - WiFi not reconnecting after router reboot · Issue #1107 · mongoose-os-apps/shelly-homekit · GitHub) j’ai ajouté un script qui ping et reboote.
// This script tries to execute HTTP GET requests within a set time, against a set of endpoints
// After certain number of failures the script resets the shelly
let CONFIG = {
endpoints: [
"http://192.168.2.1"
//"https://8.8.8.8",
],
//number of failures that trigger the reset
numberOfFails: 5,
//time in seconds after which the http request is considered failed
httpTimeout: 10,
//time in seconds to retry a "ping"
pingTime: 60,
};
let endpointIdx = 0;
let failCounter = 0;
let pingTimer = null;
function pingEndpoints() {
Shelly.call(
"http.get",
{ url: CONFIG.endpoints[endpointIdx], timeout: CONFIG.httpTimeout },
function (response, error_code, error_message) {
//http timeout, magic number, not yet documented
if (error_code === -114) {
print("Failed to fetch ", CONFIG.endpoints[endpointIdx]);
failCounter++;
print("Rotating through endpoints");
endpointIdx++;
endpointIdx = endpointIdx % CONFIG.endpoints.length;
} else {
failCounter = 0;
}
if (failCounter >= CONFIG.numberOfFails) {
print("Too many fails, resetting...");
failCounter = 0;
Timer.clear(pingTimer);
Shelly.call("Shelly.Reboot");
}
}
);
}
print("Start watchdog timer");
pingTimer = Timer.set(CONFIG.pingTime * 1000, true, pingEndpoints);
Source modifiée :
Avec le log qui va bien (quand activé) :
Autre travail de fond avec 2 VE à la maison, mettre en place une délestage un peu plus intelligent.
Pour l’heure, ça envoie à fond sur l’eau chaude puis les bornes chargent si un véhicule est présent - sinon ça déleste sur la piscine.
Bref, à revoir et à mettre en place un truc plus intelligent.
Salut, j’ai des shelly1 dans le coffret piscine depuis 5ans, ils marchent nickel. J’ai juste mis un répéteur wifi dernière pièce de la maison vers le jardin pour le réseau wifi.
Et pourtant, mon cabanon en bois tombe en ruine (juste pour électrolyse et pH, pompe et filtration en bord de piscine, Magiline), je vais le refaire avant l’été en siporex
Salut !
Je capte très bien autour de la piscine avec mes 2 routeurs maillés. Mais c’est le fait que le Shelly soit dans le skimmer, qui a son toit.
Par contre, depuis que j’ai mis le code en place qui « ping » bein il ne décroche plus malgré un niveau de signal très pourri (-80 à -90 dBm).
J’ai vu qu’il y avait la fonction Extender sur le Shelly. Du coup, je me pose la question d’en ajouter un quelque part (éclairage extérieur) qui lui capterait mieux et répéterait le signal.
Malheureusement quand on voit la gueule de l’antenne PCB intégrée, je pense plus à ajouter une antenne externe et la souder. Le souci c’est que l’antenne j’en fais quoi ensuite, le câble est trop court et c’est quand il pleut…
Ce genre là
Non, je ne suis pas mort !
Mon dieu que le temps de Jeedom 1 est loin…
Passage de la V4 à la V4.4 finie.
Non sans mal, il m’a fallu reprendre tout le design principal.
Quelques broutilles à finaliser comme les widgets au survol qui souffrent des mêmes soucis que mon design lors de la migration ; mais le principal est fait.
Un merci à @jpty pour son aide au lancement, j’ai pu tout remettre et j’ai updaté avec une volonté :
- de simplifier pas mal de widgets - avant j’étais obligé de faire des superpositions de widgets car colspan et rowspan ne fonctionnaient pas bien ; maintenant tout roule !
- j’ai supprimé du coup beaucoup de virtuels !
- j’en ai profité pour basculer pas mal de widgets « code » vers des widgets intégrés dans jeedom
- j’ai revu la météo avec l’excellent plugin WeatherForecast que j’ai modifié un peu au niveau du virtuel pour l’adapter à mon design.
J’en ai profité matériellement pour basculer de Daikin Online Control vers Faikin que je pilote par MQTT.
A côté, j’ai fini d’intégrer les 2 automates qui gèrent les bornes de recharge des deux véhicules électriques de la maison.
Sur des tablettes qui sont présentes dans la maison, ça donne ça :
Dans la liste des todos restants :
-
je vais refaire le tableau de gestion des énergies, mais il faut encore que je potasse le truc. Il y a bien le widget proposé par Energie, mais il est trop simple et il manque des infos pour moi. Notamment l’absence des instantanées et journées sur les enfants.
-
il y a bien l’excellent widget de @Phpvarious mais il va être un peu gros pour la place dispo lol.
Widget Distribution Onduleur -
finir tous les widgets au survol
-
basculer de motioneye à frigate pour intégrer totalement mes caméras Tapo (qui sont vraiment tops).
-
reprendre la gestion des volets car j’ai ajouté des volets électriques et forcément ça se complique… dommage que le plugin Jeedom ne permette pas de gérer un volet en ouvert / fermé uniquement !
-
basculer de Xiaomi à Zigbee, remplacer les gateways et migrer tous les capteurs
-
tester MySkoda en python et voir son intégration.
-
pour mazda, c’est mort, ils ont tout coupé
Salut @benj29
Tu parles des caméras tapo. Alors je cherche à m’équiper mais cela m’insupporte de devoir payer 10€/mois pour 7jrs sachant que si tu as un problème (absent) 7 jrs ne suffiront pas. Donc les 30jrs à 20€/mois ….Et une carte sd dans la camera me paraît peu judicieux car si je suis le cambrioleur, je pars avec la caméra de l’angle de mon arrivée
Est ce que tu récupères les données des caméras ou prends tu l’abonnement ?
J’ai tout en tapo : portier, caméras extérieures et intérieures sur 2 zones sensibles.
Tout avec carte SD et enregistrement avec effacemment.
A côté, j’ai conservé un renvoi des Tapos vers MotionEye pour que MotionEye stocke de son côté.
Le gros point fort des Tapos c’est la détection clairement et l’image de nuit.
Je vais migrer sur Frigate, j’ai fait un essai à Noël sur une caméra avec la détection AI, on est assez proche des Tapos. Du coup, Frigate viendra remplacer MotionEye.
De ce fait, je garde un accès en double comme je voulais.
@Bello65, j’ai creusé un peu le sujet de Tapo.
En fait, il y a une limitation pour avoir un compte local sur la caméra pour un accès à Jeedom, un NAS etc et avoir un enregistrement vers le cloud.
Mais du tout, comme je ne veux pas que les données remontent vers un cloud, cela me convient parfaitement.
Les caméras stockent leur vidéo pour l’instant sur la SD, mais le flux est envoyé à Jeedom et MotionEye.
La détection se gère par Motion qui gère comme un grand l’enregistrement sur détection et photos via Jeedom et Telegram comme avant.
Les vidéos sur SD sont en doublon car aucun intérêt car la consultation n’est possible qu’en local sur le réseau LAN ; pas WAN. J’ai pas testé avec le VPN d’ailleurs.
A terme, je passerai par Frigate et je pense que je retirerai les cartes SD à l’intérieur.
Bon finalement, j’ai dans un premier temps, remis en place la détection de mouvement sur MotionEye.
On peut dire ce que l’on veut, mais il est « light » et il fait bien le boulot.
Je verrai dans ma todolist avec Frigate et une clé Google ; mais s’il suffit, je me dis pourquoi pas ! Cela fait bientôt 8 ans qu’il est là et avec 9 caméras, il fait encore le boulot.
Alors oui, il n’y a pas l’IA ; mais au final, à voir !
Ensuite, je fais un peu de pub mais le plugin WeatherForecast est vraiment parfait @jpty a fait un boulot superbe. Il est venu remplacer par mal de choses que je captais par XML ou via différents plugins.
Tout en un. Et le gros plus, la possibilité de faire son template perso.
J’ai modifié un peu celui d’origine grâce à son aide pour qu’il soit plus concentré et qu’il rentre avec d’autres éléments d’info météo et ça donne ça
Au cas où cela intéresse quelqu’un voici le template. le tableau du design est à base de rowspan et colspan pour lui laisser la place :
Et le template perso allegé est alors :
En utilisant la fonction :
Et un fichier template custom.weatherForecast.html
dans :
<div class="eqLogic eqLogic-widget text-center allowResize allowReorderCmd #custom_layout# #eqLogic_class# #class# #category#" data-eqType="#eqType#" data-eqLogic_id="#id#" data-eqLogic_uid="#uid#" data-version="#version#" data-translate-category="#translate_category#" data-category="#category#" data-tags="#tags#" style="width: #width#;height: #height#;#style#">
<link rel="stylesheet" type="text/css" href="plugins/weatherForecast/desktop/weather-icons/css/weather-icons.css" />
<div class="widget-name">
<span style="color:#background-color#" title="#alert_name#">
<i class='#alert_icon#'></i>
</span>
<span class="cmd refresh pull-right cursor" data-cmd_id="#refresh_id#">
<i class="fas fa-sync"></i>
</span>
<span class="reportModeVisible">#name_display# <span class="object_name">#object_name#</span></span>
<a href="#eqLink#" class="reportModeHidden">#name_display# <span class="object_name">#object_name#</span></a>
</div>
<div class="verticalAlign">
<table border=0 style="border-spacing: 2px; width: 100%;">
<tr style="background-color:transparent !important;color:var(--link-color);">
<td style="text-align:center;width:100px;height:100px;" title="Collecte Jeedom: #collectDate#<br>Condition ID: #condition_id#<br>Lieu: #cityName#, #country#<br>Position: #lat#,#lon#<br>#localDateTime#">
<div style="display:#displayIcon#"><i class="#icone#" style="font-size: 4em;"></i></div>
<div style="display:#displayImage#;background: url('plugins/weatherForecast/core/template/images/#icone#.png') no-repeat center; background-size: 100% 100%; width: #wImg#; height: #hImg#;"></div>
</td>
<!-- Condition V2 <td style="font-size:12px!important;line-height:normal;">-->
<td style="font-size:12px!important;line-height:normal;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">
#condition#
<br/>
<i class="wi wi-thermometer"></i> #temperature# °C <i title="Humidité" class="wi wi-humidity"></i> #humidity# %
<br/>
<i title="Nuages" class="wi wi-cloud"></i> #clouds# % <i title="Pluie" class="wi wi-raindrop icon_blue"></i> #rain#mm
<br/>#sunrise_sunset#
<br/><span>Vent #winddir# #windspeed# km/h</span>
<br/><span style="font-size: 1em;line-height: 6px!important;background: #ed1c24;color: #ffffff!important" title="Rafales">#windGust#</span>
</td>
<td style="background-color:transparent !important;">
<!-- Forecast -->
#forecast#
</td>
</tr>
</table>
<div style="margin-top: 0px;">
#vigilance#
</div>
<div style="margin-top: 0px;">
#vigilanceMeteoalarm#
</div>
<div id="WFtimezone" style="margin-top: 0px;font-size:10px;font-style:italic;">
#timezone#
</div>
<div id="WFpoweredBy" style="margin-top: 0px;font-size:12px;">
#poweredBy#
</div>
</div>
#divGraphInfo#
<script>
$('.eqLogic[data-eqLogic_uid=#uid#] .cmd').on('click', function() {
jeedom.cmd.execute({id: $(this).data('cmd_id')});
});
</script>
</div>
Et le fichier des prévisions au jour forecast.html
<div style="display: inline-block;font-size:12px;line-height:normal;margin-right:4px;vertical-align:top" class="cmd noRefresh" data-type="info" data-subtype="string" data-cmd_id="#conditionid#">
<center>
<div>#day#</div>
<div title="#condition#">
<span style="display:#displayIcon#"><i class="#icone#" style="font-size: 1.5em;line-height:normal;"></i></span>
<span style="display:#displayImage#;background: url('plugins/weatherForecast/core/template/images/#icone#.png') no-repeat center; background-size:100%;width:30px;height:30px;"></span>
</div>
<div title="Temp. min / max">#low_temperature#° / #high_temperature#°</div>
<div title="Indice UV">#uvMax#</div>
<div title="Pluie">#rain#</div>
</center>
</div>
@jpty tu n’as pas le droit de me montrer ça et ne pas me dire comment as-tu fait !